Hierarchisches Repository – Übersicht

Auf dieser Seite wird beschrieben, wie Config Sync die Konfigurationen aus einem hierarchischen Repository liest und die resultierende Konfiguration automatisch auf Ihre Cluster anwendet.

Wenn Sie mehr Flexibilität bei der Struktur wünschen, z. B. wenn Sie Unterordner von Ressourcen erstellen möchten, können Sie ein unstrukturiertes Repository erstellen. Unstrukturierte Repositories werden für die meisten Nutzer empfohlen und können mit dem Hierarchy Controller kombiniert werden, um eine Namespace-Übernahme ähnlich der von hierarchischen Repositories zu ermöglichen.

Wenn Sie wissen möchten, wie Config Sync ein hierarchisches Repository verwendet, sollten Sie mit Git-Repositories und der git-Befehlszeile vertraut sein.

Struktur des hierarchischen Repositories

Bei hierarchischen Repositories nutzt Config Sync die dateisystemähnliche Struktur von Git und ermittelt damit, für welche Cluster oder Namespaces eine Konfiguration relevant ist.

namespaces/

Das Verzeichnis namespaces/ enthält Konfigurationsdateien für Namespaces und Namespace-bezogene Objekte. Die Struktur in namespaces/ ist der Mechanismus, der die Namespace-Übernahme fördert. Mithilfe eines NamespaceSelector können Sie einschränken, welche Namespaces eine Konfiguration erben dürfen.

cluster/

Das Verzeichnis cluster/ enthält Konfigurationsdateien, die für ganze Cluster gelten, statt für einzelne Namespaces. Standardmäßig gilt jede Konfiguration im Verzeichnis cluster/ für jeden in Config Sync registrierten Cluster. Mit einem ClusterSelector können Sie festlegen, auf welche Cluster sich eine Konfiguration auswirken soll.

clusterregistry/

Das Verzeichnis clusterregistry/ ist optional und enthält Konfigurationen für ClusterSelectors. ClusterSelectors schränken ein, auf welche Cluster eine Konfiguration angewendet wird. Sie werden in Konfigurationen in den Verzeichnissen cluster/ und namespaces/ referenziert.

system/

Das Verzeichnis system/ enthält Konfigurationen für den Operator. Weitere Informationen zum Konfigurieren von Config Sync finden Sie unter Config Sync installieren.

Beispiel für ein hierarchisches Repository

Das hierarchische Beispiel-Repository veranschaulicht die Struktur eines Repositorys.

Beachten Sie die verschachtelten abstrakten Namespace-Verzeichnisse eng/ und rnd/ in namespaces/. Diese Namespace-Verzeichnisse sind abstrakt, da sie nicht direkt eine Konfiguration für einen Namespace enthalten.

namespace-inheritance/config/
├── cluster
│   ├── admin-clusterrole.yaml
│   ├── namespace-reader-clusterrolebinding.yaml
│   ├── namespace-reader-clusterrole.yaml
│   ├── rbac-viewer-clusterrole.yaml
│   └── rbac-viewers.yaml
├── namespaces
│   ├── eng
│   │   ├── analytics
│   │   │   └── namespace.yaml
│   │   ├── eng-roleinding.yaml
│   │   ├── eng-role.yaml
│   │   ├── gamestore
│   │   │   ├── bob-rolebinding.yaml
│   │   │   ├── inventory-configmap.yaml
│   │   │   └── namespace.yaml
│   │   ├── network-policy-allow-gamestore-ingress.yaml
│   │   ├── quota.yaml
│   │   └── selectors.yaml
│   ├── network-policy-default-deny-all.yaml
│   ├── rnd
│   │   ├── incubator-1
│   │   │   ├── incubator-1-admin-role.yaml
│   │   │   └── namespace.yaml
│   │   └── incubator-2
│   │       └── namespace.yaml
│   └── viewers-rolebinding.yaml
└── system
    ├── README.md
    └── repo.yaml

Nächste Schritte