Los artefactos del sistema admiten el sistema del dispositivo aislado de Google Distributed Cloud (GDC) y gestionan la implementación de GDC. El Artifact Registry privado de GDC almacena los artefactos del sistema. Hay varios formatos para los artefactos del sistema, entre los que se incluyen los siguientes:
- Imágenes de contenedor para servicios gestionados de Anthos, KubeVirt y GDC
- Imágenes del sistema operativo (SO)
- Formatos de firmware
- Plantillas de máquina virtual (VM) de referencia
- Gráficos de Helm
Artifact Registry participa en varias operaciones del sistema GDC, como la instalación, las actualizaciones y el ciclo de vida de los recursos, de forma segura, escalable y a prueba de manipulaciones.
Antes de empezar
Para modificar los artefactos del sistema, debes obtener acceso de diagnóstico. El acceso de diagnóstico es un modo de acceso privilegiado necesario para ayudar de forma segura a un cliente cuando tiene un problema. Para obtener este acceso, debes crear una incidencia.
Subir imágenes de Docker
Para modificar los artefactos del sistema, debes subir nuevas imágenes de Docker. El método de subida depende de cuál de los dos registros siguientes uses para enviar tus imágenes de contenedor:
- Sube imágenes de contenedor al Artifact Registry de la máquina de arranque.
- Sube imágenes de contenedor al Artifact Registry del clúster de administración.
En las siguientes secciones se muestran las instrucciones de subida de los dos tipos de registro.
Artifact Registry en la máquina de arranque
Para subir imágenes de contenedor a Artifact Registry en la máquina de arranque, sigue estos pasos:
Asegúrate de que tienes la imagen de Docker modificada con los problemas corregidos.
Transfiere la nueva imagen al nodo de arranque de tu entorno aislado.
Inicia sesión en el nodo de arranque.
Busca la dirección de Artifact Registry en la máquina de arranque durante el arranque y configúrala como 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 obtener la cuenta y la contraseña de administrador:
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Inicia sesión en Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSSe imprimirá un mensaje
Login Succeededpara verificar que se ha iniciado sesión correctamente en Artifact Registry.Etiqueta la nueva imagen:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGHaz los cambios siguientes:
- CONTAINER_IMAGE_URL: la URL de la imagen del contenedor local, como
gcr.io/repository/image:tag. - PROJECT_NAME: nombre del proyecto de Artifact Registry.
- IMAGE_NAME: el nombre de la imagen del contenedor.
- TAG: la etiqueta de imagen del contenedor.
- CONTAINER_IMAGE_URL: la URL de la imagen del 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 administración
Para subir imágenes de contenedor a Artifact Registry en el clúster de administrador, sigue estos pasos.
Asegúrate de que tienes la imagen de Docker modificada con los problemas corregidos.
Transfiere la nueva imagen a un nodo que tenga acceso de superusuario con un archivo root
kubeconfigal clúster de administrador de tu entorno aislado.Exporta la ruta del archivo
kubeconfigdel clúster de administrador como una variable de entorno:export ADMIN_CLUSTER_KUBECONFIG=KUBECONFIG_FILE_PATHSustituye KUBECONFIG_FILE_PATH por la ruta al archivo
kubeconfig.Busca la dirección de Artifact Registry en el clúster y defínela 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://}Comprueba que REGISTRY_IP contenga una URL válida, como
10.200.0.36:10443:echo ${REGISTRY_IP}Comprueba si existe el certificado de la autoridad de certificación (CA):
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 obtener la cuenta y la contraseña de administrador:
ADMIN_PASS=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG \ -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Inicia sesión en Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSSe imprimirá un mensaje
Login Succeededpara verificar que se ha iniciado sesión correctamente en Artifact Registry.Etiqueta la nueva imagen:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGHaz los cambios siguientes:
- CONTAINER_IMAGE_URL: la URL de la imagen del contenedor local, como
gcr.io/repository/image:tag. - PROJECT_NAME: nombre del proyecto de Artifact Registry.
- IMAGE_NAME: el nombre de la imagen del contenedor.
- TAG: la etiqueta de imagen del contenedor.
- CONTAINER_IMAGE_URL: la URL de la imagen del contenedor local, como
Envía la nueva imagen a Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG