El comando Podman play kube ahora admite implementaciones

Una de las características más geniales que hemos agregado a Podman es soporte para interactuar con objetos de Kubernetes. Con el podman generate kube orden, Podman puede exportar sus contenedores existentes a Kubernetes Pod YAML para importarlos a un OpenShift o clúster de Kubernetes. el podman play kube El comando hace lo contrario, toma Kubernetes YAML y lo ejecuta en Podman. Inicialmente, el play kube El comando solo se admite para ejecutar YAML Pod. Sin embargo, la mayoría de los usuarios de Kubernetes prefieren usar la implementación YAML más flexible, que no admitimos. Con el lanzamiento de Podman v2.0, solucionamos este problema y la implementación de YAML ahora se puede usar con el podman play kube pedido.

Índice

    Migraciones

    Cuando agregamos por primera vez podman generate kube y podman play kube, queríamos proporcionar una forma de facilitar la migración a Kubernetes. Podman solo ejecuta contenedores en un solo nodo, lo que significa que los usuarios a menudo lo superan a medida que aumenta su carga de trabajo. Queríamos brindarles a los administradores de clústeres una rampa fácil para trasladar su trabajo a Kubernetes, una solución estándar de la industria para administrar contenedores en muchos nodos. el podman generate kube comando lo hace posible. Hemos añadido podman play kube para complementar esto al permitir que los desarrolladores prueben su nuevo YAML localmente antes de implementarlo. Nuestro último soporte para implementaciones hace que esto sea mucho más útil.

    Ejemplo

    Veamos un ejemplo Despliegue de la documentación de Kubernetes:

    $ cat ./nginx-deployment.yaml  
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          Contenedores:
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80

    Podemos realizar esto fácilmente con podman play kube:

    $ podman play kube ./nginx-deployment.yaml                                                                        
    Trying to pull docker.io/library/nginx:1.14.2...
    Getting image source signatures
    Copying blob 27833a3ba0a5 done   
    Copying blob 0f23e58bd0b7 done   
    Copying blob 8ca774778e85 done   
    Copying config 295c7be079 done   
    Writing manifest to image destination
    Storing signatures
    Pod:
    b4a261247bb458a6be85c600368c5563d086ac1925f4b4f2760bff6b74cd5084
    Container:
    d969453f4cc39a90a3d3cdcb0429851ea2f4a1e6a9e0deddef0e75204238fa1a
     
    Pod:
    6e838493599b1b93ca61b30e9bd4a783fc0d5fa5cb9544c8321e499668b1f318
    Container:
    1548c6b6420108dd13fe237c5da7f120f544293dfc2003f8c30b53dd6e94db39
     
    Pod:
    7e1a842a18d3cdc423b5408f4353a39ecd87819afcde5f0724842ca62b38bc5c
    Container:
    1506e5fc3f217403a866de2aaa961a667a423b392efdcc29c197934a5074a039

    Puede ver que YAML especifica tres réplicas, por lo que Podman creó tres pods, cada uno con un contenedor. hagamos un rápido podman ps para ver que hace:

    $ podman ps -a
    CONTAINER ID  IMAGE                 COMMAND               CREATED         STATUS             PORTS   NAMES
    0c3fa04969f7  nginx:1.14.2         /docker-entrypoin...  14 seconds ago  Up 13 seconds ago          nginx-deployment-pod-0-nginx
    1b50823b01b9  k8s.gcr.io/pause:3.2                        11 seconds ago  Up 8 seconds ago           b461352502f0-infra
    56b683ea398b  nginx:1.14.2          /docker-entrypoin...  8 seconds ago   Up 8 seconds ago           nginx-deployment-pod-2-nginx
    83276e1e562b  k8s.gcr.io/pause:3.2                        15 seconds ago  Up 13 seconds ago          16d50303cb06-infra
    cb7c430f65d1  nginx:1.14.2          /docker-entrypoin...  11 seconds ago  Up 11 seconds ago          nginx-deployment-pod-1-nginx
    fe6eefdfd7c4  k8s.gcr.io/pause:3.2                        13 seconds ago  Up 11 seconds ago          288bcb7e5f7c-infra

    Puedes ver tres infra (pausa) contenedores y tres contenedores Nginx, uno por módulo, todos en funcionamiento. ¡Éxito!

    Planes futuros

    Desafortunadamente, aunque ahora podemos realizar implementaciones con podman play kube, todavía no podemos. el podman generate kube El comando aún no puede compilar la implementación de YAML. Planeamos trabajar en él para una versión futura, pero las contribuciones siempre son bienvenidas.

    Contribución comunitaria

    Una de las mejores cosas de esta nueva característica es que fue agregada por un miembro de la comunidad, aditya kamath. El Proyecto Podman está muy agradecido por la contribución. Esta es una prueba más del poder del código abierto.

    Artículos de interés

    Subir