Creando y examinando un Pod
Antes de sumergirnos, entendamos cómo funciona YAML en Kubernetes:
graph TB
A[YAML Config File] -->|Declares Desired State| B[Kubernetes API]
B -->|Creates/Manages| C[Running Containers]
D[kubectl CLI] -->|Reads| A
Los archivos YAML en Kubernetes actúan como "Infraestructura como Código":
- Piénsalo como un "menú" que le dice a Kubernetes lo que quieres.
- Describe el estado deseado de tu sistema en un formato legible por humanos.
- Puede ser controlado por versiones para la colaboración en equipo.
Creemos nuestro primer archivo YAML. Crea simple-pod.yaml
:
nano ~/project/simple-pod.yaml
Agrega el siguiente contenido:
## --- Beginning of YAML file ---
## 1. Tell Kubernetes which API version to use
apiVersion: v1
## 2. Declare what kind of resource we want to create
kind: Pod
## 3. Set metadata for this resource
metadata:
name: nginx-pod ## Name of the Pod
labels: ## Labels help us find and organize Pods
app: nginx
## 4. Define what the Pod should contain
spec:
containers: ## Pod can run one or more containers
- name: nginx ## Name of the container
image: nginx:latest ## Which container image to use
ports: ## Which ports to expose
- containerPort: 80 ## Nginx uses port 80 by default
La estructura del archivo YAML es como un árbol:
Pod (root)
├── metadata (branch)
│ ├── name (leaf)
│ └── labels (leaf)
└── spec (branch)
└── containers (branch)
└── - name, image, ports (leaves)
Crea el Pod:
kubectl apply -f simple-pod.yaml ## -f means read from file
Este comando hará lo siguiente:
- Leerá tu archivo YAML.
- Lo enviará a la API de Kubernetes.
- Kubernetes trabajará para alcanzar el estado que has descrito.
Verifica la creación del Pod:
kubectl get pods
Deberías ver:
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 30s
El "1/1" debajo de READY significa que uno de uno contenedores en el Pod está listo. "Running" (En ejecución) debajo de STATUS significa que tu primera configuración YAML funcionó.
💡 Consejos profesionales:
- La indentación en YAML es crucial: usa espacios, no tabulaciones.
- Utiliza
kubectl explain pod
para ver la documentación de los campos.
- Siempre agrega comentarios para una mejor mantenibilidad.
Para obtener información detallada sobre el pod:
kubectl describe pod nginx-pod
Este comando proporciona mucha información, incluyendo:
- El nodo en el que se está ejecutando el Pod.
- La dirección IP del Pod.
- Los contenedores en el Pod.
- Los eventos recientes relacionados con el Pod.
Esta información es crucial para la depuración y la comprensión del estado de tu aplicación.