Présentation des configurations

Cette page décrit les configurations, les fichiers qu'Anthos Config Management lit à partir de Git et applique automatiquement à vos clusters. Vous pouvez créer une configuration et la valider dans votre dépôt.

Anthos Config Management synchronise vos clusters enregistrés à l'aide de configurations. Une configuration correspond à un fichier YAML ou JSON stocké dans votre dépôt et contenant des types d'informations de configuration semblables à ceux que vous pouvez appliquer manuellement à un cluster au moyen de la commande kubectl apply. Cet article décrit le fonctionnement des configurations, indique comment les écrire et explique comment Anthos Config Management les applique aux clusters enregistrés.

Anthos Config Management est conçu pour les opérateurs qui gèrent plusieurs clusters. Vous pouvez vous assurer que vos clusters respectent les normes métier et de conformité en laissant Anthos Config Management gérer des objets Kubernetes importants, tels que Namespace, Role, RoleBinding ou ResourceQuota, pour l'ensemble de votre flotte. Vous pouvez créer une configuration pour tout objet Kubernetes pouvant exister dans un cluster.

Utiliser des configurations au fil du temps

L'arbre de décision ci-dessous illustre les résultats de différentes modifications de configuration effectuées dans un groupe hypothétique de clusters gérés par Anthos Config Management au fil du temps. Des actions hypothétiques exécutées par des opérateurs de cluster et les résultats de ces actions sont présentés à la suite du schéma pour illustrer le fonctionnement d'Anthos Config Management.

Ce cluster utilise l'exemple de dépôt. Le cluster est déjà enregistré auprès de l'opérateur.

Exemple d'arbre de décision illustrant les actions exécutées et les résultats obtenus au fil du temps dans le cadre d'Anthos Config Management

  • Anthos Config Management applique les configurations uniquement lorsqu'au moins l'une des conditions suivantes est remplie :

    • Une configuration appropriée existe dans le dépôt.
    • L'annotation configmanagement.gke.io/managed: enabled est appliquée à l'objet Kubernetes.

    Le cluster foo-corp possède un objet ClusterRole nommé pod-accountant qui ne comporte pas l'annotation configmanagement.gke.io/managed: enabled et aucune configuration de l'objet ClusterRole n'existe dans le dépôt. Anthos Config Management ne configure pas l'objet ClusterRole pod-accountant.

  • Anthos Config Management applique automatiquement une modification appropriée lorsqu'elle a fait l'objet d'un commit dans le dépôt.

    Un administrateur de cluster procède au commit d'une configuration dans le fichier cluster/quota-viewer-clusterrole.yaml du dépôt. Cette configuration définit un objet ClusterRole nommé quota-viewer. Étant donné que la configuration est créée dans le répertoire cluster/, elle a une incidence sur tous les clusters enregistrés. Anthos Config Management détecte la configuration qui vient de faire l'objet d'un commit et l'applique. L'objet ClusterRole quota-viewer existe désormais dans le cluster, comporte l'annotation configmanagement.gke.io/managed: enabled et est synchronisé avec le contenu de quota-viewer-clusterrole.yaml.

    Quelque temps plus tard, quelqu'un supprime le fichier cluster/quota-viewer-clusterrole.yaml du dépôt. Anthos Config Management détecte la modification et supprime l'objet ClusterRole quota-viewer du cluster.

  • Vous pouvez commencer à gérer un objet existant en ajoutant l'annotation configmanagement.gke.io/managed: enabled.

    Le cluster foo-corp possède un répertoire d'espace de noms nommé shipping-dev. Ce répertoire d'espace de noms contient une configuration pour un objet Role nommée job-creator qui comporte l'annotation configmanagement.gke.io/managed: enabled. Quelqu'un met à jour le fichier namespaces/dev/shipping-dev/job-creator-role.yaml. L'opérateur détecte et applique la modification.

  • Anthos Config Management vous permet d'appliquer des modifications de configuration aux objets Namespace de manière hiérarchique et groupée.

    Le cluster foo-corp possède un objet RoleBinding nommé pod-creator et un fichier /namespaces/pod-creator/pod-creator.yaml correspondant dans le dépôt. Le schéma montre que shipping-prod, shipping-staging et shipping-dev sont tous des objets Namespace (ils possèdent tous un fichier namespace.yaml qui définit un objet Namespace) dans le répertoire d'espace de noms abstrait shipping-dev-backend. Chacun de ces espaces de noms hérite de l'objet RoleBinding pod-creator.

    Quelque temps plus tard, quelqu'un modifie l'objet RoleBinding pod-creator du répertoire d'espace de noms shipping-prod. L'opérateur détecte la modification et met à jour pod-creator pour qu'il corresponde à la configuration du dépôt.

    Un utilisateur finit par supprimer la configuration pod-creator du dépôt. Anthos Config Management détecte la modification et supprime l'objet RoleBinding pod-creator de chacun des trois objets Namespace.

  • Anthos Config Management vous permet d'appliquer manuellement les modifications et ne gère pas les objets, sauf s'ils comportent l'annotation configmanagement.gke.io/managed: enabled.

    Quelqu'un crée manuellement un objet Role nommé secret-admin dans l'objet Namespace shipping-prod. Aucune configuration n'existe pour l'objet Role secret-admin dans le dépôt. L'objet Role secret-admin ne comporte pas l'annotation configmanagement.gke.io/managed: enabled. Anthos Config Management n'effectue aucune action.

    Quelque temps plus tard, quelqu'un ajoute manuellement l'annotation configmanagement.gke.io/managed:enabled à l'objet Role secret-admin. Étant donné qu'il n'existe toujours pas de configuration correspondante dans le dépôt, Anthos Config Management supprime l'objet Role secret-admin de l'objet Namespace.

  • Anthos Config Management crée les objets Namespace manquants s'il existe des configurations pour ces derniers.

    Quelqu'un procède au commit d'une nouvelle configuration pour l'objet Namespace audit, qui n'existe pas dans le cluster. Anthos Config Management crée l'objet Namespace audit dans le cluster et lui applique l'annotation configmanagement.gke.io/managed: enabled.

  • Anthos Config Management peut gérer les configurations d'un objet Namespace sans annotation configmanagement.gke.io/managed: enabled.

    L'objet Namespace shipping-dev existe dans le cluster, mais ne comporte pas l'annotation configmanagement.gke.io/managed: enabled. Cependant, le répertoire d'espace de noms shipping-dev du dépôt comporte un objet RoleBinding nommé job-creators, qui comporte l'annotation configmanagement.gke.io/managed: enabled.

    Quelqu'un ajoute une configuration pour l'objet Namespace shipping-dev au dépôt, mais il n'existe pas de configuration pour l'objet RoleBinding job-creators. Étant donné qu'aucune configuration n'existe pour l'objet RoleBinding et que l'annotation configmanagement.gke.io/managed: enabled lui est appliquée, Anthos Config Management le supprime.

    Quelqu'un ajoute ultérieurement une configuration pour l'objet RoleBinding job-creators. L'objet RoleBinding job-creators est recréé avec les propriétés définies dans la configuration.

Étape suivante