Crear pod en Kubernetes
La configuración de pods en Kubernetes se realiza de manera imperativa, declarativa o mediante interfaces de API. Además, puede especificar y ajustar recursos adicionales para los contenedores incluidos.
Requisitos para crear un pod en Kubernetes
Para ejecutar un pod en Kubernetes, necesitas un clúster de Kubernetes en funcionamiento, ya sea localmente en un sistema de desarrollo, en un entorno en la nube o en un entorno on-premises. Para la instalación, te recomendamos este tutorial de Kubernetes. Además, debes tener la herramienta de línea de comandos kubectl instalada y configurada en tu ordenador para interactuar con el clúster de Kubernetes. Verifica también que el archivo kubeconfig esté correctamente configurado para establecer una conexión exitosa con el clúster.
Con la Cloud Empresarial de IONOS podrás orquestar clústeres con Kubernetes fácilmente. Así obtendrás la última tecnología de infraestructura como servicio (IaaS) y soluciones adaptadas a tu proyecto.
Guía paso a paso: cómo crear un pod en Kubernetes
Existen tres formas de crear pods en Kubernetes:
- Configuración imperativa
- Configuración declarativa
- Usar la interfaz de API
Configuración imperativa
En el enfoque imperativo, se le dan instrucciones explícitas al sistema a través de la línea de comandos de kubectl
para crear un pod, sin la necesidad de preparar previamente un archivo de configuración detallado.
kubectl run nginx --image=nginx --restart=Never
shellEste comando crea un solo pod llamado nginx, que contiene el servidor web Nginx.
Dado que el enfoque imperativo realiza cambios directamente sin una definición clara del estado deseado, se suele recomendar el enfoque declarativo.
Configuración declarativa
El enfoque declarativo en Kubernetes requiere definir el estado deseado de los recursos utilizando archivos de configuración YAML.
Abre un editor de texto y crea un archivo YAML, por ejemplo nginx-pod.yaml
, que describa el estado deseado del pod de Nginx.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
minReadySeconds: 5
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-container
image: nginx:latest
ports:
- containerPort: 80
yamlUtiliza el comando kubectl apply
para aplicar la configuración declarativa y activar el pod de Kubernetes.
kubectl apply -f nginx-pod.yaml
shellLas configuraciones declarativas que especificas en los archivos YAML son un registro concreto del estado deseado, incluyendo la versión del pod que se va a crear. Esto permite una gestión y monitorización transparente de los recursos en tu clúster de Kubernetes.
Uso de la API
Kubernetes ofrece una RESTful-API mediante la cual puedes interactuar con el clúster. Antes de utilizar la API, es necesario autenticarse y se debe estar autorizado. Normalmente, esto se realiza proporcionando tokens de acceso o certificados, dependiendo de la configuración del clúster.
Presentamos un ejemplo de cómo crear un archivo JSON para un pod de Nginx utilizando la API REST.
cat > nginx-pod.json <<EOF
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "nginx-deployment"
},
"spec": {
"selector": {
"matchLabels": {
"app": "nginx"
}
},
"minReadySeconds": 5,
"template": {
"metadata": {
"labels": {
"app": "nginx"
}
},
"spec": {
"containers": [
{
"name": "nginx-container",
"image": "nginx:latest",
"ports": [
{
"containerPort": 80
}
]
}
]
}
}
}
}
EOF
shellPara activar el pod, usa curl
para comunicarte con la API REST del clúster:
curl -k -v -X POST -H "Authorization: Bearer <JWT_TOKEN>" -H "Content-Type: application/json" https://cluster-ip:6443/api/v1/namespaces/default/pods -d@nginx-pod.json
shellEste comando curl
envía una solicitud POST HTTPS a un punto final del clúster. Las opciones -k
y -v
ignoran la verificación del certificado SSL y activan el modo detallado (verbose). Con -x
POST se define una solicitud POST. El encabezado Authorization incluye un token de portador (reemplaza <JWT_TOKEN>
por el token real), y Content-Type especifica que el formato de los datos es JSON. La opción -d@nginx-pod.json
envía los datos al servidor.
Ver pods
Para verificar el estado actual de todos los pods en el Namespace, ejecuta el siguiente comando:
kubectl get pods
shellEl resultado será una lista de los pods existentes junto con su estado, tiempo de inicio y otros detalles.
Para obtener información más detallada, usa:
kubectl describe pod my-pod
shellEste comando proporciona información detallada sobre el pod, que incluye configuración, eventos y transiciones de estado.
Para ver los registros del contenedor principal en el pod, utiliza:
kubectl logs my-pod
shellCon varios contenedores, puedes especificar el contenedor usando la opción -c
.
Eliminar un pod
Eliminar pods es sencillo y se puede hacer con un solo comando.
kubectl delete pod nginx
shellEsto detendrá el pod seleccionado y apagará el contenedor asociado. En este ejemplo, hemos eliminado con éxito el pod de Nginx del clúster.
La plataforma ideal para aplicaciones de contenedores de alto rendimiento y gran escalabilidad, integrada en el ecosistema de IONOS Cloud con soporte experto 24/7.