Effectuer la synchronisation avec un dépôt en lecture seule

Ce guide de démarrage rapide explique comment démarrer avec Anthos Config Management sur un nouveau cluster, à l'aide de l'exemple de dépôt foo-corp pour amorcer un cluster avec un ensemble de configurations. Dans ce guide de démarrage rapide, vous n'avez pas besoin d'un accès en écriture au dépôt. Imaginons qu'une équipe de conformité de votre organisation soit chargée de créer les configurations et que vous deviez assurer la synchronisation de chaque cluster avec le dépôt.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder à la page de sélection du projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Activez l'API Anthos.

    Activer l'API

  5. Installez et initialisez le SDK Cloud.

Configurer le cluster

Utilisateurs GKE

  1. Créez un cluster.

  2. Configurez la commande kubectl pour vous authentifier auprès du cluster et créez un objet RoleBinding pour vous définir en tant qu'administrateur du cluster à l'aide des commandes ci-dessous. Utilisez le nom de votre cluster ([MY-CLUSTER]) et l'adresse e-mail de votre compte Google Cloud ([USER-ACCOUNT]). En fonction de la configuration de la commande gcloud sur votre système local, vous devrez peut-être ajouter les champs --project et --zone.

    gcloud container clusters get-credentials [MY-CLUSTER]
    
    kubectl create clusterrolebinding cluster-admin-binding \
        --clusterrole cluster-admin --user [USER_ACCOUNT]
    

Utilisateurs d'Anthos clusters on VMware

Préparation d'Anthos Config Management

Pour préparer les outils dont vous avez besoin pour ce guide de démarrage rapide, procédez comme suit :

  1. Si vous utilisez Anthos Config Management pour la première fois, activez la fonctionnalité via Google Cloud Console ou à l'aide de l'outil de ligne de commande gcloud.

    Console

    Pour activer Anthos Config Management, procédez comme suit :

    1. Accédez à la page des fonctionnalités Anthos dans Google Cloud Console.

      Découvrir les fonctionnalités d'Anthos

    2. Sur la ligne Config Management, cliquez sur Activer.

    3. Dans la fenêtre de confirmation, cliquez sur Activer Config Management.

    gcloud

    Pour activer Anthos Config Management, exécutez la commande suivante :

     gcloud alpha container hub config-management enable
    
  2. Installez la commande nomos sur votre système local.

  3. Si vous souhaitez passer à kubectl, déployez Config Management Operator sur le cluster que vous venez de créer.

  4. Enregistrez votre cluster dans un environnement Anthos à l'aide de Connect.

Configurer le cluster

Vous pouvez configurer votre cluster à l'aide de Google Cloud Console, de l'outil de ligne de commande gcloud ou de kubectl.

Console

Pour configurer Anthos Config Management sur Google Cloud Console, procédez comme suit :

  1. Accédez au menu Anthos Config Management dans Google Cloud Console.

    Accéder au menu Anthos Config Management

  2. Sélectionnez le cluster enregistré et cliquez sur Configurer.

  3. Dans la section Authentification du dépôt Git pour ACM, sélectionnez Aucun, car le dépôt de cet exemple est lisible dans le monde entier.

  4. Cliquez sur Continuer.

  5. Dans la section Paramètres ACM pour vos clusters, procédez comme suit :

    1. Dans le champ Version, sélectionnez une version pour Anthos Config Management.
    2. Cochez la case Activer Config Sync.
    3. Dans le menu déroulant qui s'affiche, effectuez les opérations suivantes :

      1. Dans le champ URL, saisissez https://github.com/GoogleCloudPlatform/csp-config-management/.
      2. Dans le champ Branche, saisissez 1.0.0.
      3. Laissez le champ Tag/Commit vide, car nous utilisons la valeur par défaut de HEAD.
      4. Dans le champ Répertoire des règles, saisissez foo-corp.
      5. Laissez les valeurs par défaut de tous les autres champs.
  6. Cliquez sur OK. Vous êtes redirigé vers le menu Anthos Config Management. Après quelques minutes, Synced devrait apparaître dans la colonne d'état à côté du cluster que vous avez configuré.

gcloud

Créez un fichier nommé config-management.yaml et copiez le fichier YAML ci-dessous dans ce fichier. Comme le dépôt est lisible publiquement, secretType est défini sur none. Pour plus d'informations sur les champs, consultez la section Configuration pour le dépôt Git.

  1. Créez un fichier config-management.yaml et copiez le fichier YAML ci-dessous dans ce fichier :

    # config-management.yaml
    
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
      namespace: config-management-system
    
    spec:
      git:
        syncRepo: https://github.com/GoogleCloudPlatform/csp-config-management/
        syncBranch: 1.0.0
        secretType: none
        policyDir: "foo-corp"
    
  2. Définissez une variable :

    export CONFIG_YAML=PATH_TO_CONFIG_YAML

  3. Appliquez le fichier config-management.yaml :

     gcloud alpha container hub config-management apply \
         --membership=CLUSTER_NAME \
         --config=CONFIG_YAML \
         --project=PROJECT_ID
    

    Remplacez l'élément suivant :

    • CLUSTER_NAME : ajoutez le cluster enregistré auquel vous souhaitez appliquer cette configuration.
    • PROJECT_ID : ajoutez l'ID de votre projet.

kubectl

Créez un fichier nommé config-management.yaml et copiez le fichier YAML ci-dessous dans ce fichier. Comme le dépôt est lisible publiquement, secretType est défini sur none. Pour plus d'informations sur les champs, consultez la section Configuration pour le dépôt Git.

apiVersion: configmanagement.gke.io/v1
kind: ConfigManagement
metadata:
  name: config-management
spec:
  # clusterName is required and must be unique among all managed clusters
  clusterName: my-cluster
  git:
    syncRepo: https://github.com/GoogleCloudPlatform/csp-config-management/
    syncBranch: 1.0.0
    secretType: none
    policyDir: "foo-corp"

Appliquez la configuration à votre cluster comme suit :

kubectl apply -f config-management.yaml

Si la commande réussit, Kubernetes met à jour Anthos Config Management sur votre cluster pour commencer à synchroniser la configuration du cluster à partir du dépôt. Pour vérifier qu'Anthos Config Management est en cours d'exécution, répertoriez tous les pods exécutés dans l'espace de noms config-management-system :

kubectl get pods -n config-management-system

Sortie :

NAME                                   READY     STATUS    RESTARTS   AGE
git-importer-5f8bdb59bd-7nn5m          2/2       Running   0          2m
monitor-58c48fbc66-ggrmd               1/1       Running   0          2m
syncer-7bbfd7686b-dxb45                1/1       Running   0          2m

Examiner le cluster et le dépôt

Le dépôt foo-corp inclut des configurations dans les répertoires cluster/ et namespaces/. Ces configurations sont appliquées dès qu'Anthos Config Management est configuré pour lire les données du dépôt.

Tous les objets gérés par Anthos Config Management possèdent l'étiquette app.kubernetes.io/managed-by définie sur configmanagement.gke.io.

Répertoriez les objets Namespaces gérés par Anthos Config Management :

kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io

Sortie :

NAME               STATUS   AGE
audit              Active   4m
shipping-dev       Active   4m
shipping-prod      Active   4m
shipping-staging   Active   4m

Examinez les configurations qui ont entraîné la création de ces objets Namespace, telles que namespaces/audit/namespace.yaml et namespaces/online/shipping-app-backend/shipping-dev/namespace.yaml.

Répertoriez les objets ClusterRole gérés par Anthos Config Management :

kubectl get clusterroles -l app.kubernetes.io/managed-by=configmanagement.gke.io

Sortie :

NAME               AGE
namespace-reader   6m52s
pod-creator        6m52s

Examinez les configurations déclarant ces ClusterRole :

  • cluster/namespace-reader-clusterrole.yaml
  • cluster/pod-creator-clusterrole.yaml

Vous pouvez examiner d'autres objets de la même manière, tels que les objets Role et PodSecurityPolicy.

Tenter de modifier manuellement un objet géré

Si vous modifiez manuellement un objet Kubernetes géré par Anthos Config Management, sa configuration est automatiquement mise à jour en fonction de la configuration de l'objet figurant dans votre dépôt. Pour tester ce processus, supprimez l'objet Namespace shipping-dev.

kubectl delete namespace shipping-dev

Si vous procédez immédiatement à la vérification, il est possible que l'objet Namespace soit manquant. Il réapparaîtra après quelques secondes. Exemple :

kubectl get ns shipping-dev

Sortie :

Error from server (NotFound): namespaces "shipping-dev" not found

Quelques secondes plus tard :

kubectl get ns shipping-dev

Sortie :

NAME           STATUS   AGE
shipping-dev   Active   3s

Nettoyer

Si vous souhaitez suivre le guide de démarrage rapide afin d'écrire des configurations pour Config Sync, n'effectuez pas encore de nettoyage. Ce guide de démarrage rapide est un prérequis pour ce thème, qui inclut également des instructions de nettoyage.

Si vous ne souhaitez pas suivre le guide de démarrage rapide avancé, vous pouvez nettoyer le cluster que vous avez utilisé pour les tests.

Étape suivante