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
