Introducción
kubectl
es la herramienta de línea de comandos para interactuar con el clúster de Kubernetes. Permite a los usuarios ejecutar comandos para desplegar aplicaciones, inspeccionar y gestionar recursos del clúster, y ver registros. Es una herramienta esencial para cualquier administrador o desarrollador que trabaje con Kubernetes.
Instalación de kubectl
En Linux
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" chmod +x kubectl sudo mv kubectl /usr/local/bin/
En macOS
En Windows
Configuración de kubectl
Para que kubectl
funcione correctamente, necesita un archivo de configuración (kubeconfig
) que contenga la información del clúster y las credenciales de acceso.
Verificar la configuración
Cambiar el contexto actual
Comandos Básicos
Obtener información del clúster
Listar nodos
Listar pods en un namespace
Describir un pod
Ver logs de un pod
Gestión de Recursos
Crear un recurso desde un archivo YAML
Eliminar un recurso
Escalar un deployment
Actualizar un recurso
Ejemplos Prácticos
Desplegar una aplicación simple
- Crear un archivo
nginx-deployment.yaml
:
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
- Aplicar el archivo:
- Verificar los pods:
Exponer la aplicación con un servicio
- Crear un archivo
nginx-service.yaml
:
apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer
- Aplicar el archivo:
- Verificar el servicio:
Ejercicios Prácticos
Ejercicio 1: Crear y gestionar un pod
- Crear un archivo
my-pod.yaml
:
apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: busybox command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
- Aplicar el archivo:
- Verificar el pod:
- Ver los logs del pod:
Ejercicio 2: Escalar un deployment
- Crear un archivo
my-deployment.yaml
:
apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment spec: replicas: 2 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-container image: nginx ports: - containerPort: 80
- Aplicar el archivo:
- Escalar el deployment a 4 réplicas:
- Verificar los pods:
Conclusión
En esta sección, hemos cubierto los conceptos básicos y comandos esenciales de kubectl
, la herramienta de línea de comandos de Kubernetes. Aprendimos cómo instalar y configurar kubectl
, así como cómo usarlo para gestionar recursos en un clúster de Kubernetes. Los ejercicios prácticos proporcionados te ayudarán a familiarizarte con el uso de kubectl
en situaciones del mundo real. En el próximo módulo, profundizaremos en los componentes principales de Kubernetes, comenzando con los Pods.
Curso de Kubernetes
Módulo 1: Introducción a Kubernetes
- ¿Qué es Kubernetes?
- Arquitectura de Kubernetes
- Conceptos y Terminología Clave
- Configuración de un Clúster de Kubernetes
- CLI de Kubernetes (kubectl)
Módulo 2: Componentes Principales de Kubernetes
Módulo 3: Gestión de Configuración y Secretos
Módulo 4: Redes en Kubernetes
Módulo 5: Almacenamiento en Kubernetes
Módulo 6: Conceptos Avanzados de Kubernetes
Módulo 7: Monitoreo y Registro
- Monitoreo con Prometheus
- Registro con Elasticsearch, Fluentd y Kibana (EFK)
- Verificaciones de Salud y Sondas
- Servidor de Métricas
Módulo 8: Seguridad en Kubernetes
- Control de Acceso Basado en Roles (RBAC)
- Políticas de Seguridad de Pods
- Seguridad de Red
- Seguridad de Imágenes
Módulo 9: Escalado y Rendimiento
- Autoescalado Horizontal de Pods
- Autoescalado Vertical de Pods
- Autoescalado de Clúster
- Ajuste de Rendimiento
Módulo 10: Ecosistema y Herramientas de Kubernetes
Módulo 11: Estudios de Caso y Aplicaciones del Mundo Real
- Despliegue de una Aplicación Web
- CI/CD con Kubernetes
- Ejecución de Aplicaciones con Estado
- Gestión Multi-Clúster