Configura duplicaciones de registro

Duplicación de registro

Las duplicaciones de registro se designan para duplicar las imágenes de gcr.io y docker.io. Por ejemplo, si intentas extraer una imagen gcr.io/kubernetes-e2e-test-images/nautilus:1.0, solo funcionará si tu servicio de registro tiene esta imagen en la misma ruta, como 172.18.0.20:5000/kubernetes-e2e-test-images/nautilus:1.0. Todas las imágenes que no son gcr.io siguen funcionando con normalidad, por ejemplo, puedes extraer k8s.gcr.io/pause:3.1.

Usar una duplicación de registro te ayuda a ahorrar en tráfico y ofrece una alternativa al uso de gcr.io en caso de que necesites aislar los clústeres de las interrupciones de gcr.io. También te permite realizar tu propio análisis de vulnerabilidades.

Antes de comenzar

  • Debes tener un servidor de registro de contenedores configurado en tu red.
  • Si el servidor de registro ejecuta un certificado TLS privado, debes tener el archivo de autoridad certificadora (CA).
  • Si el servidor de registro necesita autenticación, debes tener las credenciales de acceso o el archivo de configuración de Docker adecuados.

Sube imágenes de contenedor a tu servidor de registro

Ejecuta el siguiente comando para subir las imágenes del paquete de imágenes a tu servidor de registro:

actl images push \
    --private-registry=PRIVATE_REGISTRY \
    --images ~/anthos-baremetal-private-mode

Reemplaza lo siguiente:

  • PRIVATE_REGISTRY por la dirección de registro privado (y el puerto) y el subproyecto, como 172.18.0.20:5000/test-namespace.

  • Ingresa tu nombre de usuario y contraseña cuando se te solicite o selecciona un archivo de configuración de Docker. Si tu servidor de registro no requiere credenciales, especifica --no-registry-credential.

Para obtener más información sobre el uso del comando actl images push, consulta:

actl images push --help

Usa tu propio espacio de nombres

Si deseas usar tu propio espacio de nombres en tu servidor de registro en lugar del espacio de nombres raíz, containerd puede extraer este subespacio de nombres si proporcionas el extremo de la API para tu registro privado en registryMirrors.endpoint. Por lo general, el extremo tiene el formato <REGISTRY_IP:PORT>/v2/<NAMESPACE>. Consulta la guía del usuario de tu registro privado para obtener detalles específicos.

Por ejemplo, si solo tienes acceso a 172.18.0.20:5000/test-namespace/, puedes usar el comando siguiente para subir todas las imágenes en el espacio de nombres test-namespace:

actl images push \
    --images= ~/anthos-baremetal-private-mode \
    --private-registry=172.18.0.20:5000/test-namespace

Luego, en el archivo YAML del clúster, puedes ingresar lo siguiente para que el containerd se extraiga del espacio de nombres secundario:

registryMirrors:
  - endpoint: https://172.18.0.20:5000/v2/test-namespace

Crea clústeres desde la duplicación del registro

A continuación, se muestra un archivo de configuración de clúster de muestra que usa tu propio servidor de duplicación de registro en lugar de gcr.io.

Si tu registro no requiere un certificado TLS privado, puedes dejar el campo caCertPath en blanco.

Si el servidor de registro no requiere un archivo de configuración de Docker de autenticación, puedes dejar el campo pullCredentialConfigPath en blanco.

Para obtener información detallada sobre la configuración del clúster, consulta Configuración del clúster.

# Sample cluster config with registry mirror:
---
sshPrivateKeyPath: /root/ssh-key/id_rsa
registryMirrors:
  - endpoint: https://172.18.0.20:5000/v2/test-namespace
    caCertPath: /root/ca.crt
    pullCredentialConfigPath: /root/.docker/config.json
---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-admin
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: admin
  namespace: cluster-admin
spec:
  nodeConfig:
    containerRuntime: containerd
...

Todos los nodos de este clúster usarán esta duplicación de registro 172.18.0.20:5000 en lugar de gcr.io (y docker.io).

Conmutar por error a gcr.io

Si tu clúster no puede extraer la duplicación de tu registro, conmutará por error de forma automática a gcr.io. Por este motivo, se recomienda proporcionar un valor para privateRegistryConfigPath en el archivo de configuración del clúster. Si no se proporciona un valor, tu clúster no puede extraer de gcr.io en caso de que tu duplicación de registro falle.

# Sample cluster config with registry mirror:
---
privateRegistryConfigPath: /root/.docker/config.json
registryMirrors:
  - endpoint: https://172.18.0.20:5000
    caCertPath: /root/ca.crt
    pullCredentialConfigPath: /root/.docker/config.json

Si no necesitas la función de conmutación por error de extracción, no necesitas agregar una privateRegistryConfigPath ni agregar gcr.io (y docker.io) a la lista de permisos del proxy.

Actualiza extremos de registro duplicado, certificados y credenciales de extracción

Para actualizar los extremos de duplicación del registro, los certificados o las credenciales de extracción, sigue estos pasos:

  1. En el archivo de configuración del clúster, actualiza el extremo, el archivo del certificado de CA y la ruta de acceso del archivo de configuración de la credencial.

  2. Ejecuta el siguiente comando para aplicar los cambios:

    actl clusters baremetal update cluster admin --kubeconfig=ADMIN_KUBECONFIG
    

¿Qué sigue?