Entendiendo Kubernetes, kubectl y k9s en Dafitech
Kubernetes es una plataforma de código abierto diseñada para automatizar la implementación, escalado y operación de aplicaciones en contenedores. Kubernetes organiza y gestiona aplicaciones en clústeres de máquinas virtuales y ayuda a balancear la carga, mantener la alta disponibilidad y gestionar fallos.
En Dafitech, utilizamos Kubernetes para orquestar nuestros contenedores Docker, asegurando una implementación continua y escalabilidad en nuestros microservicios financieros.
Para obtener más información detallada, puedes visitar la documentación oficial de Kubernetes.
kubectl es la herramienta de línea de comandos para interactuar con Kubernetes. A continuación, se muestran las instrucciones para instalar kubectl en diferentes sistemas operativos.
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
brew install kubectl
Para Windows, descarga el cliente kubectl desde la página oficial:
k9s es una interfaz de usuario en la terminal para gestionar tus clústeres de Kubernetes, facilitando la interacción y visualización de recursos. A continuación te explico cómo instalar y configurar k9s.
# Usando Homebrew (Linux/macOS)
brew install derailed/k9s/k9s
Para Windows, puedes descargar el binario desde el repositorio oficial de GitHub y agregarlo al PATH
.
Una vez que hayas instalado k9s, simplemente ejecuta el comando k9s
en tu terminal. Este cliente interactuará automáticamente con el clúster de Kubernetes que esté configurado en tu archivo de configuración ~/.kube/config
.
Puedes navegar por los recursos disponibles como pods, servicios y nodos, usando la interfaz que te proporciona k9s.
A continuación, te mostramos un ejemplo básico de cómo desplegar una aplicación en Kubernetes y verificar su estado usando kubectl.
Primero, crea un archivo YAML llamado deployment.yaml
para definir el despliegue:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Ejecuta el siguiente comando para aplicar el archivo de despliegue y crear los recursos en Kubernetes:
kubectl apply -f deployment.yaml
Después de aplicar el despliegue, puedes verificar su estado con el siguiente comando:
kubectl get deployments
Si deseas escalar el número de réplicas, puedes hacerlo con el siguiente comando:
kubectl scale deployment/nginx-deployment --replicas=5
Finalmente, si deseas eliminar el despliegue, puedes usar el siguiente comando:
kubectl delete deployment nginx-deployment
Aquí te mostramos una lista de los comandos más utilizados con kubectl para gestionar un clúster de Kubernetes:
kubectl apply -f archivo.yaml
kubectl get pods
kubectl get services
kubectl get secrets
kubectl delete pod/deployment/servicio nombre-recurso
kubectl exec -it nombre-pod -- /bin/bash