Déployer des charges de travail de conteneur

Cette page décrit le processus d'importation d'une image de conteneur dans Harbor et de déploiement de cette image dans votre instance de bac à sable GDC.

Préparation

  1. Suivez les instructions de la section Se connecter à votre instance pour vous connecter à votre instance avec un accès à la ligne de commande Linux. Vous pouvez vous connecter à votre passerelle via le Bureau à distance ou exécuter sshuttle sur votre machine Linux.

  2. Définissez les variables d'environnement qui seront utilisées dans les instructions suivantes :

    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. Pour créer une instance de registre Harbor, suivez Créer une instance de registre Harbor. Vous pouvez également utiliser l'instance Harbor de bac à sable précréée : l'instance Harbor user-haas-instance, qui peut être utilisée pour le développement, est déjà déployée avec le user-project par défaut dans le bac à sable GDC.

    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
    

Importer une image dans Harbor

  1. Créez un projet Harbor en suivant Créer un projet Harbor.

    Exemple :

    gdcloud harbor harbor-projects create HARBOR_PROJECT  \
    --project=TENANT_PROJECT \
    --instance=HARBOR_INSTANCE_NAME 
    
  2. Connectez-vous à Docker. Commencez par Se connecter à Docker ou Helm avec des secrets CLI.

  3. Téléchargez ou créez votre image de conteneur, puis suivez les instructions Google Distributed Cloud air-gapped pour transférer une image vers Harbor.

    Par exemple, voici un workflow permettant d'extraire des données de GitLab et de les envoyer à Harbor :

    1. Connectez-vous et extrayez les données de votre registre de conteneurs 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. Transférez l'image Gitlab vers Harbor :

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

Attribuer des rôles

Accordez à votre utilisateur la possibilité de créer des secrets et des déploiements.

  1. Accordez à l'utilisateur l'autorisation de créer des secrets en lui attribuant le rôle secret-admin.

      gdcloud projects add-iam-policy-binding PROJECT \
        --member="user:${AO_USER}" \
        --role=secret-admin
    
  2. Accordez à l'utilisateur l'autorisation de déployer des charges de travail de conteneur en ajoutant le rôle namespace-admin.

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

Déployer une application de conteneur

Passez à la section Créer un secret d'extraction d'image Kubernetes pour créer un secret et déployer votre application.