Os artefatos do sistema oferecem suporte ao sistema de dispositivo com isolamento físico do Google Distributed Cloud (GDC) e gerenciam a implantação do GDC. O Artifact Registry particular do GDC armazena os artefatos do sistema. Há vários formatos para artefatos do sistema, incluindo, entre outros:
- Imagens de contêiner para Anthos, KubeVirt e serviços gerenciados do GDC
- Imagens do sistema operacional (SO)
- Formatos de firmware
- Modelos de máquina virtual (VM) de ouro
- Gráficos do Helm
O Artifact Registry participa de várias operações do sistema GDC, como instalação, upgrades e ciclo de vida de recursos, de maneira segura, escalonável e à prova de violação.
Antes de começar
Para modificar artefatos do sistema, é necessário ter acesso de diagnóstico. O acesso de diagnóstico é um modo de acesso privilegiado necessário para oferecer suporte seguro a um cliente quando ele encontra um problema. Você precisa criar um tíquete para receber esse acesso.
Fazer upload de imagens do Docker
Para modificar artefatos do sistema, faça upload de novas imagens do Docker. O método de upload depende de qual dos dois registros a seguir você envia as imagens de contêiner:
- Faça upload das imagens de contêiner para o Artifact Registry na máquina de bootstrap.
- Faça upload das imagens de contêiner para o Artifact Registry no cluster de administrador.
As seções a seguir mostram as instruções de upload para os dois tipos de registro.
Artifact Registry na máquina de inicialização
Para fazer upload de imagens de contêiner para o Artifact Registry na máquina de bootstrap, siga estas etapas:
Verifique se você tem a imagem do Docker modificada com os problemas graves corrigidos.
Transfira a nova imagem para o nó de bootstrap no seu ambiente isolado.
Faça login no nó de bootstrap.
Localize o endereço do Artifact Registry na máquina de bootstrap durante a inicialização e defina como a variável de ambiente REGISTRY_IP:
REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}Recupere a credencial para acessar o Artifact Registry. Use o comando a seguir para recuperar a conta e a senha de administrador:
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Faça login no Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSUma mensagem
Login Succeededé impressa para verificar se o login no Artifact Registry foi bem-sucedido.Marque a nova imagem:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGSubstitua:
- CONTAINER_IMAGE_URL: o URL da imagem de contêiner local, como
gcr.io/repository/image:tag. - PROJECT_NAME: o nome do projeto do Artifact Registry.
- IMAGE_NAME: o nome da imagem do contêiner.
- TAG: a tag da imagem do contêiner.
- CONTAINER_IMAGE_URL: o URL da imagem de contêiner 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 fazer upload de imagens de contêiner para o Artifact Registry no cluster de administrador, conclua as etapas a seguir.
Verifique se você tem a imagem do Docker modificada com os problemas graves corrigidos.
Transfira a nova imagem para um nó com acesso root e um arquivo
kubeconfigroot para o cluster de administrador no seu ambiente isolado.Exporte o caminho do arquivo
kubeconfigdo cluster de administrador como uma variável de ambiente:export ADMIN_CLUSTER_KUBECONFIG=KUBECONFIG_FILE_PATHSubstitua KUBECONFIG_FILE_PATH pelo caminho para o arquivo
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://}Verifique se o REGISTRY_IP contém um URL válido, como
10.200.0.36:10443:echo ${REGISTRY_IP}Verifique se o certificado da autoridade certificadora (CA) existe:
ls -al /etc/docker/certs.d/${REGISTRY_IP}/ca.crtSe o certificado não existir, crie 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.crtRecupere a credencial para acessar o Artifact Registry. Use o comando a seguir para recuperar a conta e a senha de administrador:
ADMIN_PASS=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG \ -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Faça login no Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSUma mensagem
Login Succeededé impressa para verificar se o login no Artifact Registry foi bem-sucedido.Marque a nova imagem:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGSubstitua:
- CONTAINER_IMAGE_URL: o URL da imagem de contêiner local, como
gcr.io/repository/image:tag. - PROJECT_NAME: o nome do projeto do Artifact Registry.
- IMAGE_NAME: o nome da imagem do contêiner.
- TAG: a tag da imagem do contêiner.
- CONTAINER_IMAGE_URL: o URL da imagem de contêiner local, como
Envie a nova imagem para o Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG