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
- 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.
-
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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Make sure that you have the following role or roles on the project: Kubernetes Engine Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
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.
- 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
-
In the Google Cloud console, go to the IAM page.
Accéder à IAM - Sélectionnez le projet.
- Cliquez sur Accorder l'accès.
-
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.
- Dans la liste Sélectionner un rôle, sélectionnez un rôle.
- Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez tous les rôles supplémentaires.
- Cliquez sur Enregistrer.
Activez l'API Google Kubernetes Engine.
Dans la console Google Cloud , accédez à la page Kubernetes Engine.
Cliquez sur add_box Créer.
Dans la section Autopilot, sélectionnez Configurer.
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.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.
- Dans la console Google Cloud , accédez à la page Configuration sous la section Fonctionnalités.
- Cliquez sur add Installer Config Sync.
- Sélectionnez la version de Config Sync que vous souhaitez utiliser.
- Sous Options d'installation, sélectionnez Installer Config Sync sur des clusters individuels.
- Dans le tableau Clusters disponibles, sélectionnez
cs-cluster
, puis cliquez sur Installer Config Sync. Dans l'onglet Paramètres, l'état decs-cluster
devrait être Activé après quelques minutes. - Sur le tableau de bord Config Sync, cliquez sur Déployer le package de cluster.
- Dans le tableau Sélectionner les clusters pour le déploiement du package, sélectionnez
cs-cluster
, puis cliquez sur Continuer. - Laissez l'option Package hébergé sur Git, puis cliquez sur Continuer.
- Dans le champ Nom du package, saisissez
sample-repository
. - Dans le champ URL du dépôt, saisissez
https://github.com/GoogleCloudPlatform/anthos-config-management-samples
. - Dans le champ Chemin d'accès, saisissez
config-sync-quickstart/multirepo/root
. - Conservez les valeurs par défaut dans les autres champs.
Cliquez sur Déployer le package.
Après quelques minutes, Synchronisé doit s'afficher dans la colonne État de synchronisation de
cs-cluster
.- 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 objetRepoSync
indique à Config Sync de synchroniser les configurations de l'espace de nomsgamestore
à partir d'un autre chemin d'accès. Dans cet exemple, l'objetRepoSync
pointe vers le répertoireconfig-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. Accédez au menu GKE dans la console Google Cloud .
À côté de
cs-cluster
, cliquez sur more_vert Actions, puis sur delete Supprimer.Lorsque vous êtes invité à confirmer votre choix, cliquez à nouveau sur Supprimer.
- Découvrez comment valider des configurations.
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 :
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 :
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ôtroot
, sont séparées des configurations au niveau de l'espace de noms, représentées par le dépôtnamespaces
. 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 :
Le dépôt d'espace de noms contient des configurations spécifiques à l'application pour l'espace de noms
gamestore
. Par exemple, le fichierconfigmap-inventory.yaml
contient des données d'inventaire pour l'applicationgamestore
. 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
Étapes suivantes
-