Os artefactos do sistema existem no Artifact Registry do cluster de administrador. Envie novos artefactos do sistema quando o sistema apresentar erros ou indisponibilidades que pode corrigir aplicando patches a novos artefactos.
Este documento descreve como enviar artefactos individuais de um cluster para outro.
Antes de começar
Para receber as autorizações de que precisa para aceder a recursos em projetos do Artifact Registry do sistema como administrador, peça ao administrador de segurança que lhe conceda as seguintes funções, consoante o cluster para o qual quer enviar a imagem do contentor:
- Cluster de administrador da organização: para enviar a imagem do contentor para o Artifact Registry do sistema do cluster de administrador da organização, precisa da função de administrador de gestão de artefactos do sistema da organização (
organization-system-artifact-management-admin). - Cluster de administrador principal: para enviar a imagem do contentor para o Artifact Registry do sistema do cluster de administrador principal, precisa da função de administrador de gestão de artefactos do sistema (
system-artifact-management-admin).
Depois de obter as autorizações necessárias, siga os passos abaixo antes de enviar uma imagem para o Artifact Registry do sistema do cluster de administrador raiz ou do cluster de administrador da organização:
Transfira e instale a CLI Distributed Cloud seguindo as instruções da interface de linhas de comando (CLI) gdcloud.
Instale o componente
docker-credential-gdcloudseguindo as instruções de Instalar componentes.gdcloud components install docker-credential-gdcloudInicie sessão com o Fornecedor de identidade configurado.
gdcloud auth loginExporte o ficheiro kubeconfig.
gdcloud clusters get-credentials CLUSTER_NAMESubstitua CLUSTER_NAME pelo nome do cluster.
Configure o Docker.
gdcloud auth configure-docker
Transfira uma imagem de contentor de um contentor do S3
Para receber as autorizações necessárias para transferir a imagem do contentor do contentor do S3, peça ao administrador de segurança que lhe conceda a função de visualizador de objetos do contentor do projeto (project-bucket-object-viewer) no espaço de nomes do projeto.
O administrador de segurança concede-lhe acesso criando uma associação de funções:
kubectl create rolebinding IO_USER-bor-rb \
--role=project-bucket-object-viewer \
--user=USER \
-n PROJECT_NAMESPACE
Substitua o seguinte:
- USER: o nome da conta do utilizador que requer a associação de funções.
- PROJECT_NAMESPACE: o espaço de nomes do projeto com o contentor do S3.
Tem acesso só de leitura ao contentor no projeto e aos objetos nesse contentor.
Depois de obter as autorizações necessárias, siga os passos abaixo para transferir a imagem do contentor do contentor do S3 do espaço de nomes do projeto:
Obtenha o nome do Secret do contentor. O nome do Secret tem o seguinte aspeto:
object-storage-key-std-user-IDO nome do segredo inclui um valor
IDexclusivo para aceder ao contentor.Copie o nome secreto do contentor.
Obtenha as credenciais de acesso ao contentor e configure a ferramenta CLI s3cmd.
SECRET_NAME=SECRET_NAME ACCESS_KEY=$(kubectl get secret ${SECRET_NAME} -n object-storage-access-keys -o=jsonpath='{.data.access-key-id}' | base64 -d) SECRET_KEY=$(kubectl get secret ${SECRET_NAME} -n object-storage-access-keys -o=jsonpath='{.data.secret-access-key}' | base64 -d) S3_ENDPOINT=objectstorage.$(kubectl get configmap dnssuffix -n gpc-system -o jsonpath='{.data.dnsSuffix}') echo "Access Key: ${ACCESS_KEY}" \ && echo "Secret Key: ${SECRET_KEY}" \ && echo "S3 Endpoint: ${S3_ENDPOINT}" s3cmd --configureSubstitua
SECRET_NAMEpelo valor que copiou no passo anterior.Transfira a imagem do contentor do bucket do S3 para a sua estação de trabalho.
s3cmd get s3://BUCKET_NAME /g/CONTAINER_IMAGE_NAMESubstitua o seguinte:
- BUCKET_NAME: o nome do contentor do S3 que tem a imagem do contentor.
- CONTAINER_IMAGE_NAME: o nome do ficheiro de imagem do contentor que quer transferir do depósito do S3.
Envie a imagem para o Artifact Registry do sistema
Siga estes passos para enviar o ficheiro da imagem do contentor que tem na sua estação de trabalho para o sistema Artifact Registry no cluster de administrador:
Abra a consola.
Obtenha o caminho para o ponto final do Artifact Registry do sistema do cluster para o qual quer enviar a imagem do contentor.
export REGISTRY_ENDPOINT=harbor.$(kubectl get configmap dnssuffix -n gpc-system -o jsonpath='{.data.dnsSuffix}')Carregue, etiquete e envie a imagem do contentor para o ponto final do Artifact Registry do sistema do cluster.
docker load --input CONTAINER_IMAGE_PATH docker tag CONTAINER_IMAGE_PATH ${REGISTRY_ENDPOINT}/CONTAINER_IMAGE_PATH docker push ${REGISTRY_ENDPOINT}/CONTAINER_IMAGE_PATHSubstitua CONTAINER_IMAGE_PATH pelo caminho do ficheiro de imagem do contentor no seu sistema de ficheiros local. Um valor válido para este caminho é, por exemplo,
oracle_db.tar.