- Gestión de Clúster
1.1 Información del Clúster
# Ver estado del clúster
kubectl cluster-info
# Comprobar salud de componentes
kubectl get componentstatuses
# Consultar versión
kubectl version
# Monitorear recursos
kubectl top nodes
kubectl top pods
# Eventos recientes
kubectl get events -A --sort-by='.lastTimestamp'
1.2 Administración de Nodos
# Listar nodos
kubectl get no
kubectl get nodes -o wide
# Detalles de nodo
kubectl describe node <nombre-nodo>
# Etiquetar nodo
kubectl label nodes <nombre-nodo> clave=valor
# Preparar mantenimiento
kubectl drain <nombre-nodo> --ignore-daemonsets --delete-local-data
# Reactivar nodo
kubectl uncordon <nombre-nodo>
# Recursos asignados
kubectl describe nodes | grep -A 10 "Recursos Asignados"</nombre-nodo></nombre-nodo></nombre-nodo></nombre-nodo>
- Espacios de Nombres
# Listar namespaces
kubectl get ns
# Crear namespace
kubectl create ns <espacio>
# Cambiar contexto
kubectl config set-context --current --namespace=<espacio>
# Namespace actual
kubectl config view --minify | grep namespace
# Eliminar namespace
kubectl delete ns <espacio>
# Recursos por namespace
kubectl get all -n <espacio></espacio></espacio></espacio></espacio>
- Operaciones con Pods
3.1 Comandos Básicos
# Listar pods globales
kubectl get pods -A
# Pods por namespace
kubectl get pods -n <espacio>
# Detalles de pod
kubectl describe pod <pod> -n <espacio>
# Ver logs
kubectl logs <pod> -n <espacio>
# Seguir logs en tiempo real
kubectl logs -f <pod> -n <espacio>
# Conectar al contenedor
kubectl exec -it <pod> -n <espacio> -- /bin/sh
# Ejecutar comando remoto
kubectl exec <pod> -n <espacio> -- comando
# Eliminar pod
kubectl delete pod <pod> -n <espacio></espacio></pod></espacio></pod></espacio></pod></espacio></pod></espacio></pod></espacio></pod></espacio>
3.2 Diagnóstico
# Eventos de pod
kubectl describe pod <pod> | grep -A 15 Eventos
# Redirección de puertos
kubectl port-forward <pod> <local>:<remoto> -n <espacio>
# Transferir archivos
kubectl cp archivo.local <espacio>/<pod>:ruta
kubectl cp <espacio>/<pod>:ruta archivo.local</pod></espacio></pod></espacio></espacio></remoto></local></pod></pod>
- Administración de Deploymants
# Listar deployments
kubectl get deploy -A
# Crear deployment
kubectl create deploy <deployment> --image=imagen -n <espacio>
# Aplicar configuración
kubectl apply -f deployment.yaml
# Escalar réplicas
kubectl scale deploy/<deployment> --replicas=5 -n <espacio>
# Actualizar imagen
kubectl set image deploy/<deployment> contenedor=nueva-imagen -n <espacio>
# Revertir cambios
kubectl rollout undo deploy/<deployment> -n <espacio>
# Historial de versiones
kubectl rollout history deploy/<deployment> -n <espacio>
# Pausar actualización
kubectl rollout pause deploy/<deployment> -n <espacio></espacio></deployment></espacio></deployment></espacio></deployment></espacio></deployment></espacio></deployment></espacio></deployment>
- Servicios y Redes
# Listar servicios
kubectl get svc -A
# Exponer deployment
kubectl expose deploy <deployment> --port=80 --target-port=8080 -n <espacio>
# Puntos de acceso
kubectl get endpoints <servicio> -n <espacio>
# Configuración Ingress
kubectl get ingress -A
kubectl describe ingress <ingress> -n <espacio></espacio></ingress></espacio></servicio></espacio></deployment>
- Configuración y Secretos
# ConfigMaps
kubectl get cm -n <espacio>
kubectl create cm <config> --from-file=ruta -n <espacio>
# Secrets
kubectl get secrets -n <espacio>
kubectl create secret generic <secreto> --from-literal=usuario=admin -n <espacio>
echo -n "clave" | base64</espacio></secreto></espacio></espacio></config></espacio>
- Almacenamiento
# Volúmenes persistentes
kubectl get pv
kubectl get pvc -n <espacio>
kubectl get sc</espacio>
- Monitoreo y Seguridad
# Uso de recursos
kubectl top pod <pod> -n <espacio>
kubectl top node
# Auditoría RBAC
kubectl get roles,rolebindings -n <espacio>
kubectl get clusterroles,clusterrolebindings</espacio></espacio></pod>
- Automatización
# Eliminar pods fallidos
kubectl delete pods --field-selector=status.phase=Failed -n <espacio>
# Reiniciar deployment
kubectl patch deploy <deployment> -p '{"spec":{"template":{"metadata":{"annotations":{"fecha":"$(date +%s)"}}}}}' -n <espacio>
# Exportar configuración
kubectl get deploy <deployment> -o yaml -n <espacio> > config.yaml</espacio></deployment></espacio></deployment></espacio>
- Optimizaciones
# Atajos comunes
alias k='kubectl'
alias kp='kubectl get pods'
alias kd='kubectl describe'
alias kl='kubectl logs'
# Plantillas YAML
kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml
kubectl create deploy nginx --image=nginx --dry-run=client -o yaml > deploy.yaml