Subido por arturo

Comandos Básicos

Anuncio
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.
Descargar