Déployer une charge de travail Linux vers un cluster cible

Après avoir migré une charge de travail depuis votre plate-forme source, vous pouvez utiliser des artefacts de déploiement générés par ce processus pour déployer le conteneur de la charge de travail migrée vers un autre cluster.

Skaffold peut gérer le workflow de création, de transfert et de déploiement de votre application. Pour en savoir plus, consultez la page Créer et déployer plusieurs images à l'aide de Skaffold.

Avant de commencer

Pour déployer votre charge de travail, vous devez d'abord effectuer les opérations suivantes :

Déployer des charges de travail sur le cluster de traitement

Vous pouvez déployer la charge de travail migrée sur le cluster utilisé pour effectuer la migration, appelé cluster de traitement Migrate to Containers. Dans la plupart des situations, aucune configuration supplémentaire n'est requise sur le cluster de traitement, car il dispose déjà d'un accès en lecture/écriture au registre Docker pour effectuer la migration.

Déployer sur un cluster cible en utilisant GCR comme registre Docker

Pour vous assurer qu'un cluster cible a accès à Google Container Registry (GCR), créez un secret Kubernetes contenant les identifiants requis pour accéder à GCR :

  1. Créez un compte de service pour déployer une migration, comme décrit dans la section Créer un compte de service pour accéder à Container Registry et à Cloud Storage.

    Ce processus vous permet de télécharger un fichier de clé JSON nommé m4a-install.json.

  2. Créez un secret Kubernetes contenant les identifiants requis pour accéder à GCR :

    kubectl create secret docker-registry gcr-json-key \
     --docker-server=gcr.io --docker-username=_json_key --docker-password="$(cat ~/m4a-install.json)" \
     --docker-email=account@project.iam.gserviceaccount.com

    où :

    • docker-registry spécifie le nom du secret Kubernetes, gcr-json-key dans cet exemple.
    • docker-server=gcr.io spécifie GCR comme serveur.
    • docker-username=_json_key indique que le nom d'utilisateur est contenu dans le fichier de clé JSON.
    • docker-password indique d'utiliser un mot de passe du fichier de clé JSON.
    • docker-email spécifie l'adresse e-mail du compte de service.
  3. Définissez le secret Kubernetes de l'une des manières suivantes :

    • Modifiez la valeur imagePullSecrets par défaut :

      kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gcr-json-key"}]}'
    • Modifiez le fichier deployment_spec.yaml pour ajouter la valeur imagePullSecrets à la définition spec.template.spec, comme indiqué ci-dessous :

      spec:
        containers:
        - image: gcr.io/PROJECT_ID/mycontainer-instance:v1.0.0
          name: mycontainer-instance
          ...
        volumes:
        - hostPath:
            path: /sys/fs/cgroup
            type: Directory
          name: cgroups
        imagePullSecrets:
        - name: gcr-json-key

Déployer sur un cluster cible en utilisant un registre Docker avec une authentification de base

Si vous utilisez un registre Docker pour stocker des images de migration, celui-ci doit être compatible avec l'authentification de base à l'aide d'un nom d'utilisateur et d'un mot de passe. Dans la mesure où il existe de nombreuses manières de configurer une connexion en lecture seule à un registre Docker, vous devez utiliser la méthode appropriée pour votre plate-forme de cluster et votre registre Docker.

Appliquer le fichier YAML de déploiement généré

Utilisez kubectl pour appliquer les spécifications de déploiement à votre cluster cible, tel qu'un cluster de production.

kubectl

  1. Assurez-vous que le cluster cible dispose d'un accès en lecture au registre d'images Docker comme décrit ci-dessus dans la section Vérifier que le cluster cible dispose d'un accès en lecture au registre Docker.

  2. Déployez le conteneur :

    kubectl apply -f deployment_spec.yaml
  3. Une fois que vous avez terminé vos tests de validation sur la charge de travail migrée pour vous assurer que celle-ci fonctionne correctement, vous devez supprimer la migration afin de libérer des ressources. Pour en savoir plus, consultez la section Supprimer une migration.

Supprimer une migration

Après avoir validé et testé la charge de travail migrée pour vous assurer qu'elle fonctionne correctement, vous devez supprimer la migration. En supprimant la migration, vous libérez toute ressource utilisée par la migration.

migctl

  1. Supprimez une migration terminée à l'aide de la commande suivante :

    migctl migration delete MIGRATION_NAME

    MIGRATION_NAME est le nom de la migration.

Console

  1. Ouvrez la page "Migrate to Containers" dans la console Google Cloud.

    Accéder à la page Migrate to Containers

  2. Cliquez sur l'onglet Migrations pour afficher un tableau contenant les migrations disponibles.

  3. Pour supprimer la migration, cliquez sur l'icône à trois points, , à droite du tableau, puis sélectionnez Supprimer la migration.

Étapes suivantes