En esta página, se describe el proceso para subir una imagen de contenedor a Harbor y, luego, implementarla en tu instancia de GDC Sandbox.
Preparación
Sigue las instrucciones en Conéctate a tu instancia para conectarte a tu instancia con acceso a la línea de comandos de Linux. Puedes conectarte a tu puerta de enlace a través de Escritorio remoto o ejecutar
sshuttle
en tu máquina Linux.Configura las variables de entorno que se usarán en las siguientes instrucciones:
export TENANT_PROJECT=TENANT_PROJECT # Intended deployment project for the container workflow. export HARBOR_INSTANCE_NAME=HARBOR_INSTANCE_NAME # Harbor Container Registry instance name. export HARBOR_PROJECT=HARBOR_PROJECT # Container registry project name for your images. export AO_USER=AO_USER # Your user name in the instance, e.g.: fop-my-user@example.com. export INSTANCE_URL=${HARBOR_INSTANCE_NAME}-${TENANT_PROJECT}.org-1.zone1.google.gdch.test. export DOCKER_CONFIG_PATH=DOCKER_CONFIG_PATH # Path to docker config file e.g.: /root/.docker/config.json.
Para crear una instancia del registro de Harbor, sigue los pasos que se indican en Crea una instancia del registro de Harbor, o bien puedes usar la instancia de Harbor de la zona de pruebas ya creada: la instancia predeterminada
user-project
en la zona de pruebas de GDC incluye una instancia de Harbor ya implementada,user-haas-instance
, que se puede usar para el desarrollo.export HARBOR_INSTANCE_NAME=user-haas-instance export TENANT_PROJECT=user-project export INSTANCE_URL=${HARBOR_INSTANCE_NAME}-${TENANT_PROJECT}.org-1.zone1.google.gdch.test
Sube la imagen a Harbor
Sigue los pasos en Cómo crear un proyecto de Harbor para crear uno.
Ejemplo:
gdcloud harbor harbor-projects create HARBOR_PROJECT \ --project=TENANT_PROJECT \ --instance=HARBOR_INSTANCE_NAME
Accede a Docker. Comienza en Accede a Docker o Helm con secretos de la CLI.
Descarga o compila tu imagen de contenedor y sigue las instrucciones de Google Distributed Cloud con aislamiento de aire para enviar una imagen a Harbor.
Por ejemplo, este es un flujo de trabajo para extraer de GitLab y enviar a Harbor:
Accede y extrae datos de tu registro de contenedores de GitLab.
export GITLAB_ID=GITLAB_ID export GITLAB_PROJECT_NAME=GITLAB_PROJECT_NAME export GITLAB_IMAGE_PATH=registry.gitlab.com/GITLAB_ID/GITLAB_PROJECT_NAME docker login registry.gitlab.com docker pull ${GITLAB_IMAGE_PATH}
Envía la imagen de GitLab a Harbor:
export TAG=demo-image docker tag ${TAG} ${GITLAB_IMAGE_PATH} docker push ${INSTANCE_URL}/${HARBOR_PROJECT}/${TAG}
Otorgar roles
Otorga a tu usuario la capacidad de crear secretos e implementaciones.
Otorga al usuario permiso para crear secretos agregando el rol
secret-admin
.gdcloud projects add-iam-policy-binding PROJECT \ --member="user:${AO_USER}" \ --role=secret-admin
Otorga al usuario permiso para implementar cargas de trabajo de contenedores agregando el rol
namespace-admin
.gdcloud projects add-iam-policy-binding PROJECT \ --member="user:${AO_USER}" \ --role=namespace-admin
Implementa una app de contenedor
Continúa en Crea un secreto de extracción de imágenes de Kubernetes para crear un secreto y, luego, implementar tu app.