Comandos Básicos 1. kubectl create - Crea recursos de Kubernetes desde archivos de configuración. 2. kubectl apply - Aplica cambios a recursos existentes a partir de archivos de configuración. 3. kubectl get - Muestra uno o más recursos. 4. kubectl describe - Muestra detalles sobre un recurso específico. 5. kubectl delete - Elimina recursos de Kubernetes. 6. kubectl edit - Edita un recurso en vivo. 7. kubectl config - Gestiona la configuración de kubectl. 8. kubectl logs - Muestra los logs de un contenedor en un pod. 9. kubectl exec - Ejecuta un comando en un contenedor dentro de un pod. 10. kubectl port-forward - Reenvía un puerto local a un puerto de un pod. 11. kubectl expose - Expone un recurso como un servicio. 12. kubectl scale - Escala el número de réplicas de un recurso. 13. kubectl rollout - Gestiona la implementación de un despliegue. Comandos Avanzados 14. kubectl top - Muestra las métricas de uso de recursos. 15. kubectl apply -f - Aplica un archivo de configuración. 16. kubectl patch - Aplica cambios parciales a recursos. 17. kubectl set - Gestiona el despliegue de recursos (ej. imagen, recursos, etc.). 18. kubectl label - Añade, cambia o elimina etiquetas en recursos. 19. kubectl annotate - Añade, cambia o elimina anotaciones en recursos. 20. kubectl cordon - Marca un nodo como no disponible. 21. kubectl drain - Desaloja un nodo, moviendo todos los pods a otros nodos. 22. kubectl taint - Añade una mancha (taint) a un nodo para evitar que se programen pods en él. Comandos para ConfigMap y Secret 23. kubectl create configmap - Crea un ConfigMap desde archivos, directorios o valores literales. 24. kubectl create secret - Crea un Secret a partir de archivos o literales. 25. kubectl get configmap - Obtiene uno o más ConfigMaps. 26. kubectl get secret - Obtiene uno o más Secrets. Comandos para Manejo de Pods 27. kubectl get pods - Muestra la lista de pods. 28. kubectl delete pod - Elimina un pod específico. 29. kubectl describe pod - Muestra detalles sobre un pod específico. 30. kubectl logs pod-name - Muestra los logs de un pod específico. Comandos para Servicios 31. kubectl get services - Muestra la lista de servicios. 32. kubectl describe service - Muestra detalles sobre un servicio específico. 33. kubectl delete service - Elimina un servicio. Comandos para Deployments 34. kubectl get deployments - Muestra la lista de deployments. 35. kubectl describe deployment - Muestra detalles sobre un deployment específico. 36. kubectl delete deployment - Elimina un deployment. 37. kubectl rollout undo deployment - Revierta la última actualización de un deployment. 38. kubectl rollout status deployment - Verifica el estado del rollout de un deployment. Comandos para Namespaces 39. kubectl get namespaces - Muestra la lista de namespaces. 40. kubectl create namespace - Crea un nuevo namespace. 41. kubectl delete namespace - Elimina un namespace. Comandos para Ingress 42. kubectl get ingress - Muestra la lista de objetos Ingress. 43. kubectl describe ingress - Muestra detalles sobre un Ingress específico. 44. kubectl delete ingress - Elimina un Ingress. Comandos para Node 45. kubectl get nodes - Muestra la lista de nodos. 46. kubectl describe node - Muestra detalles sobre un nodo específico. 47. kubectl delete node - Elimina un nodo del clúster. 48. kubectl drain node-name - Desaloja un nodo, moviendo todos los pods a otros nodos. 49. kubectl cordon node-name - Marca un nodo como no disponible para nuevas cargas de trabajo. Comandos de Depuración 50. kubectl debug - Inicia una sesión de depuración en un contenedor o pod. 51. kubectl cp - Copia archivos o directorios entre contenedores y tu máquina local. 52. kubectl port-forward pod-name 8080:80 - Redirige un puerto en tu máquina local al puerto de un pod. Este es un resumen de comandos útiles para gestionar un clúster de Kubernetes. Cada comando tiene varias opciones y subcomandos que puedes explorar según sea necesario. 4o Crear archivos .yaml para Kubernetes implica definir recursos como pods, servicios, deployments, etc., utilizando la sintaxis YAML. A continuación te muestro cómo crear algunos archivos YAML básicos para Kubernetes. 1. Archivo YAML para un Pod Un pod es la unidad básica de ejecución en Kubernetes. Aquí hay un ejemplo de un archivo YAML para un pod: yaml Copiar código apiVersion: v1 kind: Pod metadata: name: my-pod labels: app: my-app spec: containers: - name: my-container image: nginx:latest ports: - containerPort: 80 Explicación: apiVersion: Define la versión de la API de Kubernetes que se está utilizando. v1 es la versión más común para recursos básicos. kind: Especifica el tipo de recurso. En este caso, es un Pod. metadata: Contiene datos sobre el recurso, como su nombre y etiquetas. spec: Define la especificación del recurso. Aquí se especifica el contenedor que correrá en el pod. 2. Archivo YAML para un Deployment Un Deployment asegura que un número especificado de réplicas de un pod se ejecutan en todo momento. yaml Copiar código apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment labels: app: my-app spec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-container image: nginx:latest ports: - containerPort: 80 Explicación: kind: Es un Deployment. replicas: Número de réplicas del pod que se desea ejecutar. selector: Utiliza matchLabels para seleccionar los pods gestionados por este Deployment. template: Define el pod que será creado por el Deployment, similar a la estructura YAML de un pod. 3. Archivo YAML para un Servicio (Service) Un Servicio expone un pod o conjunto de pods a la red. yaml Copiar código apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer Explicación: kind: Es un Service. selector: Selecciona los pods que deben ser expuestos por este servicio. ports: Define el puerto del servicio y el puerto al que se redirige dentro del pod. type: El tipo LoadBalancer crea un balanceador de carga que expone el servicio a través de una IP externa. 4. Archivo YAML para un ConfigMap Un ConfigMap se utiliza para almacenar datos de configuración. yaml Copiar código apiVersion: v1 kind: ConfigMap metadata: name: my-config data: database_url: "localhost:5432" database_name: "mydb" Explicación: kind: Es un ConfigMap. data: Contiene pares clave-valor que se utilizan como datos de configuración en los contenedores. 5. Archivo YAML para un Secret Un Secret almacena datos sensibles, como contraseñas. yaml Copiar código apiVersion: v1 kind: Secret metadata: name: my-secret type: Opaque data: username: YWRtaW4= password: MWYyZDFlMmU2N2Rm Explicación: kind: Es un Secret. type: Define el tipo de secreto. Opaque es el tipo más común. data: Los valores deben estar codificados en base64. 6. Archivo YAML para un Ingress Un Ingress gestiona el acceso externo a los servicios dentro de un clúster, típicamente HTTP. yaml Copiar código apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ingress spec: rules: - host: myapp.example.com http: paths: - path: / pathType: Prefix backend: service: name: my-service port: number: 80 Explicación: kind: Es un Ingress. rules: Define las reglas para dirigir el tráfico. backend: Especifica el servicio al que se dirige el tráfico para una ruta en particular. Guardar y Aplicar los Archivos YAML 1. Guarda los archivos con la extensión .yaml o .yml, por ejemplo, my-pod.yaml. 2. Aplica los archivos a tu clúster de Kubernetes usando el siguiente comando: bash Copiar código kubectl apply -f my-pod.yaml Puedes repetir este comando para cualquier archivo YAML que desees aplicar. De esta forma, puedes gestionar los recursos de tu clúster de manera declarativa.