Installer Migrate to Containers

Cet article explique comment installer Migrate to Containers sur un cluster de traitement.

Un cluster de traitement est un cluster Google Kubernetes Engine (GKE) ou GKE Enterprise avec les composants Migrate to Containers installés que vous utilisez pour migrer les VM avant de les déployer sur votre cluster de production.

À l'aide des étapes de cet article, vous allez utiliser l'outil de ligne de commande migctl ou Google Cloud Console pour installer les composants Migrate to Containers requis sur un cluster GKE que vous avez déjà créé.

Après avoir déployé vos VM migrées en tant qu'images sur un cluster de production (en supposant que le cluster de traitement n'est plus nécessaire pour effectuer de nouvelles migrations), vous pouvez supprimer le cluster de traitement.

À propos de migctl

En plus d'être compatible avec la console Google Cloud, Migrate to Containers intègre l'outil de ligne de commande migctl, qui vous permet d'effectuer toutes les opérations d'une migration :

  • Si vous utilisez un cluster de traitement Google Kubernetes Engine (GKE) ou GKE Enterprise dans Google Cloud, exécutez migctl dans Cloud Shell.

  • Lorsque vous utilisez un cluster de traitement Google Distributed Cloud Virtual pour Bare Metal, vous pouvez installer et exécuter migctl sur votre poste de travail administrateur.

Pour savoir comment télécharger migctl, consultez la page Téléchargements Migrate to Containers.

Avant de commencer

Installer Migrate to Containers

migctl sur Google Cloud

Utilisez les commandes migctl pour installer Migrate to Containers et le configurer avec les principes de base nécessaires à la migration.

  1. Assurez-vous d'avoir créé un compte de service permettant d'accéder à Container Registry et Cloud Storage, puis téléchargez le fichier de clé JSON, comme décrit dans la section Configurer un compte de service.

  2. Accédez au menu GKE dans la console Google Cloud.

    Accéder au menu de GKE

  3. Dans la liste des clusters, recherchez celui que vous utilisez en tant que cluster de traitement, puis cliquez sur le bouton Connecter.

  4. Dans la boîte de dialogue Se connecter au cluster, sous Accès avec la ligne de commande, cliquez sur Exécuter dans Cloud Shell pour exécuter la commande de connexion dans Cloud Shell.

    gcloud container clusters get-credentials my-cluster --zone us-central1-c --project my-project
    
  5. Configurez les composants Migrate to Containers sur votre cluster de traitement en exécutant la commande migctl setup install dans Cloud Shell et en spécifiant le compte de service d'installation :

    migctl setup install --json-key=m4a-install.json
    
  6. Validez l'installation de Migrate to Containers en exécutant la commande migctl doctor.

    Avant l'installation, un message tel que celui-ci peut s'afficher. Si tel est le cas, attendez quelques minutes que l'installation se termine avant d'exécuter migctl doctor.

    migctl doctor
    [!] Deployment
        Validation checks failed.
    

    Dans l'exemple de résultat suivant, la coche indique que le déploiement de Migrate to Containers a bien été effectué et que les dépôts de données nécessaires ont été configurés.

    migctl doctor
    [✓] Deployment
    [✓] Docker registry
    [✓] Artifacts repo
    [!] Source Status
    

    Consultez la section Définir des dépôts de données si une erreur est associée au registre Docker ou au dépôt d'artefacts.

migctl sur Google Distributed Cloud Virtual pour Bare Metal

  1. Définissez votre ID de projet par défaut :
    gcloud config set project project-id
  2. Déployez migctl sur votre poste de travail administrateur :
    wget https://modernize-release.storage.googleapis.com/v1.15.0/linux/amd64/migctl
    sudo cp migctl /usr/local/bin/
    sudo chmod +x /usr/local/bin/migctl
    . <(migctl completion bash)
  3. Configurez les composants Migrate to Containers sur votre cluster de traitement en exécutant la commande migctl setup install :
    migctl setup install --anthos-bm --gcp-project myproject --gcp-region us-central1 --json-key m4a-install.json
    Lorsqu'il reçoit tous les arguments, y compris --gcp-project, --gcp-region et --json-key, migctl crée un registre Docker et des dépôts d'artefacts par défaut dans Container Registry et Cloud Storage, respectivement. Cela signifie que les images et les artefacts de migration seront importés dans Google Cloud. Il est possible de configurer d'autres registres Docker et de les définir comme valeurs par défaut pour la migration, ou de les utiliser pour une migration spécifique.
  4. Validez l'installation de Migrate to Containers en exécutant la commande migctl doctor. Avant la fin de l'installation, un message tel que celui-ci peut s'afficher. Si tel est le cas, attendez quelques minutes que l'installation se termine avant d'exécuter migctl doctor.
    migctl doctor
      [!] Deployment
          Validation checks failed.
    Dans l'exemple de résultat suivant, la coche indique que Migrate to Containers a bien été déployé, mais que vous n'avez pas encore configuré les dépôts de données nécessaires :
    migctl doctor
      [✓] Deployment
      [!] Docker registry
      [!] Artifacts repo
      [!] Source Status
  5. Configurez les dépôts de données requis par le cluster comme décrit dans la section Définir des dépôts de données.
  6. Si nécessaire, configurez un proxy HTTPS pour l'accès Internet sortant, comme décrit dans la section Configurer un proxy HTTPS.

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 Clusters de traitement pour afficher un tableau contenant les clusters disponibles.

  3. Cliquez sur Ajouter un cluster de traitement.

  4. Sélectionnez le type de charge de travail à migrer, Linux ou Windows, puis sélectionnez Suivant.

  5. Sélectionnez le cluster dans la liste déroulante, puis cliquez sur Suivant.

  6. Sélectionnez le bucket pour le dépôt d'artefacts.

    Par défaut, Migrate to Containers utilise Cloud Storage avec le nom de bucket spécifié. Vous pouvez éventuellement définir le nom du bucket ici. Assurez-vous d'avoir vérifié les exigences décrites dans la section Définir des dépôts de données.

  7. Sélectionnez le nom du projet du dépôt d'images.

    Par défaut, Migrate to Containers utilise le projet actuel pour Container Registry. Vous pouvez éventuellement modifier le nom du projet ici. Assurez-vous d'avoir vérifié les exigences décrites dans la section Définir des dépôts de données.

  8. Cliquez sur Continuer.

  9. Spécifiez le compte de service Dépôt d'artefacts utilisé pour accéder à Cloud Storage. Vous pouvez créer un compte de service ou en sélectionner un existant. Pour en savoir plus, consultez la section Configurer des comptes de service.

  10. Cliquez sur Continuer pour examiner vos paramètres, puis sur Déployer pour installer Migrate to Containers sur votre cluster.

  11. Une fois l'installation terminée, le nom du cluster s'affiche dans l'onglet Clusters de traitement avec l'état Prêt.

Options d'installation

Vous pouvez créer des clusters de différentes tailles et configurations. Imaginons par exemple que vous souhaitez créer un cluster avec plusieurs pools de nœuds. Vous pouvez alors utiliser un pool de nœuds pour le traitement des migrations, un pool de nœuds pour l'exécution des charges de travail et un troisième pool de nœuds pour les autres opérations.

Par défaut, Migrate to Containers est installé sur tous les nœuds de cluster. Pour définir les nœuds utilisés par Migrate to Containers, vous pouvez utiliser les options --node-selectors et --tolerations dans la commande migctl setup install :

  • --node-selectors LABEL1=VALUE1,LABEL2=VALUE2,...

    Spécifie une liste de paires libellé/valeur séparées par une virgule qui déterminent les nœuds utilisés par Migrate to Containers. Pour en savoir plus sur l'utilisation des libellés, consultez la page Créer et gérer les libellés.

  • --tolerations KEY1=VALUE1:EFFECT1,KEY2=VALUE2:EFFECT2,...

    Spécifie une liste de paires clé/valeur séparées par une virgule associées à un effet, qui spécifient ensemble un rejet de nœud. Une tolérance signifie que les pods peuvent s'exécuter sur le rejet de nœud spécifié par la paire clé/valeur et l'effet.

    Si vous omettez EFFECT et/ou VALUE, les tolérances correspondent aux rejets avec KEY,VALUE (pour un élément EFFECT) et/ou KEY (pour une paire VALUE:EFFECT).

    Pour en savoir plus sur les rejets de nœuds, consultez la page Contrôler la planification avec des rejets de nœuds.

Étapes suivantes