Desplegar cargas de trabajo de contenedor

En esta página se describe el proceso para subir una imagen de contenedor a Harbor y desplegarla en tu instancia de GDC Sandbox.

Preparación

  1. Sigue las instrucciones de Conectarse a la instancia para conectarte a tu instancia con acceso a la línea de comandos de Linux. Puedes conectarte a tu pasarela a través de Escritorio remoto o ejecutar sshuttle en tu máquina Linux.

  2. Define 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.
    
  3. Para crear una instancia de registro de Harbor, sigue los pasos que se indican en Crear una instancia de registro de Harbor. También puedes usar la instancia de Harbor de Sandbox precreada: la user-project predeterminada de Sandbox 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
    

Subir una imagen a Harbor

  1. Crea un proyecto de Harbor siguiendo las instrucciones de Crear un proyecto de Harbor.

    Ejemplo:

    gdcloud harbor harbor-projects create HARBOR_PROJECT  \
    --project=TENANT_PROJECT \
    --instance=HARBOR_INSTANCE_NAME 
    
  2. Inicia sesión en Docker. Empieza por iniciar sesión en Docker o Helm con secretos de la CLI.

  3. Descarga o compila tu imagen de contenedor y sigue las instrucciones de Google Distributed Cloud para entornos aislados para enviar una imagen a Harbor.

    Por ejemplo, a continuación se muestra un flujo de trabajo para extraer datos de GitLab e insertarlos en Harbor:

    1. Inicia sesión 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}
      
    2. 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}
      

Conceder roles

Concede a tu usuario la capacidad de crear secretos e implementaciones.

  1. Da permiso al usuario para crear secretos añadiendo el rol secret-admin.

      gdcloud projects add-iam-policy-binding PROJECT \
        --member="user:${AO_USER}" \
        --role=secret-admin
    
  2. Concede al usuario permiso para desplegar cargas de trabajo de contenedores añadiendo el rol namespace-admin.

      gdcloud projects add-iam-policy-binding PROJECT \
        --member="user:${AO_USER}" \
        --role=namespace-admin
    

Desplegar una aplicación de contenedor

Continúa en Crear un secreto de extracción de imágenes de Kubernetes para crear un secreto e implementar tu aplicación.