Os artefatos do sistema estão no Artifact Registry do cluster de administrador. Envie novos artefatos do sistema quando o sistema apresentar bugs ou interrupções que podem ser corrigidos com patches de novos artefatos.
Neste documento, descrevemos como enviar artefatos individuais de um cluster para outro.
Antes de começar
Para receber as permissões necessárias para acessar recursos em projetos do Artifact Registry do sistema como administrador, peça ao administrador de segurança para conceder a você os seguintes papéis, dependendo do cluster em que você quer enviar a imagem do contêiner:
- Cluster de administrador da organização:para enviar a imagem do contêiner ao Artifact Registry do sistema do cluster de administrador da organização, é necessário ter o papel de administrador do gerenciamento de artefatos do sistema da organização (
organization-system-artifact-management-admin). - Cluster de administrador raiz:para enviar a imagem do contêiner ao Artifact Registry do sistema do cluster de administrador raiz, você precisa da função de administrador de gerenciamento de artefatos do sistema (
system-artifact-management-admin).
Depois de receber as permissões necessárias, siga estas etapas antes de enviar uma imagem para o Artifact Registry do sistema do cluster de administrador raiz ou da organização:
Faça o download e instale a CLI do Distributed Cloud seguindo as instruções da interface de linha de comando (CLI) gdcloud.
Instale o componente
docker-credential-gdcloudseguindo as instruções em Instalar componentes.gdcloud components install docker-credential-gdcloudFaça login com o provedor de identidade configurado.
gdcloud auth loginExporte o arquivo kubeconfig.
gdcloud clusters get-credentials CLUSTER_NAMESubstitua CLUSTER_NAME pelo nome do cluster.
Configure o Docker.
gdcloud auth configure-docker
Fazer o download de uma imagem de contêiner de um bucket do S3
Para receber as permissões necessárias para fazer o download da imagem do contêiner do bucket do S3, peça ao administrador de segurança para conceder a você o papel de Leitor de objetos do bucket do projeto (project-bucket-object-viewer) no namespace do projeto.
O administrador de segurança concede acesso criando uma vinculação de função:
kubectl create rolebinding IO_USER-bor-rb \
--role=project-bucket-object-viewer \
--user=USER \
-n PROJECT_NAMESPACE
Substitua:
- USER: o nome da conta do usuário que precisa da vinculação de papel.
- PROJECT_NAMESPACE: o namespace do projeto com o bucket do S3.
Você recebe acesso somente leitura ao bucket no projeto e aos objetos nele.
Depois de receber as permissões necessárias, siga estas etapas para baixar a imagem do contêiner do bucket do S3 do namespace do projeto:
Consiga o nome do secret do bucket. O nome do secret é semelhante ao exemplo a seguir:
object-storage-key-std-user-IDO nome do secret inclui um valor
IDexclusivo para acessar o bucket.Copie o nome do secret do bucket.
Receba as credenciais de acesso ao bucket 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 você copiou na etapa anterior.Faça o download da imagem do contêiner do bucket do S3 para sua estação de trabalho.
s3cmd get s3://BUCKET_NAME /g/CONTAINER_IMAGE_NAMESubstitua:
- BUCKET_NAME: o nome do bucket do S3 que tem a imagem do contêiner.
- CONTAINER_IMAGE_NAME: o nome do arquivo de imagem do contêiner que você quer baixar do bucket do S3.
Envie a imagem para o Artifact Registry do sistema
Siga estas etapas para enviar o arquivo da imagem do contêiner que você tem na estação de trabalho para o Artifact Registry do sistema no cluster de administrador:
Abra o console.
Receba o caminho para o endpoint do Artifact Registry do sistema do cluster em que você quer enviar a imagem do contêiner.
export REGISTRY_ENDPOINT=harbor.$(kubectl get configmap dnssuffix -n gpc-system -o jsonpath='{.data.dnsSuffix}')Carregue, marque e envie a imagem do contêiner para o endpoint 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 arquivo de imagem do contêiner no seu sistema de arquivos local. Um valor válido para esse caminho é, por exemplo,
oracle_db.tar.