La co­n­fi­gu­ra­ción de pods en Ku­be­r­ne­tes se realiza de manera im­pe­ra­ti­va, de­cla­ra­ti­va o mediante in­te­r­fa­ces de API. Además, puede es­pe­ci­fi­car y ajustar recursos adi­cio­na­les para los co­n­te­ne­do­res incluidos.

Re­qui­si­tos para crear un pod en Ku­be­r­ne­tes

Para ejecutar un pod en Ku­be­r­ne­tes, necesitas un clúster de Ku­be­r­ne­tes en fu­n­cio­na­mie­n­to, ya sea lo­ca­l­me­n­te en un sistema de de­sa­rro­llo, en un entorno en la nube o en un entorno on-premises. Para la in­s­ta­la­ción, te re­co­me­n­da­mos este tutorial de Ku­be­r­ne­tes. Además, debes tener la he­rra­mie­n­ta de línea de comandos kubectl instalada y co­n­fi­gu­ra­da en tu ordenador para in­ter­ac­tuar con el clúster de Ku­be­r­ne­tes. Verifica también que el archivo ku­be­co­n­fig esté co­rre­c­ta­me­n­te co­n­fi­gu­ra­do para es­ta­ble­cer una conexión exitosa con el clúster.

Consejo

Con la Cloud Em­pre­sa­rial de IONOS podrás orquestar clústeres con Ku­be­r­ne­tes fá­ci­l­me­n­te. Así obtendrás la última te­c­no­lo­gía de in­frae­s­tru­c­tu­ra como servicio (IaaS) y so­lu­cio­nes adaptadas a tu proyecto.

Guía paso a paso: cómo crear un pod en Ku­be­r­ne­tes

Existen tres formas de crear pods en Ku­be­r­ne­tes:

  1. Co­n­fi­gu­ra­ción im­pe­ra­ti­va
  2. Co­n­fi­gu­ra­ción de­cla­ra­ti­va
  3. Usar la interfaz de API

Co­n­fi­gu­ra­ción im­pe­ra­ti­va

En el enfoque im­pe­ra­ti­vo, se le dan in­s­tru­c­cio­nes ex­plí­ci­tas al sistema a través de la línea de comandos de kubectl para crear un pod, sin la necesidad de preparar pre­via­me­n­te un archivo de co­n­fi­gu­ra­ció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 im­pe­ra­ti­vo realiza cambios di­re­c­ta­me­n­te sin una de­fi­ni­ción clara del estado deseado, se suele re­co­me­n­dar el enfoque de­cla­ra­ti­vo.

Co­n­fi­gu­ra­ción de­cla­ra­ti­va

El enfoque de­cla­ra­ti­vo en Ku­be­r­ne­tes requiere definir el estado deseado de los recursos uti­li­za­n­do archivos de co­n­fi­gu­ra­ció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 co­n­fi­gu­ra­ción de­cla­ra­ti­va y activar el pod de Ku­be­r­ne­tes.

kubectl apply -f nginx-pod.yaml
shell

Las co­n­fi­gu­ra­cio­nes de­cla­ra­ti­vas que es­pe­ci­fi­cas en los archivos YAML son un registro concreto del estado deseado, in­clu­ye­n­do la versión del pod que se va a crear. Esto permite una gestión y mo­ni­to­ri­za­ción tra­n­s­pa­re­n­te de los recursos en tu clúster de Ku­be­r­ne­tes.

Uso de la API

Ku­be­r­ne­tes ofrece una RESTful-API mediante la cual puedes in­ter­ac­tuar con el clúster. Antes de utilizar la API, es necesario au­te­n­ti­car­se y se debe estar au­to­ri­za­do. No­r­ma­l­me­n­te, esto se realiza pro­po­r­cio­na­n­do tokens de acceso o ce­r­ti­fi­ca­dos, de­pe­n­die­n­do de la co­n­fi­gu­ra­ción del clúster.

Pre­se­n­ta­mos un ejemplo de cómo crear un archivo JSON para un pod de Nginx uti­li­za­n­do 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 co­mu­ni­car­te 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 ve­ri­fi­ca­ción del ce­r­ti­fi­ca­do SSL y activan el modo detallado (verbose). Con -x POST se define una solicitud POST. El en­ca­be­za­do Au­tho­ri­za­tion incluye un token de portador (reemplaza <JWT_TOKEN> por el token real), y Content-Type es­pe­ci­fi­ca 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 exi­s­te­n­tes junto con su estado, tiempo de inicio y otros detalles.

Para obtener in­fo­r­ma­ción más detallada, usa:

kubectl describe pod my-pod
shell

Este comando pro­po­r­cio­na in­fo­r­ma­ción detallada sobre el pod, que incluye co­n­fi­gu­ra­ción, eventos y tra­n­si­cio­nes de estado.

Para ver los registros del co­n­te­ne­dor principal en el pod, utiliza:

kubectl logs my-pod
shell

Con varios co­n­te­ne­do­res, puedes es­pe­ci­fi­car el co­n­te­ne­dor 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 se­le­c­cio­na­do y apagará el co­n­te­ne­dor asociado. En este ejemplo, hemos eliminado con éxito el pod de Nginx del clúster.

Managed Ku­be­r­ne­tes de IONOS
La pla­ta­fo­r­ma ideal para gestionar apli­ca­cio­nes en co­n­te­ne­do­res.

Co­m­ple­ta­me­n­te escalable, seguro y con ac­tua­li­za­cio­nes au­to­má­ti­cas.

Ir al menú principal