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 del 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 sin protección. Cuando inicies 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 Container Registry
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 privado, puedes usar la herramienta de línea de comandos de gkectl
o Terraform.
gkectl
Agrega la sección privateRegistry
al archivo de configuración del clúster de administrador antes de crear el clúster.
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 campobundlePath
de tu archivo de configuración del clúster de administrador y envía las imágenes 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.
Terraform
Sigue los pasos de la pestaña Terraform en Crea un clúster de administrador para completar el archivo de configuración del clúster de administrador.
Agrega lo siguiente al archivo de configuración del clúster de administrador:
private_registry_config { address = "ADDRESS" ca_cert = "CA_CERT" }
Reemplaza lo siguiente:
"ADDRESS"
: La dirección IP o el FQDN (nombre de dominio completamente calificado) de la máquina que ejecuta tu registro privado."CA_CERT"
: Es la clave pública del certificado de la CA para el registro privado.
Continúa con los pasos de la pestaña Terraform en Crea un clúster de administrador para verificar el archivo de configuración y el plan de Terraform, y, luego, crear el clúster de arranque.
Cuando ejecutas el comando
gkectl register bootstrap
,gkectl
te solicita que ingreses el nombre de usuario y, luego, la contraseña del registro privado.
Durante la creació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 regular. Para determinar qué paquete 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 se encuentra en tu estación de trabajo de administrador. Si el nombre de 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 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 está habilitado el clúster avanzado, 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:
- Descarga el paquete de tamaño normal en tu estación de trabajo de administrador.
- Actualiza el nombre de 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 degcr.io/gke-on-prem-release
en lugar del archivo tar. Sin embargo, el comando sí 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 en que verificas 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 llamadoconfig.toml
como se muestra en los pasos siguientes:- Accede a un nodo y examina el contenido del archivo
/etc/containerd/config.toml
. Verifica el campo
plugins."io.containerd.grpc.v1.cri".registry.mirrors
del archivoconfig.toml
para ver si el servidor de registro aparece en el campoendpoint
.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"] ...
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.
- Accede a un nodo y examina el contenido del archivo