Configura un registro de contenedor privado

En esta página, se explica cómo configurar un servidor de registro de contenedores existente para Google Distributed Cloud (solo software) para VMware.

Esta página está destinada a administradores, arquitectos y operadores que configuran, supervisan y administran la infraestructura tecnológica. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Tareas y roles comunes de los usuarios de GKE Enterprise.

Descripción general

De forma predeterminada, durante la creación o actualización de un clúster, Google Distributed Cloud extrae imágenes del sistema de gcr.io/gke-on-prem-release con la cuenta de servicio de acceso a componentes. De forma opcional, puedes proporcionar tu propio servidor de registro de contenedores para que las imágenes del sistema se extraigan de tu servidor de registro privado.

Google Distributed Cloud no admite registros de contenedores no seguros. Cuando inicias el servidor de registro de contenedores, debes proporcionar un certificado y una clave. Una autoridad certificada (CA) pública puede firmar el certificado, o este se puede autofirmar.

Crea un servidor de registro de contenedores

Para obtener información sobre cómo crear un servidor de registro de contenedores, consulta Ejecuta un registro accesible de forma externa en la documentación de Docker.

Configura el registro

Para usar un registro de contenedores privados, completa la sección privateRegistry en el archivo de configuración del clúster de administrador antes de crearlo. Cuando se completa esta sección, ocurre lo siguiente:

  • Cuando ejecutas el comando gkectl prepare antes de crear o actualizar el clúster, el comando extrae las imágenes del archivo tar que se especifica en el campo bundlePath del archivo de configuración del clúster de administrador y las envía a tu servidor de registro privado.

  • Durante la creación o actualización del clúster, las imágenes del sistema se extraen de tu servidor de registro privado.

Limitaciones con los clústeres avanzados y el paquete completo

Hay dos paquetes de Google Distributed Cloud disponibles: completo y estándar. Para determinar cuál es el paquete que se encuentra en tu estación de trabajo de administrador, verifica el campo bundlePath en el archivo de configuración del clúster de administrador. Si el nombre del archivo termina en -full, el paquete completo está en tu estación de trabajo de administrador. Si el nombre del archivo no termina en -full, el paquete normal está en tu estación de trabajo de administrador.

Si creaste tu estación de trabajo de administrador con el comando gkeadm, este comando crea la VM de la estación de trabajo de administrador con el paquete completo y configura el campo bundlePath en el archivo de configuración del clúster de administrador.

Si el clúster avanzado está habilitado, existen limitaciones para usar el paquete completo con un registro privado, como se indica a continuación:

  • Versión 1.31: El paquete completo no es compatible con un registro privado. Para usar un registro privado en un clúster avanzado, haz lo siguiente:

    1. Descarga el paquete de tamaño normal en tu estación de trabajo de administrador.
    2. Actualiza el nombre del archivo en el campo bundlePath del archivo de configuración del clúster de administrador.
  • Versión 1.32: Se admite el uso del paquete completo, pero el comando gkectl prepare extrae imágenes de gcr.io/gke-on-prem-release en lugar del archivo tar. Sin embargo, el comando envía las imágenes a tu registro privado para que las imágenes del sistema se extraigan de tu registro privado durante la creación o actualización del clúster.

Verifica que las imágenes se extraigan de tu servidor de registro

La forma de verificar que las imágenes se extraigan de tu servidor de registro depende de si el clúster avanzado está habilitado.

  • Si el clúster avanzado no está habilitado, ejecuta el siguiente comando:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get pods \
        --all-namespaces -o jsonpath="{.items[*].spec['initContainers', 'containers'][*].image}"
    

    Reemplaza ADMIN_CLUSTER_KUBECONFIG por la ruta de acceso del archivo kubeconfig del clúster de administrador.

    El resultado de este comando muestra todas las imágenes de tu clúster. Puedes verificar que todas las imágenes de Google Distributed Cloud provengan de tu propio servidor de registro.

  • Si el clúster avanzado está habilitado, sigue estos pasos:

    Para determinar si containerd extrae imágenes de tu registro local, examina los contenidos de un archivo llamado config.toml como se muestra en los pasos siguientes:

    1. Accede a un nodo y examina el contenido del archivo /etc/containerd/config.toml.
    2. Verifica el campo plugins."io.containerd.grpc.v1.cri".registry.mirrors del archivo config.toml para ver si el servidor de registro aparece en el campo endpoint.

      El siguiente es un extracto de un archivo config.toml de ejemplo.

      version = 2
      root = "/var/lib/containerd"
      state = "/run/containerd"
      ...
      [plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.configs]
      [plugins."io.containerd.grpc.v1.cri".registry.configs."gcr.io"]
      [plugins."io.containerd.grpc.v1.cri".registry.configs."privateregistry2.io".tls]
      ca_file = '/etc/containerd/certs.d/privateregistry2.io/ca.crt'
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
      endpoint = ["http://privateregistry.io", "http://privateregistry2.io"]
      ...
      
    3. Si la duplicación del registro aparece en el campo endpoint, el nodo extrae imágenes de la duplicación del registro en lugar de Artifact Registry.