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.

Consejo

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:

  1. Configuración imperativa
  2. Configuración declarativa
  3. 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
shell

Este 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
yaml

Utiliza el comando kubectl apply para aplicar la configuración declarativa y activar el pod de Kubernetes.

kubectl apply -f nginx-pod.yaml
shell

Las 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
shell

Para 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
shell

Este 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
shell

El 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
shell

Este 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
shell

Con 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
shell

Esto detendrá el pod seleccionado y apagará el contenedor asociado. En este ejemplo, hemos eliminado con éxito el pod de Nginx del clúster.

Managed Kubernetes
Gestiona las cargas de trabajo de los contenedores con total seguridad

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.

¿Le ha resultado útil este artículo?
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador en nuestra. Política de Cookies.
Page top