Synchroniser avec un dépôt en lecture seule

Ce guide de démarrage rapide explique comment utiliser 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 démarrage rapide, vous n'avez pas besoin d'accéder 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.

Après avoir terminé ce guide de démarrage rapide, vous pourrez suivre un guide avancé pour apprendre à écrire, tester et synchroniser des configurations.

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 Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Cloud.

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

  3. Vérifiez que la facturation est activée pour votre projet Google 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.

Exigences

Anthos Config Management requiert des droits d'accès actifs à Anthos. Pour en savoir plus, consultez la section Tarification pour Anthos.

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 GKE On-Prem

Installation d'Anthos Config Management

  1. Installez la commande nomos sur votre système local.

  2. Si vous effectuez une installation manuelle, installez l'opérateur Config Management sur le cluster que vous venez de créer.

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

Configurer le cluster

Vous pouvez configurer le cluster à l'aide de la commande kubectl ou de Google Cloud Console.

kubectl

Créez un fichier config-management.yaml et copiez le code 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 du 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 Config Management Operator sur votre cluster pour commencer à synchroniser la configuration du cluster à partir du dépôt. Pour vérifier que Config Management Operator s'exécute correctement, répertoriez tous les pods en cours d'exécution dans l'objet Namespace 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

Console

Pour configurer l'opérateur 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 auprès du dépôt Git pour ACM, procédez comme suit :

    1. Dans le champ Type de secret, sélectionnez Aucun, car le dépôt de cet exemple est lisible publiquement.
    2. Cliquez sur Continuer.
  4. Dans la section Paramètres ACM pour vos clusters, procédez comme suit :

    1. Dans le champ URL, saisissez https://github.com/GoogleCloudPlatform/csp-config-management/.
    2. Dans le champ Branche, saisissez 1.0.0.
    3. Cliquez sur Afficher les options avancées.
    4. Dans le champ Répertoire des règles, saisissez foo-corp.
  5. Cliquez sur OK. Vous êtes redirigé vers le menu Anthos Config Management. Après quelques minutes, actualisez la page. Vous devriez voir Synced dans la colonne d'état à côté du cluster que vous avez configuré.

Examiner le cluster et le dépôt

Le dépôt foo-corp inclut des configurations dans les répertoires cluster/ et namespaces/. Elles sont appliquées dès que Config Management Operator 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

Une fois les exercices sur ce thème terminés, vous pouvez supprimer le cluster utilisé pour effectuer les tests.

Étape suivante