Los artefactos del sistema admiten el sistema del dispositivo aislado de Google Distributed Cloud (GDC) y administran la implementación de GDC. El registro privado de artefactos de GDC almacena los artefactos del sistema. Existen varios formatos para los artefactos del sistema, incluidos, sin limitaciones, los siguientes:
- Imágenes de contenedor para Anthos, KubeVirt y servicios administrados de GDC
- Imágenes del sistema operativo (SO)
- Formatos de firmware
- Plantillas de máquina virtual (VM) doradas
- Charts de Helm
Artifact Registry participa en varias operaciones del sistema de GDC, como la instalación, las actualizaciones y el ciclo de vida de los recursos, de una manera segura, escalable y a prueba de manipulaciones.
Antes de comenzar
Para modificar los artefactos del sistema, debes obtener acceso de diagnóstico. El acceso de diagnóstico es un modo de acceso con privilegios que se requiere para brindar asistencia al cliente de forma segura cuando este tiene un problema. Debes crear un ticket para que se te otorgue este acceso.
Sube imágenes de Docker
Para modificar los artefactos del sistema, debes subir imágenes de Docker nuevas. El método de carga depende de cuál de los siguientes dos registros uses para enviar tus imágenes de contenedor:
- Sube imágenes de contenedor a Artifact Registry en la máquina de arranque.
- Sube imágenes de contenedor a Artifact Registry en el clúster de administrador.
En las siguientes secciones, se muestran las instrucciones de carga para los dos tipos de registros.
Artifact Registry en la máquina de arranque
Para subir imágenes de contenedor a Artifact Registry en la máquina de arranque, completa los siguientes pasos:
Asegúrate de tener la imagen de Docker modificada con los problemas de interrupción corregidos.
Transfiere la imagen nueva al nodo de arranque en tu entorno aislado.
Accede al nodo de arranque.
Ubica la dirección de Artifact Registry en la máquina de arranque durante el arranque y configúrala como la variable de entorno REGISTRY_IP:
REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}Recupera la credencial para acceder a Artifact Registry. Usa el siguiente comando para recuperar la cuenta y la contraseña del administrador:
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Accede a Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSSe imprimirá un mensaje
Login Succeededpara verificar que se accedió correctamente a Artifact Registry.Etiqueta la imagen nueva:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGReemplaza lo siguiente:
- CONTAINER_IMAGE_URL: Es la URL de la imagen de contenedor local, como
gcr.io/repository/image:tag. - PROJECT_NAME: Es el nombre del proyecto de Artifact Registry.
- IMAGE_NAME: Es el nombre de la imagen del contenedor.
- TAG: Es la etiqueta de la imagen del contenedor.
- CONTAINER_IMAGE_URL: Es la URL de la imagen de contenedor local, como
Envía la nueva imagen a Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
Artifact Registry en el clúster de administrador
Para subir imágenes de contenedores a Artifact Registry en el clúster de administrador, completa los siguientes pasos.
Asegúrate de tener la imagen de Docker modificada con los problemas de interrupción corregidos.
Transfiere la imagen nueva a un nodo que tenga acceso raíz con un archivo
kubeconfigraíz al clúster de administrador en tu entorno aislado.Exporta la ruta de acceso del archivo
kubeconfigdel clúster de administrador como una variable de entorno:export ADMIN_CLUSTER_KUBECONFIG=KUBECONFIG_FILE_PATHReemplaza KUBECONFIG_FILE_PATH por la ruta de acceso al archivo
kubeconfig.Ubica la dirección de Artifact Registry dentro del clúster y configúrala como la variable de entorno REGISTRY_IP:
REGISTRY=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}Asegúrate de que REGISTRY_IP contenga una URL válida, como
10.200.0.36:10443:echo ${REGISTRY_IP}Verifica si existe el certificado de la autoridad certificadora (AC):
ls -al /etc/docker/certs.d/${REGISTRY_IP}/ca.crtSi el certificado no existe, créalo y configúralo:
mkdir -p /etc/docker/certs.d/${REGISTRY_IP}/ chmod 755 /etc/docker/certs.d/${REGISTRY_IP}/ echo $(kubectl get secret harbor-cert-secret -n istio-system -o jsonpath='{.data.ca\.crt}' --kubeconfig $ADMIN_CLUSTER_KUBECONFIG) | openssl base64 -A -d > /etc/docker/certs.d/${REGISTRY_IP}/ca.crt chmod 755 /etc/docker/certs.d/${REGISTRY_IP}/ca.crtRecupera la credencial para acceder a Artifact Registry. Usa el siguiente comando para recuperar la cuenta y la contraseña del administrador:
ADMIN_PASS=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG \ -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Accede a Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSSe imprimirá un mensaje
Login Succeededpara verificar que se accedió correctamente a Artifact Registry.Etiqueta la imagen nueva:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGReemplaza lo siguiente:
- CONTAINER_IMAGE_URL: Es la URL de la imagen de contenedor local, como
gcr.io/repository/image:tag. - PROJECT_NAME: Es el nombre del proyecto de Artifact Registry.
- IMAGE_NAME: Es el nombre de la imagen del contenedor.
- TAG: Es la etiqueta de la imagen del contenedor.
- CONTAINER_IMAGE_URL: Es la URL de la imagen de contenedor local, como
Envía la nueva imagen a Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG