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. Activer l'APIAnthos

    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. Remplacez [MY-CLUSTER] par le nom de votre cluster et [USER-ACCOUNT] par votre adresse e-mail de compte Google Cloud. 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 Anthos GKE On-Prem :

  • Tous les utilisateurs :

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

    2. Installez Config Management Operator sur le cluster que vous venez de créer.

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

Configurer le cluster

Créez un fichier config-management.yaml et copiez le code YAML ci-dessous. Pour en savoir plus sur les champs, reportez-vous aux instructions d'installation. Comme le dépôt est lisible publiquement, secretType est défini sur none.

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.

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
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/. 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 Namespace gérés par Anthos Config Management :

kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io
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
NAME               AGE
namespace-reader   6m52s
pod-creator        6m52s

Examinez les déclarations de configuration des objets 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.

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

Quelques secondes plus tard :

kubectl get ns shipping-dev
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.

Et ensuite ?