Implantar cargas de trabalho de contêiner

Nesta página, descrevemos o processo de upload de uma imagem de contêiner para o Harbor e a implantação dessa imagem na sua instância da Sandbox do GDC.

Preparação

  1. Siga as instruções em Conectar-se à instância para se conectar à instância com acesso à linha de comando do Linux. Você pode se conectar ao gateway por área de trabalho remota ou executar sshuttle na sua máquina Linux.

  2. Defina as variáveis de ambiente que serão usadas nas instruções a seguir:

    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 criar uma instância do registro do Harbor, siga Criar uma instância do registro do Harbor. Também é possível usar a instância do Harbor do sandbox pré-criada: o user-project padrão no sandbox do GDC vem com uma instância do Harbor já implantada, user-haas-instance, que pode ser usada para desenvolvimento.

    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
    

Fazer upload da imagem para o Harbor

  1. Crie um projeto do Harbor seguindo Criar um projeto do Harbor.

    Exemplo:

    gdcloud harbor harbor-projects create HARBOR_PROJECT  \
    --project=TENANT_PROJECT \
    --instance=HARBOR_INSTANCE_NAME 
    
  2. Faça login no Docker. Comece em Fazer login no Docker ou no Helm com secrets da CLI.

  3. Faça o download ou crie a imagem do contêiner e siga as instruções de isolamento físico do Google Distributed Cloud para enviar uma imagem ao Harbor.

    Por exemplo, este é um fluxo de trabalho para extrair do GitLab e enviar para o Harbor:

    1. Faça login e extraia do registro de contêineres do 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. Envie a imagem do GitLab para o Harbor:

      export TAG=demo-image
      docker tag ${TAG} ${GITLAB_IMAGE_PATH}
      docker push ${INSTANCE_URL}/${HARBOR_PROJECT}/${TAG}
      

Conceder papéis

Permita que o usuário crie secrets e implantações.

  1. Conceda ao usuário permissão para criar secrets adicionando o papel secret-admin.

      gdcloud projects add-iam-policy-binding PROJECT \
        --member="user:${AO_USER}" \
        --role=secret-admin
    
  2. Conceda ao usuário permissão para implantar cargas de trabalho de contêineres adicionando a função namespace-admin.

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

Implantar app contêiner

Continue em Criar um secret de extração de imagem do Kubernetes para criar um secret e implantar o app.