Avec Config Sync, vous pouvez gérer vos ressources Kubernetes en synchronisant les configurations à partir d'une source fiable centrale, telle qu'un dépôt Git, une image OCI ou un chart Helm. Si les instructions d'installation par défaut ne répondent pas à vos besoins, vous devrez peut-être personnaliser votre installation de Config Sync.
Cette page vous explique comment effectuer une installation et une configuration avancées de Config Sync. Le processus d'installation comprend les éléments suivants :
- Installer Config Sync sur des clusters individuels à l'aide de la consoleGoogle Cloud , de Google Cloud CLI ou de Terraform.
- Configurer votre dépôt racine, y compris le type de source, le format et l'authentification.
- Vérifier que Config Sync a bien été installé et configuré
Limites
Config Sync ne permet pas de configurer helm
en tant que type de source à l'aide de la console Google Cloud ou de Google Cloud CLI. Vous pouvez configurer la synchronisation de votre objet RootSync
ou RepoSync
à partir d'un dépôt Helm à l'aide de l'API Kubernetes, ou le déclarer dans une autre source fiable.
Pour en savoir plus, consultez Configuration du dépôt Helm.
Avant de commencer
Avant d'installer Config Sync, préparez votre source de vérité et un cluster adapté.
Accorder à Config Sync l'accès à votre source de vérité
Pour synchroniser la configuration d'une source de vérité avec vos clusters, Config Sync a besoin d'un accès en lecture seule à votre dépôt. Pour autoriser Config Sync à lire vos configurations, procédez comme suit :
Créez une source fiable contenant les fichiers de configuration que vous souhaitez que Config Sync synchronise avec vos clusters, ou assurez-vous d'y avoir accès. Pour en savoir plus, consultez les ressources suivantes :
- Ajouter des configurations à une source de vérité : informations conceptuelles sur les configurations.
- Bonnes pratiques GitOps : conseils et bonnes pratiques générales pour organiser et gérer votre dépôt.
- Utiliser un dépôt non structuré : recommandations pour utiliser et organiser un dépôt non structuré.
Si votre source de vérité est publique, aucune autre action n'est requise de votre part. Config Sync ne nécessite pas d'autorisations supplémentaires.
Si votre source de référence est privée, suivez les instructions de l'une des pages suivantes :
Examiner les exigences des clusters
Avant de créer un cluster, consultez les exigences relatives aux clusters.
Installer Config Sync
Lorsque vous installez Config Sync à l'aide de la console Google Cloud ou de Google Cloud CLI, Config Sync crée automatiquement un objet RootSync appelé root-sync
. Vous pouvez utiliser les commandes kubectl
pour modifier root-sync
et ajouter d'autres configurations Config Sync. Pour en savoir plus, consultez Configurer Config Sync avec les commandes kubectl
.
Console
Installer Config Sync
Pour installer Config Sync, tous les clusters doivent être enregistrés dans un parc. Lorsque vous installez Config Sync dans la console Google Cloud , la sélection de clusters individuels enregistre automatiquement ces clusters dans votre parc.
- 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 l'une des options suivantes :
- Installer Config Sync sur l'ensemble du parc (recommandé) : Config Sync est installé sur tous les clusters du parc.
- Installer Config Sync sur des clusters individuels : Config Sync est installé sur les clusters que vous sélectionnez. Tous les clusters sélectionnés sont automatiquement enregistrés dans votre parc.
- Si vous installez Config Sync sur des clusters individuels, dans le tableau Clusters disponibles, sélectionnez les clusters sur lesquels vous souhaitez installer Config Sync.
- Cliquez sur Installer Config Sync. Dans l'onglet Paramètres, après quelques minutes, Activé devrait s'afficher dans la colonne État pour les clusters de votre parc.
Déployer un package
Une fois que vous avez enregistré vos clusters dans un parc et installé Config Sync, vous pouvez configurer Config Sync pour déployer un package sur un cluster à partir d'une source fiable. Vous pouvez déployer le même package sur plusieurs clusters ou déployer différents packages sur différents clusters. Vous pouvez modifier un package après l'avoir déployé, à l'exception de certains paramètres tels que le nom du package et le type de synchronisation. Pour en savoir plus, consultez Gérer les packages.
Pour déployer un package, procédez comme suit :
Dans la console Google Cloud , accédez au tableau de bord Config Sync.
Cliquez sur Déployer le package.
Dans le tableau Sélectionner des clusters pour le déploiement du package, sélectionnez le cluster sur lequel vous souhaitez déployer un package, puis cliquez sur Continuer.
Sélectionnez Package hébergé sur Git ou Package hébergé sur OCI comme type de source, puis cliquez sur Continuer.
Dans la section Détails du package, saisissez un nom de package qui identifie l'objet RootSync ou RepoSync.
Dans le champ Type de synchronisation, choisissez Synchronisation à l'échelle du cluster ou Synchronisation à l'échelle de l'espace de noms comme type de synchronisation.
La synchronisation à l'échelle du cluster crée un objet RootSync, tandis que la synchronisation à l'échelle de l'espace de noms crée un objet RepoSync. Pour en savoir plus sur ces objets, consultez Architecture de Config Sync.
Dans la section Source, configurez les éléments suivants :
Pour les sources hébergées dans un dépôt Git, renseignez les champs suivants :
- Dans le champ URL du dépôt, saisissez l'URL du dépôt Git que vous utilisez comme source de vérité.
- Facultatif : Mettez à jour le champ Révision pour vérifier si vous n'utilisez pas la valeur par défaut
HEAD
. - Facultatif : Mettez à jour le champ Chemin d'accès si vous ne souhaitez pas synchroniser à partir du dépôt racine.
- Facultatif : mettez à jour le champ Branche si vous n'utilisez pas la branche
main
par défaut.
Pour les sources hébergées dans une image OCI, saisissez les champs suivants :
- Saisissez l'URL de l'image OCI que vous utilisez comme source fiable en tant qu'image.
- Saisissez le chemin du répertoire à synchroniser, associé au répertoire racine, dans le champ Répertoire.
Facultatif : Développez la section Paramètres avancés pour effectuer les opérations suivantes :
Sélectionnez un type d'authentification. Config Sync a besoin d'un accès en lecture seule à votre source fiable pour lire les fichiers de configuration de la source et les appliquer à vos clusters. À moins que votre source ne nécessite aucune authentification, telle qu'un dépôt public, veillez à accorder à Config Sync un accès en lecture seule à votre dépôt Git, Image OCI ougraphique Helm (gcloud CLI uniquement). Choisissez le même type d'authentification que celui configuré lors de l'installation de Config Sync :
- Aucune : n'utilisez aucune authentification
- SSH : authentifiez-vous à l'aide d'une paire de clés SSH.
- Cookiefile : authentifiez-vous à l'aide d'un fichier
cookiefile
. - Jeton : authentifiez-vous à l'aide d'un jeton d'accès ou d'un mot de passe.
- Google Cloud Repository : utilisez un compte de service Google pour accéder à Cloud Source Repositories. Ne sélectionnez cette option que si Workload Identity Federation for GKE n'est pas activé dans votre cluster.
- Workload Identity : utilisez un compte de service Google pour accéder à un dépôt Cloud Source Repositories.
Saisissez un nombre en secondes pour définir le temps d'attente de la synchronisation, qui détermine la durée pendant laquelle Config Sync attend entre les tentatives d'extraction à partir de la source fiable.
Saisissez une URL de proxy Git pour le proxy HTTPS à utiliser lors de la communication avec la source de vérité.
Choisissez Hiérarchie pour modifier le format source.
La valeur par défaut Non structuré est recommandée dans la plupart des cas, car elle vous permet d'organiser votre source de vérité comme vous le souhaitez.
Cliquez sur Déployer le package.
Vous êtes redirigé vers la page Packages de Config Sync. Après quelques minutes, Synchronisé doit s'afficher dans la colonne État de synchronisation du cluster que vous avez configuré.
gcloud
Avant de continuer, assurez-vous d'avoir enregistré vos clusters dans un parc.
Activez la fonctionnalité de parc
ConfigManagement
:gcloud beta container fleet config-management enable
Préparez la configuration en créant un fichier nommé
apply-spec.yaml
et en y copiant le fichier YAML suivant.Vous pouvez définir tous les champs
spec.configSync
facultatifs dont vous avez besoin lorsque vous créez votre fichier manifeste, puis utiliser les commandeskubectl
pour la configuration. Vous pouvez également définir uniquement le champspec.configSync.enabled
surtrue
et omettre les champs facultatifs. Vous pourrez ensuite utiliser les commandeskubectl
pour créer d'autres objets RootSync ou RepoSync que vous pourrez gérer entièrement à l'aide des commandeskubectl
.# apply-spec.yaml applySpecVersion: 1 spec: configSync: enabled: true # If you don't have a source of truth yet, omit the # following fields. You can configure them later. sourceType: SOURCE_TYPE sourceFormat: FORMAT syncRepo: REPO syncRev: REVISION secretType: SECRET_TYPE gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL policyDir: DIRECTORY preventDrift: false
Remplacez les éléments suivants :
SOURCE_TYPE
: ajoutezgit
pour synchroniser à partir d'un dépôt Git,oci
pour synchroniser à partir d'une image OCI ouhelm
pour effectuer la synchronisation à partir d'un chart Helm. Si aucune valeur n'est spécifiée, la valeur par défaut estgit
.FORMAT
: ajoutezunstructured
pour utiliser un dépôt non structuré ouhierarchy
pour utiliser un dépôt hiérarchique. Ces valeurs sont sensibles à la casse. Ce champ est facultatif et la valeur par défaut esthierarchy
. Nous vous recommandons d'ajouter la valeurunstructured
, car ce format vous permet d'organiser vos configurations de la manière la plus adaptée à vos besoins.REPO
: ajoutez l'URL de la source fiable. Les URL des dépôts Git et Helm utilisent le protocole HTTPS ou SSH. Exemple :https://github.com/GoogleCloudPlatform/anthos-config-management-samples
. Si vous prévoyez d'utiliser SSH en tant quesecretType
, saisissez votre URL avec le protocole SSH. Ce champ est obligatoire. Si vous ne saisissez pas de protocole, l'URL est traitée comme une URL HTTPS.Les URL OCI utilisent le format suivant :
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Par défaut, l'image est extraite du taglatest
, mais vous pouvez récupérer les images parTAG
ouDIGEST
à la place. SpécifiezTAG
ouDIGEST
dansPACKAGE_NAME
:- Pour extraire par
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Pour extraire par
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Pour extraire par
REVISION
: révision Git (tag ou hachage) ou nom de branche à partir desquels la synchronisation doit être effectuée. Lorsque vous utilisez un hachage, il doit s'agir d'un hachage complet et non d'une forme abrégée.SECRET_TYPE
: l'une des optionssecretTypes
suivantes :git
none
: n'utilisez aucune authentificationssh
: utilisez une paire de clés SSH.cookiefile
: utilisez uncookiefile
token
: utilisez un jetongcpserviceaccount
: utilisez un compte de service Google pour accéder à un dépôt Cloud Source Repositories ou Secure Source Manager. Si vous sélectionnez ce type d'authentification, vous devez créer une liaison de stratégie IAM une fois la configuration de Config Sync terminée. Pour en savoir plus, consultez l'onglet "Compte de service Google" de la section Accorder à Config Sync l'accès à Git avec un compte de service Google.gcenode
: utilisez un compte de service Google pour accéder à Cloud Source Repositories. Ne sélectionnez cette option que Workload Identity Federation for GKE n'est pas activé dans votre cluster.githubapp
: utilisez une application GitHub pour vous authentifier auprès d'un dépôt GitHub.
Pour en savoir plus sur ces types d'authentification, consultez Accorder à Config Sync un accès à Git.
OCI
none
: n'utiliser aucune authentificationgcenode
: utilisez le compte de service Compute Engine par défaut pour accéder à une image dans Artifact Registry. Ne sélectionnez cette option que si Workload Identity Federation for GKE n'est pas activé dans votre cluster.gcpserviceaccount
: utilisez un compte de service Google pour accéder à une image.
helm
token
: utilisez un jetongcenode
: utilisez le compte de service Compute Engine par défaut pour accéder à une image dans Artifact Registry. Ne sélectionnez cette option que si Workload Identity Federation for GKE n'est pas activé dans votre cluster.gcpserviceaccount
: utilisez un compte de service Google pour accéder à une image.
EMAIL
: si vous avez ajoutégcpserviceaccount
commesecretType
, ajoutez l'adresse e-mail de votre compte de service Google. Par exemple,acm@PROJECT_ID.iam.gserviceaccount.com
.METRICS_EMAIL
: adresse e-mail du compte de service Google Cloud(GSA) utilisé pour exporter les métriques Config Sync vers Cloud Monitoring. Le GSA doit disposer du rôle IAM Rédacteur de métriques Monitoring (roles/monitoring.metricWriter
). Le compte de service Kubernetesdefault
dans l'espace de nomsconfig-management-monitoring
doit être lié au GSA.DIRECTORY
: chemin d'accès du répertoire à synchroniser, associé à la racine du dépôt Git. Tous les sous-répertoires du répertoire que vous spécifiez sont inclus et synchronisés avec le cluster. La valeur par défaut est le répertoire racine du dépôt.
Pour obtenir la liste complète des champs que vous pouvez ajouter au champ
spec
, consultez la section Champs gcloud.Appliquez le fichier
apply-spec.yaml
. Si vous utilisez un fichier manifeste existant, vous devez appliquer le fichier au cluster que vous souhaitez configurer avec les paramètres que vous avez récupérés dans la commande précédente :gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=CONFIG_YAML_PATH \ --project=PROJECT_ID
Remplacez les éléments suivants :
MEMBERSHIP_NAME
: nom de l'appartenance que vous avez choisi lors de l'enregistrement de votre cluster. Vous pouvez trouver le nom avecgcloud container fleet memberships list
.CONFIG_YAML_PATH
: chemin d'accès à votre fichierapply-spec.yaml
PROJECT_ID
: ID de votre projet.
Terraform
Pour chaque cluster sur lequel vous souhaitez configurer Config Sync, appliquez un bloc de ressources google_gkehub_feature_membership
contenant un bloc configmanagement
et config_sync
, comme dans l'exemple suivant :
git
Remplacez les éléments suivants :
REPO
: URL du dépôt Git contenant vos fichiers de configuration.BRANCH
: branche du dépôt, par exemplemain
.DIRECTORY
: chemin d'accès dans le dépôt Git qui représente le niveau supérieur du dépôt que vous souhaitez synchroniser.SECRET
: type d'authentification du secret.
OCI
Remplacez les éléments suivants :
REPO
: URL du dépôt d'images OCI contenant vos fichiers de configuration.DIRECTORY
: chemin absolu du répertoire contenant les ressources que vous souhaitez synchroniser. Pour utiliser le répertoire racine, laissez ce champ vide.SECRET
: type d'authentification du secret.
Répétez cette procédure pour chaque cluster que vous souhaitez synchroniser.
Pour en savoir plus sur l'utilisation de Terraform, consultez la page Compatibilité de Terraform avec Config Sync.
Une fois que vous avez configuré votre dépôt racine, vous pouvez éventuellement configurer la synchronisation à partir de plusieurs dépôts, y compris d'autres dépôts racines et d'autres dépôts d'espaces de noms. Les dépôts d'espaces de noms sont utiles si vous souhaitez un dépôt contenant des configurations au niveau d'un espace de noms synchronisées avec un espace de noms particulier sur les clusters.
Vérifiez l'installation
Une fois que vous avez installé et configuré Config Sync, vous pouvez vérifier que l'installation s'est bien déroulée.
gcloud
Exécutez la commande suivante :
nomos status
Une installation réussie présente l'état SYNCED
ou PENDING
.
Pour en savoir plus sur les informations fournies par nomos status
, y compris les erreurs signalées, consultez Vérifier l'état de Config Sync dans la documentation de l'outil de ligne de commande nomos
.
Console
Procédez comme suit :
- Dans la console Google Cloud , accédez à la page Configuration sous la section Fonctionnalités.
- Dans l'onglet Packages, vérifiez la colonne Sync status (État de la synchronisation) dans le tableau du cluster. Une installation réussie de Config Sync présente l'état Installé. Une source de vérité correctement configurée présente l'état Synchronisé.
Étapes suivantes
- Découvrez comment mettre à niveau Config Sync.
- Obtenez plus d'informations sur les commandes
gcloud
permettant de configurer Config Sync. - Découvrez comment configurer la synchronisation à partir de dépôts d'espaces de noms.
- Exécutez la commande
nomos
. - Consultez la présentation du dépannage de Config Sync.
- Découvrez comment désinstaller Config Sync.
- Consultez les autorisations Config Sync par défaut.