Implementa contenedores

En esta página, se explica cómo implementar una imagen de contenedor en un clúster de Google Kubernetes Engine (GKE) en el que la autorización binaria está habilitada. Los comandos que usas para la implementación son los mismos que usas con el fin de implementar imágenes en clústeres que no usan la autorización binaria.

Antes de comenzar

Instala kubectl para interactuar con GKE.

Configura kubectl

Debes actualizar el archivo local kubeconfig de tu instalación de kubectl. Esto proporciona las credenciales y la información del extremo necesarias para acceder al clúster en GKE.

Para configurar kubectl, sigue estos pasos:

gcloud container clusters get-credentials \
    --zone ZONE \
    CLUSTER_NAME

En el ejemplo anterior, se ilustra lo siguiente:

  • ZONE es el nombre de la zona de GKE en la que se ejecuta el clúster (por ejemplo, us-central1-a1).
  • CLUSTER_NAME es el nombre del clúster.

Implementa la imagen de contenedor

Puedes implementar la imagen con el comando kubectl run.

Debes implementar la imagen mediante el resumen en lugar de una etiqueta como 1.0 o latest, ya que la autorización binaria usará la ruta de la imagen y el resumen para buscar certificaciones.

Para implementar la imagen, ejecuta el siguiente comando:

kubectl run ${DEPLOYMENT_NAME} \
    --image ${IMAGE_PATH}@${IMAGE_DIGEST} --port 8080

En el ejemplo anterior, se ilustra lo siguiente:

  • DEPLOYMENT_NAME es el nombre que deseas usar para la carga de trabajo de GKE.
  • IMAGE_PATH:IMAGE_DIGEST es la ruta y el resumen de la imagen en Container Registry o en otro registro (por ejemplo, gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4).

Anula una política

La autorización binaria es compatible con una función conocida como de emergencia que te permite anular una política de autorización cuando implementas una imagen de contenedor. Esta función se implementa de manera coherente con las recomendaciones de la especificación del controlador de admisión de Kubernetes.

En el siguiente ejemplo, se muestra cómo crear un Pod de GKE mediante la función de emergencia para anular una política:

  1. Crea un archivo de configuración en formato YAML. En este archivo se incluye la anotación de la función de emergencia, así como otra información necesaria para crear el Pod:

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-name
      annotations:
        alpha.image-policy.k8s.io/break-glass: "true"
    spec:
      containers:
      - name: container-name
        image: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
    

    GKE también te permite especificar una configuración para recursos nuevos mediante el formato JSON si así lo deseas.

  2. Crea el Pod mediante kubectl:

    kubectl create -f YAML_file
    

Verifica que una imagen esté en ejecución

Para verificar que la imagen esté en ejecución, ingresa el siguiente comando:

kubectl get pods

El comando imprime un mensaje similar al siguiente, que indica que la implementación se realizó de forma correcta:

NAME                            READY     STATUS    RESTARTS   AGE
hello-server-579859fb5b-h2k8s   1/1       Running   0          1m

Ve el registro de auditoría

Para obtener más información sobre cómo ver el estado de aplicación y los mensajes de implementación en Cloud Logging, consulta Visualiza los registros de auditoría.