Kubernetes - Orquestaci贸n de Contenedores¶
Introducci贸n a Kubernetes¶
Kubernetes (K8s) es una plataforma de orquestaci贸n de contenedores de c贸digo abierto que automatiza el despliegue, escalado y gesti贸n de aplicaciones contenerizadas.
Arquitectura de Kubernetes¶
Componentes del plano de control¶
- API Server: Punto de entrada para todas las operaciones
- etcd: Base de datos distribuida que almacena la configuraci贸n
- Scheduler: Asigna pods a nodos
- Controller Manager: Mantiene el estado del cluster
Componentes del nodo¶
- kubelet: Agente que ejecuta en cada nodo
- kube-proxy: Gestiona las reglas de red
- Container Runtime: Software que ejecuta los contenedores
Conceptos fundamentales¶
Pods¶
Los pods son la unidad m谩s peque帽a de Kubernetes. Contienen uno o m谩s contenedores.
# pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: mi-pod
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
Deployments¶
Los deployments gestionan el estado deseado de los pods.
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mi-deployment
spec:
replicas: 3
selector:
matchLabels:
app: mi-app
template:
metadata:
labels:
app: mi-app
spec:
containers:
- name: nginx
image: nginx:latest
Services¶
Los services exponen aplicaciones que se ejecutan en pods.
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: mi-service
spec:
selector:
app: mi-app
ports:
- port: 80
targetPort: 80
type: LoadBalancer
Comandos b谩sicos¶
# Aplicar un manifiesto
kubectl apply -f archivo.yaml
# Listar pods
kubectl get pods
# Ver logs de un pod
kubectl logs <pod-name>
# Ejecutar comando en un pod
kubectl exec -it <pod-name> -- /bin/bash
# Escalar un deployment
kubectl scale deployment mi-deployment --replicas=5
Casos de uso¶
- Microservicios
- Aplicaciones nativas en la nube
- CI/CD pipelines
- Aplicaciones de alta disponibilidad
Pr贸ximos pasos¶
En las siguientes secciones exploraremos: - Configuraci贸n avanzada de clusters - Gesti贸n de almacenamiento - Redes y pol铆ticas de seguridad - Monitoreo y logging - Helm y gesti贸n de paquetes
Recursos adicionales¶
Documentaci贸n oficial¶
- Sitio web oficial: kubernetes.io
- Documentaci贸n: kubernetes.io/docs
- GitHub: github.com/kubernetes/kubernetes
- Blog oficial: kubernetes.io/blog
Comunidad¶
- Reddit: r/kubernetes
- Stack Overflow: stackoverflow.com/questions/tagged/kubernetes
- Slack: slack.k8s.io
- Discord: discord.gg/kubernetes