Los artefactos del sistema existen en Artifact Registry del clúster de administrador. Envía artefactos nuevos del sistema cuando este muestre errores o interrupciones que puedas corregir con parches de artefactos nuevos.
En este documento, se describe cómo enviar artefactos individuales de un clúster a otro.
Antes de comenzar
Para obtener los permisos que necesitas para acceder a los recursos en los proyectos del sistema de Artifact Registry como administrador, pídele a tu administrador de seguridad que te otorgue los siguientes roles según el clúster al que deseas enviar la imagen del contenedor:
- Clúster de administrador de la organización: Para enviar la imagen del contenedor al Artifact Registry del sistema del clúster de administrador de la organización, necesitas el rol de administrador de Artifact Registry del sistema de la organización (
organization-system-artifact-management-admin). - Clúster de administrador raíz: Para enviar la imagen del contenedor al Artifact Registry del sistema del clúster de administrador raíz, necesitas el rol de administrador de Artifact Registry del sistema (
system-artifact-management-admin).
Después de obtener los permisos necesarios, sigue estos pasos antes de enviar una imagen al Artifact Registry del sistema del clúster de administrador raíz o del clúster de administrador de la organización:
Descarga e instala la CLI de Distributed Cloud siguiendo las instrucciones de la interfaz de línea de comandos (CLI) de gdcloud.
Instala el componente
docker-credential-gdcloudsiguiendo las instrucciones de Instala componentes.gdcloud components install docker-credential-gdcloudAccede con el proveedor de identidad configurado.
gdcloud auth loginExporta el archivo kubeconfig.
gdcloud clusters get-credentials CLUSTER_NAMEReemplaza CLUSTER_NAME por el nombre del clúster.
Configura Docker.
gdcloud auth configure-docker
Descarga una imagen de contenedor desde un bucket de S3
Para obtener los permisos que necesitas para descargar la imagen del contenedor del bucket de S3, pídele a tu administrador de seguridad que te otorgue el rol de Visualizador de objetos del bucket del proyecto (project-bucket-object-viewer) en el espacio de nombres del proyecto.
El administrador de seguridad te otorga acceso creando una vinculación de rol:
kubectl create rolebinding IO_USER-bor-rb \
--role=project-bucket-object-viewer \
--user=USER \
-n PROJECT_NAMESPACE
Reemplaza lo siguiente:
- USER: Es el nombre de la cuenta del usuario que requiere la vinculación de rol.
- PROJECT_NAMESPACE: Es el espacio de nombres del proyecto con el bucket de S3.
Obtienes acceso de solo lectura al bucket dentro del proyecto y a los objetos de ese bucket.
Después de obtener los permisos necesarios, sigue estos pasos para descargar la imagen del contenedor del bucket de S3 del espacio de nombres del proyecto:
Obtén el nombre secreto del bucket. El nombre del secreto se ve como el siguiente ejemplo:
object-storage-key-std-user-IDEl nombre del secreto incluye un valor
IDúnico para acceder al bucket.Copia el nombre secreto del bucket.
Obtén credenciales de acceso al bucket y configura la herramienta de 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 --configureReemplaza
SECRET_NAMEpor el valor que copiaste en el paso anterior.Descarga la imagen del contenedor del bucket de S3 a tu estación de trabajo.
s3cmd get s3://BUCKET_NAME /g/CONTAINER_IMAGE_NAMEReemplaza lo siguiente:
- BUCKET_NAME: Es el nombre del bucket de S3 que contiene la imagen del contenedor.
- CONTAINER_IMAGE_NAME: Es el nombre del archivo de imagen de contenedor que deseas descargar del bucket de S3.
Envía la imagen al registro de Artifact Registry del sistema
Sigue estos pasos para enviar el archivo de la imagen del contenedor que tienes en tu estación de trabajo al Artifact Registry del sistema en el clúster de administrador:
Abre la consola.
Obtén la ruta de acceso al extremo de Artifact Registry del sistema del clúster en el que deseas enviar la imagen de contenedor.
export REGISTRY_ENDPOINT=harbor.$(kubectl get configmap dnssuffix -n gpc-system -o jsonpath='{.data.dnsSuffix}')Carga, etiqueta y envía la imagen del contenedor al extremo de Artifact Registry del sistema del clúster.
docker load --input CONTAINER_IMAGE_PATH docker tag CONTAINER_IMAGE_PATH ${REGISTRY_ENDPOINT}/CONTAINER_IMAGE_PATH docker push ${REGISTRY_ENDPOINT}/CONTAINER_IMAGE_PATHReemplaza CONTAINER_IMAGE_PATH por la ruta de acceso al archivo de imagen del contenedor en tu sistema de archivos local. Un valor válido para esta ruta es, por ejemplo,
oracle_db.tar.