Repositories

Auf dieser Seite wird beschrieben, wie Config Sync configs aus einem Git-Repository namens repo liest und die resultierende Konfiguration automatisch auf Ihre Cluster anwendet.

Wenn Sie mehr strukturelle Flexibilität wünschen (z. B. Unterordner von Ressourcen erstellen möchten), können Sie ein Repo erstellen, das dieser Struktur nicht folgt. Weitere Informationen finden Sie unter Unstrukturiertes Repository erstellen.

Vorbereitung

  • Machen Sie sich mit Git-Repositories und der git-Befehlszeile vertraut.
  • Machen Sie sich mit den Kubernetes-Objekten, die Sie konfigurieren möchten, und den Pflicht- und optionalen Feldern vertraut.

Struktur des Repositorys

Config Sync nutzt die dateisystemähnliche Struktur von Git, um zu ermitteln, für welche Cluster oder Namespaces eine config 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-Repository

Das Beispiel-Repository veranschaulicht die Struktur eines Repositorys.

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

foo-corp
├── cluster
│   ├── namespace-reader-clusterrolebinding.yaml
│   ├── namespace-reader-clusterrole.yaml
│   ├── pod-creator-clusterrole.yaml
│   └── pod-security-policy.yaml
├── clusterregistry
│   ├── cluster-1.yaml
│   ├── cluster-2.yaml
│   ├── clusterselector-1.yaml
│   └── clusterselector-2.yaml
├── namespaces
│   ├── audit
│   │   └── namespace.yaml
│   ├── online
│   │   └── shipping-app-backend
│   │       ├── pod-creator-rolebinding.yaml
│   │       ├── quota.yaml
│   │       ├── shipping-dev
│   │       │   ├── job-creator-rolebinding.yaml
│   │       │   ├── job-creator-role.yaml
│   │       │   ├── namespace.yaml
│   │       │   └── quota.yaml
│   │       ├── shipping-prod
│   │       │   └── namespace.yaml
│   │       └── shipping-staging
│   │           └── namespace.yaml
│   ├── sre-rolebinding.yaml
│   ├── sre-supported-selector.yaml
│   └── viewers-rolebinding.yaml
└── system
    └── hierarchy-config.yaml

Nächste Schritte