Guide de démarrage rapide : synchroniser les configurations à partir d'un dépôt Git

Ce guide de démarrage rapide explique comment utiliser Config Sync pour implémenter une approche GitOps afin de gérer vos clusters Google Kubernetes Engine. Avec un workflow GitOps, vous utilisez un dépôt Git comme source unique de vérité pour les configurations de votre cluster.

En utilisant Config Sync, vous bénéficiez des avantages suivants :

  • Appliquer la cohérence : permet de s'assurer que tous vos clusters ont la même configuration, ce qui réduit le risque d'écart de configuration.
  • Améliorer la sécurité : gérez et auditez de manière centralisée les configurations de vos clusters, ce qui facilite l'application des règles de sécurité.
  • Augmenter la vélocité : automatisez le déploiement des modifications de configuration pour déployer les modifications plus rapidement et de manière plus fiable.

Dans ce tutoriel, vous allez créer un cluster GKE et configurer Config Sync pour qu'il synchronise les fichiers de configuration à partir d'un dépôt d'exemple. Ce tutoriel vous aide à comprendre le fonctionnement de Config Sync et vous permet de l'utiliser pour gérer vos clusters de manière cohérente et automatisée.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Make sure that you have the following role or roles on the project: Kubernetes Engine Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Accéder à IAM
    2. Sélectionnez le projet.
    3. Cliquez sur  Accorder l'accès.
    4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

    5. Dans la liste Sélectionner un rôle, sélectionnez un rôle.
    6. Pour attribuer des rôles supplémentaires, cliquez sur  Ajouter un autre rôle et ajoutez tous les rôles supplémentaires.
    7. Cliquez sur Enregistrer.
    8. Créer un cluster

      Dans cette section, vous allez créer un cluster que vous pourrez utiliser dans ce tutoriel. Dans la réalité, vous géreriez probablement plusieurs clusters. Pour simplifier ce tutoriel, vous ne créerez et ne gérerez qu'un seul cluster.

      Pour créer un cluster, procédez comme suit :

      1. Activez l'API Google Kubernetes Engine.

        Accéder à la page GKE

      2. Dans la console Google Cloud , accédez à la page Kubernetes Engine.

        Accéder à Google Kubernetes Engine

      3. Cliquez sur Créer.

      4. Dans la section Autopilot, sélectionnez Configurer.

      5. Dans la section Paramètres de base du cluster, saisissez cs-cluster dans le champ Nom. Conservez les valeurs par défaut recommandées dans tous les autres champs.

      6. Cliquez sur Créer. Vous êtes redirigé vers la page Clusters Kubernetes. La création du cluster prend plusieurs minutes. Lorsqu'une coche verte apparaît dans la colonne État à côté de votre cluster, cela signifie qu'il est prêt.

      Configurer le cluster

      Maintenant que vous disposez d'un cluster, vous pouvez configurer Config Sync pour synchroniser les fichiers de configuration à partir d'un dépôt Git.

      Pour configurer Config Sync dans la console Google Cloud , procédez comme suit :

      1. Dans la console Google Cloud , accédez à la page Configuration sous la section Fonctionnalités.

        Accéder à la page "Configuration"

      2. Cliquez sur Installer Config Sync.
      3. Sélectionnez la version de Config Sync que vous souhaitez utiliser.
      4. Sous Options d'installation, sélectionnez Installer Config Sync sur des clusters individuels.
      5. Dans le tableau Clusters disponibles, sélectionnez cs-cluster, puis cliquez sur Installer Config Sync. Dans l'onglet Paramètres, l'état de cs-cluster devrait être Activé après quelques minutes.
      6. Sur le tableau de bord Config Sync, cliquez sur Déployer le package de cluster.
      7. Dans le tableau Sélectionner les clusters pour le déploiement du package, sélectionnez cs-cluster, puis cliquez sur Continuer.
      8. Laissez l'option Package hébergé sur Git, puis cliquez sur Continuer.
      9. Dans le champ Nom du package, saisissez sample-repository.
      10. Dans le champ URL du dépôt, saisissez https://github.com/GoogleCloudPlatform/anthos-config-management-samples.
      11. Dans le champ Chemin d'accès, saisissez config-sync-quickstart/multirepo/root.
      12. Conservez les valeurs par défaut dans les autres champs.
      13. Cliquez sur Déployer le package.

        Après quelques minutes, Synchronisé doit s'afficher dans la colonne État de synchronisation de cs-cluster.

      Maintenant que Config Sync est synchronisé avec un dépôt, il synchronise en permanence l'état de vos clusters avec les configurations du dépôt.

      Afficher les détails du package

      Pour afficher les objets gérés par Config Sync, accédez à l'onglet Packages et cliquez sur cs-cluster. La page "Détails du package" fournit un aperçu de toutes les ressources synchronisées, y compris le type de ressource et l'espace de noms auquel la ressource est synchronisée.

      (Facultatif) Explorer l'exemple de dépôt

      Les configurations appliquées à votre cluster sont définies dans le dépôt /config-sync-quickstart/multirepo/. Cet exemple illustre une configuration multiréférentiel dans laquelle les configurations au niveau de l'administrateur de cluster, représentées par le dépôt root, sont séparées des configurations au niveau de l'espace de noms, représentées par le dépôt namespaces. Dans cet exemple, ces configurations sont réparties dans différents dossiers. Dans un scénario réel, vous pouvez stocker des configurations dans deux dépôts différents avec des autorisations d'accès différentes.

      En général, les dépôts racines ou au niveau du cluster sont gérés par un administrateur central et contiennent des ressources à l'échelle du cluster, des configurations d'espaces de noms et des règles. Les dépôts au niveau de l'espace de noms contiennent généralement des configurations spécifiques à des espaces de noms individuels et sont souvent gérés par des équipes d'application.

      Voici quelques-uns des principaux types de fichiers que vous pouvez stocker dans un dépôt racine :

      • Création d'espaces de noms : les fichiers tels que namespace-gamestore.yaml créent les espaces de noms eux-mêmes.
      • Ressources à portée du cluster : les fichiers qui affectent l'ensemble du cluster incluent des ressources telles que les objets ClusterRole qui ajoutent des rôles à l'échelle du cluster et accordent des autorisations.
      • Connecter des dépôts d'espaces de noms : dans cette configuration multiréférentiel, le fichier clé est le fichier reposync-gamestore.yaml. Cet objet RepoSync indique à Config Sync de synchroniser les configurations de l'espace de noms gamestore à partir d'un autre chemin d'accès. Dans cet exemple, l'objet RepoSync pointe vers le répertoire config-sync-quickstart/multirepo/ namespaces/gamestore du même dépôt, mais dans un scénario réel, vous pouvez pointer vers un autre dépôt Git.

      Le dépôt d'espace de noms contient des configurations spécifiques à l'application pour l'espace de noms gamestore. Par exemple, le fichier configmap-inventory.yaml contient des données d'inventaire pour l'application gamestore. Ce type de configuration GitOps permet aux équipes d'application d'avoir plus d'autonomie sur leurs propres déploiements et ressources à portée d'espace de noms sans avoir à modifier le dépôt racine central.

      Effectuer un nettoyage

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

        Accéder à la page GKE

      2. À côté de cs-cluster, cliquez sur  Actions, puis sur  Supprimer.

      3. Lorsque vous êtes invité à confirmer votre choix, cliquez à nouveau sur Supprimer.

      Étapes suivantes