Os artefactos do sistema suportam o sistema de dispositivo isolado do Google Distributed Cloud (GDC) e gerem a implementação do GDC. O Artifact Registry privado do GDC armazena os artefactos do sistema. Existem vários formatos para artefactos do sistema, incluindo, entre outros:
- Imagens de contentores para serviços geridos do Anthos, KubeVirt e GDC
- Imagens do sistema operativo (SO)
- Formatos de firmware
- Modelos de máquinas virtuais (VMs) dourados
- Gráficos Helm
O Artifact Registry participa em várias operações do sistema GDC, como a instalação, as atualizações e o ciclo de vida dos recursos, de forma segura, escalável e inviolável.
Antes de começar
Para modificar artefactos do sistema, tem de obter acesso de diagnóstico. O acesso de diagnóstico é um modo de acesso privilegiado necessário para apoiar um cliente em segurança quando este encontra um problema. Tem de criar um pedido para que este acesso seja concedido.
Carregue imagens de Docker
Para modificar artefactos do sistema, tem de carregar novas imagens do Docker. O método de carregamento depende de qual dos seguintes registos envia as suas imagens de contentores:
- Carregue imagens de contentores para o Artifact Registry na máquina de arranque.
- Carregue imagens de contentores para o Artifact Registry no cluster de administrador.
As secções seguintes mostram as instruções de carregamento para os dois tipos de registo.
Artifact Registry na máquina de arranque
Para carregar imagens de contentores para o Artifact Registry na máquina de arranque, conclua os seguintes passos:
Certifique-se de que tem a imagem Docker modificada com os problemas de interrupção corrigidos.
Transfira a nova imagem para o nó de arranque no seu ambiente isolado da Internet.
Inicie sessão no nó de arranque.
Localize o endereço do Artifact Registry na máquina de arranque no momento do arranque e defina-o como a variável de ambiente REGISTRY_IP:
REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}Obtenha a credencial para aceder ao Artifact Registry. Use o seguinte comando para obter a conta de administrador e a palavra-passe:
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Inicie sessão no Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSÉ impressa uma mensagem
Login Succeededpara validar um início de sessão bem-sucedido no Artifact Registry.Etiquete a nova imagem:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGSubstitua o seguinte:
- CONTAINER_IMAGE_URL: o URL da imagem do contentor local, como
gcr.io/repository/image:tag. - PROJECT_NAME: o nome do projeto do Artifact Registry.
- IMAGE_NAME: o nome da imagem do contentor.
- TAG: a etiqueta de imagem do contentor.
- CONTAINER_IMAGE_URL: o URL da imagem do contentor local, como
Envie a nova imagem para o Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
Artifact Registry no cluster de administrador
Para carregar imagens de contentores para o Artifact Registry no cluster de administrador, conclua os seguintes passos.
Certifique-se de que tem a imagem Docker modificada com os problemas de interrupção corrigidos.
Transfira a nova imagem para um nó que tenha acesso de superutilizador com um ficheiro root
kubeconfigpara o cluster de administrador no seu ambiente isolado.Exporte o caminho do ficheiro
kubeconfigdo cluster de administrador como uma variável de ambiente:export ADMIN_CLUSTER_KUBECONFIG=KUBECONFIG_FILE_PATHSubstitua KUBECONFIG_FILE_PATH pelo caminho para o ficheiro
kubeconfig.Localize o endereço do Artifact Registry no cluster e defina-o como a variável de ambiente REGISTRY_IP:
REGISTRY=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}Certifique-se de que o elemento REGISTRY_IP contém um URL válido, como
10.200.0.36:10443:echo ${REGISTRY_IP}Verifique se o certificado da autoridade de certificação (AC) existe:
ls -al /etc/docker/certs.d/${REGISTRY_IP}/ca.crtSe o certificado não existir, crie-o e configure-o:
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.crtObtenha a credencial para aceder ao Artifact Registry. Use o seguinte comando para obter a conta de administrador e a palavra-passe:
ADMIN_PASS=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG \ -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Inicie sessão no Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSÉ impressa uma mensagem
Login Succeededpara validar um início de sessão bem-sucedido no Artifact Registry.Etiquete a nova imagem:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGSubstitua o seguinte:
- CONTAINER_IMAGE_URL: o URL da imagem do contentor local, como
gcr.io/repository/image:tag. - PROJECT_NAME: o nome do projeto do Artifact Registry.
- IMAGE_NAME: o nome da imagem do contentor.
- TAG: a etiqueta de imagem do contentor.
- CONTAINER_IMAGE_URL: o URL da imagem do contentor local, como
Envie a nova imagem para o Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG