Repository – Übersicht

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

Voraussetzungen

  • 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

Anthos Config Management nutzt die dateisystemähnliche Struktur von Git, um zu ermitteln, 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. Weitere Informationen finden Sie im entsprechenden Thema.

cluster/

Das Verzeichnis cluster/ enthält Konfigurationen, die für ganze Cluster gelten, statt für einzelne Namespaces. Standardmäßig wird jede Konfiguration im cluster/-Verzeichnis auf jeden in Anthos Config Management registrierten Cluster angewendet. 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 begrenzen, 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 zur Konfiguration von Anthos Config Management finden Sie unter Anthos Config Management konfigurieren.

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