Konfigurationen – Übersicht

Diese Seite beschreibt Konfigurationen, die Dateien, die Anthos Config Management aus Git liest und automatisch auf Ihre Cluster anwendet. Sie können eine Konfiguration erstellen und diese in Ihr Repository übertragen.

Anthos Config Management nutzt Konfigurationen, um Ihre registrierten Cluster zu synchronisieren. Eine Konfiguration ist eine YAML- oder JSON-Datei, die in Ihrem Repository gespeichert ist und dieselben Konfigurationsdetails enthält, die Sie mit dem Befehl kubectl apply manuell auf einen Cluster anwenden können. In diesem Thema wird erläutert, wie Konfigurationen funktionieren, wie sie geschrieben werden und wie sie mit Anthos Config Management auf Ihre registrierten Cluster angewendet werden.

Anthos Config Management wurde für Clusterbetreiber entwickelt, die viele Cluster verwalten. Wenn Sie Anthos Config Management für die Verwaltung von Namespaces, Roles, RoleBindings, ResourceQuotas und anderen wichtigen Kubernetes-Objekten in Ihrer gesamten Flotte verwenden, können Sie gewährleisten, dass Ihre Cluster die geltenden Unternehmens- und Compliancestandards erfüllen. Sie können eine Konfiguration für jedes Kubernetes-Objekt erstellen, das in einem Cluster vorhanden sein kann.

Mit Konfigurationen arbeiten

Im folgenden Entscheidungsbaum werden die Ergebnisse verschiedener Konfigurationsänderungen in einer hypothetischen Gruppe von Clustern veranschaulicht, die von Anthos Config Management verwaltet werden. Unter dem Diagramm werden einige hypothetische Aktionen von Clusterbetreibern und die Ergebnisse dieser Aktionen erläutert. Anhand dieser Beispiele wird die Funktionsweise von Anthos Config Management beschrieben.

Dieser Cluster verwendet das Beispiel-Repository Der Cluster ist bereits beim Operator registriert.

Beispielhafter Entscheidungsbaum zur Veranschaulichung von Aktionen und Ergebnissen mit Anthos Config Management

  • Anthos Config Management wendet Konfigurationen nur an, wenn mindestens eine der folgenden Bedingungen erfüllt ist:

    • Im Repository ist eine relevante Konfiguration vorhanden.
    • Die Annotation configmanagement.gke.io/managed: enabled wird auf das Kubernetes-Objekt angewendet.

    Der Cluster foo-corp verfügt über eine ClusterRole mit dem Namen pod-accountant, die nicht mit der Annotation configmanagement.gke.io/managed: enabled versehen ist, und im Repository ist keine Konfiguration für das ClusterRole-Objekt vorhanden. Anthos Config Management konfiguriert die pod-accountant ClusterRole nicht.

  • Anthos Config Management wendet eine relevante Änderung automatisch an, wenn sie dem Repository zugewiesen wird.

    Ein Cluster-Administrator schreibt eine Konfiguration für die Datei cluster/quota-viewer-clusterrole.yaml im Repository fest. Diese Konfiguration definiert eine ClusterRole mit dem Namen quota-viewer. Da die Konfiguration im Verzeichnis cluster/ erstellt wird, sind alle registrierten Cluster betroffen. Anthos Config Management erkennt die neu festgeschriebene Konfiguration und wendet sie an. Die quota-viewer ClusterRole ist jetzt im Cluster vorhanden, hat die Annotation configmanagement.gke.io/managed: enabled und ist mit dem Inhalt von quota-viewer-clusterrole.yaml synchronisiert.

    Einige Zeit später löscht jemand die cluster/quota-viewer-clusterrole.yaml-Datei aus dem Repository. Anthos Config Management erkennt diese Änderung und entfernt die quota-viewer ClusterRole aus dem Cluster.

  • Sie können mit der Verwaltung eines vorhandenen Objekts in a beginnen, indem Sie die Annotationconfigmanagement.gke.io/managed: enabled hinzufügen.

    Der foo-corp-Cluster hat ein Namespace-Verzeichnis mit dem Namen shipping-dev. In diesem Namespace-Verzeichnis ist eine Konfiguration für eine Rolle mit dem Namen job-creator vorhanden, die die Annotation configmanagement.gke.io/managed: enabled enthält. Ein Nutzer aktualisiert die Datei namespaces/dev/shipping-dev/job-creator-role.yaml. Der Operator erkennt die Änderung und wendet sie an.

  • Sie können Konfigurationsänderungen mit Anthos Config Management gruppiert und hierarchisch auf Namespaces anwenden.

    Der foo-corp-Cluster hat eine RoleBinding mit dem Namen pod-creator und eine entsprechende /namespaces/pod-creator/pod-creator.yaml-Datei im Repository. Das Diagramm zeigt, dass shipping-prod, shipping-staging und shipping-dev Namespaces sind (sie haben jeweils eine namespace.yaml-Datei, die einen Namespace definiert), die sich im abstrakten Namespace-Verzeichnis shipping-dev-backend befinden. Jeder dieser Namespaces übernimmt die RoleBinding pod-creator.

    Einige Zeit später ändert ein Nutzer die RoleBinding pod-creator im Namespace-Verzeichnis shipping-prod. Der Operator erkennt die Änderung und aktualisiert pod-creator entsprechend der Konfiguration im Repository.

    Irgendwann entfernt ein Nutzer die pod-creator-Konfiguration aus dem Repository. Anthos Config Management erkennt die Änderung und entfernt die RoleBinding pod-creator aus jedem der drei Namespaces.

  • Mit Anthos Config Management können Sie Änderungen manuell anwenden und Objekte nur verwalten, wenn sie die Annotation configmanagement.gke.io/managed: enabled enthalten.

    Ein Nutzer erstellt manuell eine neue Rolle mit dem Namen secret-admin im Namespace shipping-prod. Im Repository ist keine Konfiguration für die Rolle secret-admin vorhanden. Die Rolle secret-admin enthält keine Annotation configmanagement.gke.io/managed: enabled. Anthos Config Management führt keine Aktion aus.

    Einige Zeit später fügt ein Nutzer die configmanagement.gke.io/managed:enabled-Annotation manuell zur secret-admin-Rolle hinzu. Im Repository ist noch keine entsprechende Konfiguration vorhanden. Daher löscht Anthos Config Management die Rolle secret-admin aus dem Namespace.

  • Anthos Config Management erstellt fehlende Namespaces, wenn für sie Konfigurationen vorhanden sind.

    Ein Nutzer übergibt eine neue Konfiguration für den Namespace audit, der im Cluster nicht vorhanden ist. Anthos Config Management erstellt den Namespace audit im Cluster und wendet die Annotation configmanagement.gke.io/managed: enabled darauf an.

  • Anthos Config Management kann Konfigurationen für einen Namespace verwalten, der nicht die Annotation configmanagement.gke.io/managed: enabled enthält.

    Der Namespace shipping-dev ist im Cluster vorhanden, enthält jedoch nicht die Annotation configmanagement.gke.io/managed: enabled. Das Namespace-Verzeichnis shipping-dev im Repository verfügt jedoch über eine RoleBinding mit dem Namen job-creators, die die Annotation configmanagement.gke.io/managed: enabled enthält.

    Ein Nutzer fügt dem Repository eine Konfiguration für den Namespace shipping-dev hinzu, aber es gibt keine Konfiguration für die RoleBinding job-creators. Da für das RoleBinding keine Konfiguration vorhanden ist, das RoleBinding jedoch die Annotationconfigmanagement.gke.io/managed: enabled enthält, löscht Anthos Config Management das RoleBinding.

    Später fügt jemand eine Konfiguration für das RoleBinding job-creators hinzu. Die RoleBinding job-creators wird mit den in der Konfiguration definierten Attributen neu erstellt.

Nächste Schritte