Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Konfigurationen zu einer Datenquelle hinzufügen

Auf dieser Seite wird erläutert, wie Sie Konfigurationen hinzufügen, die in einer Source of Truth gespeichert sind.

Config Sync wurde für Clusteroperatoren entwickelt, die viele Cluster verwalten. Wenn Sie Config Sync 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.

Wenn Config Sync diese Ressourcen verwaltet, werden Ihre registrierten Cluster mithilfe von Konfigurationen synchron gehalten. Eine Konfiguration ist eine YAML- oder JSON-Datei, die in einer "Source of Truth" gespeichert ist. Config Sync unterstützt Git-Repositories, OCI-Images und Helm-Diagramme (Vorschau) als "Source of Truth". Konfigurationen enthalten dieselben Konfigurationsdetails, die Sie mit dem Befehl kubectl apply manuell auf einen Cluster anwenden können. Sie können eine Konfiguration für jedes Kubernetes-Objekt erstellen, das in einem Cluster vorhanden sein kann. Einige Kubernetes-Objekte wie Secrets enthalten jedoch vertrauliche Informationen, die möglicherweise nicht für die Speicherung in einer "Source of Truth" geeignet sind. Sie sich gut überlegen, ob Sie diese Objekttypen mit Config Sync verwalten möchten.

Sie können Config Sync auch mit Config Connector verwenden, um Konfigurationen für Google Cloud-Ressourcen zu synchronisieren. Weitere Informationen zur Arbeit mit Config Connector finden Sie unter Google Cloud-Ressourcen mit Config Connector verwalten. Sie können die Installation von Config Sync und Config Connector vereinfachen, indem Sie Config Controller einrichten.

Auf dieser Seite erfahren Sie, wie Sie Ihrer Datenquelle Konfigurationen hinzufügen. Informationen zum Erstellen einer Konfiguration finden Sie unter Konfigurationen erstellen. Informationen zum Veröffentlichen eines OCI-Images finden Sie unter OCI-Artefakte aus Artifact Registry synchronisieren. Informationen zum Synchronisieren von Helm-Diagrammen finden Sie unter Helm-Diagramme aus Artifact Registry synchronisieren (Vorschau).

Organisation von Konfigurationen auswählen

Config Sync verwendet eine Source of Truth für den Konfigurationsspeicher und die Versionsverwaltung. Sie können zwei verschiedene Formate für Ihre „Source of Truth“ auswählen: unstrukturiert und hierarchisch.

Mit dem unstrukturierten Quellformat können Sie Konfigurationen auf eine beliebige Weise organisieren. Dieses Format kann besonders nützlich sein, wenn Sie Konfigurationen mit einem Tool wie Kustomize, kpt oder Helm organisieren oder generieren. Ein Beispiel für die Organisation Ihrer Konfigurationen finden Sie unter Beispielformat für ein unstrukturiertes Repository.

Das hierarchische oder strukturierte Quellformat unterteilt Konfigurationen in verschiedene Kategorien, damit Sie die Konfigurationen organisieren können. Die Kategorien sind Systemkonfiguration, Clustermetadaten, Clusterebene und Namespace-Konfiguration. Weitere Informationen zum hierarchischen Quellformat finden Sie unter Struktur des hierarchischen Repositorys.

Für die meisten Nutzer ist das unstrukturierte Format empfehlenswert. Wenn Sie RepoSync-Objekte konfigurieren, müssen Sie außerdem das unstrukturierte Quellformat verwenden.

Unterstützte Funktionen für unstrukturierte und hierarchische Formate

In der folgenden Tabelle werden die Unterschiede zwischen den unstrukturierten und hierarchischen Formaten hervorgehoben:

Features Unstrukturiertes Format (empfohlen) Hierarchisches Format
Wird als Format für ein RootSync-Objekt oder die zentrale Datenquelle verwendet Unterstützt Unterstützt
Wird als Format für ein RepoSync-Objekt verwendet Unterstützt Nicht unterstützt
Wird zusammen mit dem Hierarchy Controller verwendet Unterstützt Not recommended
ClusterSelector Unterstützt Unterstützt
NamespaceSelector Unterstützt Unterstützt
Befehl nomos hydrate Unterstützt mit dem Flag --source-format=unstructured Unterstützt
Befehl nomos init Nicht unterstützt Unterstützt
Befehl nomos vet Unterstützt mit dem Flag --source-format=unstructured Unterstützt
Alle anderen nomos-Befehle Unterstützt Unterstützt
Abstrakte Namespaces Nicht unterstützt Unterstützt
Repo objects Nicht unterstützt Unterstützt
HierarchyConfig-Objekte Nicht unterstützt Unterstützt
Hierarchische Namespaces im Hierarchy Controller Unterstützt Nicht unterstützt

Konfigurationen zur Datenquelle hinzufügen

Wenn Sie ein unstrukturiertes Format erstellen, können Sie diesem sofort Konfigurationen hinzufügen. Wenn Sie ein hierarchisches Format erstellen, verwenden Sie den Befehl nomos init, um die Quelle der Wahrheit zu initialisieren, oder erstellen Sie die Verzeichnisstruktur manuell.

Leere Verzeichnisse können nicht an ein Git-Repository übergeben werden. Erstellen Sie daher vor der Konfiguration von Config Sync Konfigurationen und fügen Sie sie Ihrem Repository hinzu.

Nachdem Sie die „Source of Truth“ erstellt und ihr Konfigurationen hinzugefügt haben, verwenden Sie den Befehl nomos vet, um die Struktur der Informationsquelle zu prüfen und die Syntax und Gültigkeit der Konfigurationen zu prüfen.

Config Sync für das Auslesen der Quelle der Wahrheit konfigurieren

Nachdem Sie eine „Source of Truth“ erstellt und Ihre Konfigurationen darin abgelegt haben, können Sie Config Sync für das Lesen aus der Quelle konfigurieren. Nachdem Sie diesen Schritt abgeschlossen haben, synchronisiert Config Sync Konfigurationen von Ihrer „Source of Truth“ mit Ihren Clustern.

Sie konfigurieren den Standort der Informationsquelle, wenn Sie Config Sync installieren, und können die Konfiguration von Config Sync später bearbeiten. Zusätzlich zum Standort der „Source of Truth“ können Sie einen Zweig oder ein Unterverzeichnis angeben, wenn die Quelle andere Inhalte als Konfigurationen enthält.

Wenn Sie ein hierarchisches Format verwenden und Config Sync manuell mit kubectl installieren, platzieren Sie die Konfiguration des Operators nicht im Verzeichnis system/ oder in einem der anderen reservierten Verzeichnisse wie cluster/ oder namespaces/. Wenn Sie die Konfiguration in einem der reservierten Verzeichnisse platzieren, schlägt nomos vet fehl und protokolliert einen Fehler wie KNV1033: IllegalSystemResourcePlacementError, KNV1038: IllegalKindInNamespacesError oder KNV1039: IllegalKindInClusterError.

Sie können Nutzern Zugriff auf die Bereitstellungsquelle eines bestimmten Produktteams gewähren. Wenn Sie einer Person jedoch Zugriff auf eine Bereitstellungsquelle der Wahrheit gewähren, erhält diese Person auch die gleiche RBAC wie der Abgleich, der für diese Wahrheitsquelle ausgeführt wird.

Informationen zum Konfigurieren der Authentifizierung und Autorisierung zwischen Config Sync und der „Source of Truth“ finden Sie im Installationsschritt zum Konfigurieren des git-creds-Secrets.

Objektmutationen ignorieren

Wenn Sie nicht möchten, dass Config Sync den Status des Objekts in einem Cluster behält, nachdem es vorhanden ist, können Sie dem Objekt die Annotation client.lifecycle.config.k8s.io/mutation: ignore hinzufügen, dass Config Sync Mutationen ignorieren soll.

Sie müssen die RootSync API und die RepoSync API aktivieren, um die Annotation verwenden zu können.

Das folgende Beispiel zeigt, wie Sie die Annotation einem Objekt hinzufügen:

metadata:
  annotations:
    client.lifecycle.config.k8s.io/mutation: ignore 

Sie können diese Annotation nicht manuell für verwaltete Objekte im Cluster ändern.

Nächste Schritte