Esegui il deployment dei carichi di lavoro con container

Questa pagina descrive la procedura di caricamento di un'immagine container in Harbor e il deployment di questa immagine nell'istanza sandbox GDC.

preparazione

  1. Segui le istruzioni riportate in Connettersi all'istanza per connetterti all'istanza con l'accesso alla riga di comando Linux. Puoi connetterti al gateway tramite Remote Desktop o eseguire sshuttle sul tuo computer Linux.

  2. Imposta le variabili di ambiente che verranno utilizzate nelle istruzioni seguenti:

    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. Per creare un'istanza del registro Harbor, segui la procedura descritta in Crea un'istanza del registro Harbor oppure puoi utilizzare l'istanza Harbor Sandbox precreata: la user-project predefinita in GDC Sandbox include un'istanza Harbor già implementata, user-haas-instance, che può essere utilizzata per lo sviluppo.

    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
    

Carica l'immagine in Harbor

  1. Crea un progetto Harbor seguendo le istruzioni riportate in Creare un progetto Harbor.

    Esempio:

    gdcloud harbor harbor-projects create HARBOR_PROJECT  \
    --project=TENANT_PROJECT \
    --instance=HARBOR_INSTANCE_NAME 
    
  2. Accedi a Docker. Inizia da Accedi a Docker o Helm con i secret della CLI.

  3. Scarica o crea l'immagine container e segui le istruzioni air-gap di Google Distributed Cloud per eseguire il push di un'immagine su Harbor.

    Ad esempio, ecco un flusso di lavoro per il pull da GitLab e il push su Harbor:

    1. Accedi ed esegui il pull dal tuo registro dei container 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. Esegui il push dell'immagine Gitlab in Harbor:

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

Concedi ruoli

Concedi all'utente la possibilità di creare secret e deployment.

  1. Concedi all'utente l'autorizzazione per creare secret aggiungendo il ruolo secret-admin.

      gdcloud projects add-iam-policy-binding PROJECT \
        --member="user:${AO_USER}" \
        --role=secret-admin
    
  2. Concedi all'utente l'autorizzazione per eseguire il deployment dei carichi di lavoro dei container aggiungendo il ruolo namespace-admin.

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

Esegui il deployment dell'app container

Continua in Crea il secret di pull dell'immagine Kubernetes per creare un secret ed eseguire il deployment dell'app.