Anthos Config Management installieren

Diese Seite richtet sich an Plattformadministratoren.

Auf dieser Seite wird die Installation von Anthos Config Management erläutert.

Mit Anthos Config Management können Sie Richtlinien und Konfiguration auf Ihre Anthos-Cluster deklarativ anwenden, indem Sie Ihre neue Konfiguration automatisch aus einem zentralen Git-Repository bereitstellen. Weitere Informationen finden Sie in der Dokumentation zu Anthos Config Management.

Sie können Anthos Config Management über Management Center oder mit kubectl installieren. Sie benötigen ein Git-Repository, bevor Sie Anthos Config Management installieren.

Über Management Center installieren

Richten Sie Anthos Config Management in Ihrem Nutzercluster ein, indem Sie den Tab Config Management aufrufen und auf Einrichtung klicken. Folgen Sie dann der Anleitung auf der Seite, um die Einrichtung abzuschließen.

Sie können auch eine vorhandene Anthos Config Management-Installation aktualisieren oder upgraden. Klicken Sie auf den Link in der Spalte Version, um die vorhandene Konfiguration zu ändern.

Mit kubectl installieren

Die Installation von Anthos Config Management mit kubectl erfolgt in zwei Schritten. Richten Sie zuerst SSH-Schlüssel für Config Sync ein, um sich bei Ihrem Git-Repository zu authentifizieren. Anschließend installieren Sie die Anthos Config Management-Ressourcen ConfigManagementFeatureSpec und ConfigManagementBinding im Cluster.

Sie können auch kubectl verwenden, um eine vorhandene Anthos Config Management-Installation zu aktualisieren oder zu upgraden.

SSH-Schlüssel einrichten

Ein SSH-Schlüsselpaar besteht aus zwei Dateien, einem öffentlichen und einem privaten Schlüssel. Der öffentliche Schlüssel hat in der Regel die Erweiterung .pub.

  1. Erstellen Sie ein SSH-Schlüsselpaar, damit sich Config Sync bei Ihrem Git-Repository authentifizieren kann. Sie können ein einziges Schlüsselpaar für alle Cluster oder ein Schlüsselpaar pro Cluster verwenden, je nach Ihren Sicherheits- und Complianceanforderungen.

    Mit dem folgenden Befehl wird ein 4.096-Bit-RSA-Schlüssel erstellt. Niedrigere Werte werden nicht empfohlen:

    ssh-keygen -t rsa -b 4096 \
      -C GIT_REPOSITORY_USERNAME \
      -N '' \
      -f /path/to/KEYPAIR_FILENAME
    

    Dabei gilt:

    • GIT_REPOSITORY_USERNAME: Nutzername, mit dem sich Config Sync beim Repository authentifizieren soll.
    • /path/to/KEYPAIR_FILENAME: ein Pfad, an den das Schlüsselpaar ausgegeben werden soll.
  2. Konfigurieren Sie Ihr Repository so, dass der neu erstellte öffentliche Schlüssel erkannt wird. Weitere Informationen finden Sie in der Dokumentation Ihres Git-Hostanbieters.

  3. Fügen Sie den privaten Schlüssel einem neuen Secret-Objekt im Nutzercluster hinzu:

    kubectl create ns config-management-system --kubeconfig=USER_CLUSTER_KUBECONFIG && \
    kubectl create secret generic git-creds --kubeconfig=USER_CLUSTER_KUBECONFIG \
     --namespace=config-management-system \
     --from-file=ssh=/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
    

    Dabei gilt:

    • USER_CLUSTER_KUBECONFIG: Die Konfigurationsdatei für den Nutzercluster. Diese finden Sie in Management Center.
    • /path/to/KEYPAIR_PRIVATE_KEY_FILENAME: Der Name des privaten Schlüssels (die Datei ohne das Suffix .pub).
  4. Löschen Sie den privaten Schlüssel vom lokalen Datenträger oder schützen Sie ihn anderweitig.

ConfigManagementFeatureSpec und ConfigManagementBinding konfigurieren

Erstellen Sie als Nächstes eine ConfigManagementFeatureSpec-Ressource in Ihrem Cluster:

kubectl apply -f CONFIG_MANAGEMENT_YAML --kubeconfig=ADMIN_OIDC_KUBECONFIG

Dabei gilt:

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
  name: config-management-spec-sample
  namespace: anthos-management-center
spec:
  version: "1.12.0"
  git:
    syncRepo: "git@GIT_HOST_ADDRESS:REPO_NAME.git"
    policyDir: "."
    secretType: "ssh"
    syncBranch: "master"
    syncRev: "HEAD"
    syncWait: 15
  policyController:
    enabled: true
---
apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementBinding
metadata:
  name: config-management-binding-sample
  namespace: anthos-management-center
spec:
  configs:
  - configRef:
      name: config-management-spec-sample
      namespace: anthos-management-center
    placement:
      clusterIDs:
      - "CLUSTER-NAME"

Dabei gilt:

  • GIT_HOST_ADDRESS: Hostadresse des Git-Repositorys.
  • REPO_NAME: Der Name des Git-Repositorys.
  • CLUSTER-NAME: Der Name des Clusters.

Updaten und upgraden

Sie können Anthos Config Management durch Ändern der entsprechenden ConfigManagementFeatureSpec aktualisieren oder upgraden.

Wenn Sie beispielsweise das Feature Unstrukturiertes Repository aktivieren möchten, aktualisieren Sie ConfigManagementFeatureSpec:

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
  name: config-management-spec-sample
  namespace: anthos-management-center
spec:
  version: "1.12.0"
  sourceFormat: "unstructured"
  git:
    syncRepo: "git@<YOUR_GIT_HOST_ADDRESS>:<YOUR_UNSTRUCTURED_REPO>.git"
    policyDir: "."
    secretType: "ssh"
    syncBranch: "master"
    syncRev: "HEAD"
    syncWait: 15
  policyController:
    enabled: true

Status von Anthos Config Management ansehen

Sie können den Anthos Config Management-Status anzeigen, indem Sie die Ressource ConfigManagementBinding abfragen.

kubectl get ConfigManagementBinding -o \
jsonpath="{range .items[*].status.bindingItemStatuses[*]}{'\n'}{['clusterID', 'configRef', 'conditions']}" \
--namespace=anthos-management-center \
--kubeconfig=ADMIN_OIDC_KUBECONFIG \
| grep CLUSTER-NAME

Dabei gilt:

Hier sehen Sie eine Beispielausgabe mit Anthos Config Management im fehlerfreien Status:

target-user-cluster-1 {"name":"new-spec-f75y8","namespace":"anthos-management-center"} [{"lastTransitionTime":"2021-05-27T18:06:27Z","message":"","observedGeneration":1,"reason":"Healthy","status":"True","type":"Ready"}]

Nächste Schritte