Los artefactos del sistema se encuentran en el registro de artefactos del clúster de administrador. Envía nuevos artefactos del sistema cuando el sistema muestre errores o interrupciones que puedas solucionar parcheando nuevos artefactos.
En este documento se describe cómo enviar artefactos individuales de un clúster a otro.
Antes de empezar
Para obtener los permisos que necesitas para acceder a los recursos de los proyectos de Artifact Registry del sistema como administrador, pide a tu administrador de seguridad que te conceda los siguientes roles en función del clúster al que quieras enviar la imagen de contenedor:
- Clúster de administrador de la organización: para enviar la imagen de contenedor al registro de artefactos del sistema del clúster de administrador de la organización, necesitas el rol Administrador de gestión de artefactos del sistema de la organización (
organization-system-artifact-management-admin). - Clúster de administrador raíz: para enviar la imagen de contenedor al registro de artefactos del sistema del clúster de administrador raíz, necesitas el rol de administrador de gestión de artefactos del sistema (
system-artifact-management-admin).
Después de obtener los permisos necesarios, sigue estos pasos antes de enviar una imagen al registro de artefactos 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 Instalar componentes.gdcloud components install docker-credential-gdcloudInicia sesión con el proveedor de identidades configurado.
gdcloud auth loginExporta el archivo kubeconfig.
gdcloud clusters get-credentials CLUSTER_NAMESustituye CLUSTER_NAME por el nombre del clúster.
Configura Docker.
gdcloud auth configure-docker
Descargar una imagen de contenedor de un segmento de S3
Para obtener los permisos que necesitas para descargar la imagen del contenedor del segmento de S3, pide a tu administrador de seguridad que te conceda el rol de lector de objetos del segmento del proyecto (project-bucket-object-viewer) en el espacio de nombres del proyecto.
El administrador de seguridad te concede acceso creando un enlace de rol:
kubectl create rolebinding IO_USER-bor-rb \
--role=project-bucket-object-viewer \
--user=USER \
-n PROJECT_NAMESPACE
Haz los cambios siguientes:
- USER: el nombre de la cuenta del usuario que requiere la vinculación de roles.
- PROJECT_NAMESPACE: el espacio de nombres del proyecto con el segmento de S3.
Obtendrás acceso de solo lectura al segmento del proyecto y a los objetos de ese segmento.
Una vez que hayas obtenido los permisos necesarios, sigue estos pasos para descargar la imagen de contenedor del segmento de S3 del espacio de nombres del proyecto:
Obtén el nombre secreto del segmento. El nombre del secreto es similar al siguiente ejemplo:
object-storage-key-std-user-IDEl nombre del secreto incluye un valor
IDúnico para acceder al contenedor.Copia el nombre secreto del segmento.
Obtén las credenciales de acceso al segmento y configura la herramienta de línea de comandos 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 --configureSustituye
SECRET_NAMEpor el valor que has copiado en el paso anterior.Descarga la imagen de contenedor del bucket de S3 en tu estación de trabajo.
s3cmd get s3://BUCKET_NAME /g/CONTAINER_IMAGE_NAMEHaz los cambios siguientes:
- BUCKET_NAME: el nombre del segmento de S3 que contiene la imagen del contenedor.
- CONTAINER_IMAGE_NAME: el nombre del archivo de imagen del contenedor que quieres descargar del bucket de S3.
Envía la imagen al Artifact Registry del sistema.
Sigue estos pasos para enviar el archivo de la imagen de contenedor que tienes en tu estación de trabajo a Artifact Registry del sistema en el clúster de administrador:
Abre la consola.
Obtén la ruta al endpoint de Artifact Registry del sistema del clúster en el que quieras 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 de contenedor al endpoint 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_PATHSustituye CONTAINER_IMAGE_PATH por la ruta del archivo de imagen del contenedor en tu sistema de archivos local. Un valor válido para esta ruta es, por ejemplo,
oracle_db.tar.