In anderen Kubernetes-Distributionen installieren


Auf dieser Seite wird beschrieben, wie Sie Config Connector auf einer anderen Kubernetes-Distribution als der Google Kubernetes Engine (GKE) in Google Cloud installieren, z. B. GKE on AWS.

Hinweise

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

Config Connector installieren

Wenn Sie Config Connector nach der Erstellung oder Identifikation eines Kubernetes-Cluster in einer anderen Kubernetes-Umgebung installieren möchten, erstellen Sie zuerst ein IAM-Dienstkonto (Identity and Access Management) und dann die Config Connector-Komponenten in Ihrem Cluster.

Ein ClusterRoleBinding erstellen

Config Connector benötigt zum Erstellen von Kubernetes-Rollen entsprechende Berechtigungen.

Um zu prüfen, ob Sie Rollen erstellen können, führen Sie folgenden Befehl aus:

kubectl auth can-i create roles

Ist die Ausgabe yes, so fahren Sie mit dem Abschnitt Identität erstellen fort.

Wenn die Ausgabe no ist, erstellen Sie ein ClusterRoleBinding in Ihrem Cluster, um Rollen zu erstellen:

kubectl create clusterrolebinding cluster-admin-binding \
    --clusterrole cluster-admin \
    --user ACCOUNT_EMAIL

Ersetzen Sie ACCOUNT_EMAIL durch die E-Mail-Adresse, mit der Sie sich bei Ihrem Cloud-Rechnungskonto anmelden.

Die Ausgabe sollte den Ausdruck cluster-admin-binding created enthalten. Wenn diese Wortgruppe nicht angezeigt wird, wenden Sie sich an den Administrator Ihres Cloud-Rechnungskonto oder GKE-Clusters, um weitere Informationen zu den Berechtigungen zu erhalten.

Identität erstellen

Config Connector benötigt eine Cloud Identity, um mit anderen Ressourcen zu kommunizieren. Zum Einrichten der Identität erstellen Sie ein IAM-Dienstkonto und einen Dienstkontoschlüssel. Anschließend importieren Sie die Anmeldedaten des Schlüssels als Secret in jeden Cluster, der Config Connector ausführt.

In den nächsten Anleitungen importieren Sie einen Google Cloud-Dienstkonto-Anmeldedatenschlüssel in den Kubernetes-Cluster. Das direkte Importieren von Dienstkonto-Anmeldedaten in einen Cluster gilt im Allgemeinen als unsicher, insbesondere wenn Sie Arbeitslasten von Drittanbietern oder benutzerdefinierten Arbeitslasten im selben Cluster ausführen. Dieser Ansatz kann möglicherweise Schlupflöcher des Knoten-zu-Clusters nutzen und die Identität des Google Cloud-Dienstkontos über dieses Secret übernehmen. Wenn Sie einen GKE-Cluster verwenden, empfehlen wir die Verwendung von Workload Identity.

Dienstkonto erstellen

So erstellen Sie ein Dienstkonto:

  1. IAM-Dienstkonto erstellen. Wenn Sie bereits ein Dienstkonto haben, können Sie dieses verwenden, statt ein neues zu erstellen.

    Verwenden Sie die gcloud CLI, um das Dienstkonto zu erstellen, indem Sie den folgenden Befehl ausführen:

     gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
    

    SERVICE_ACCOUNT_NAME durch den Namen Ihres Dienstkontos ersetzen.

    Weitere Informationen zum Erstellen von Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.

  2. Gewähren Sie dem IAM-Dienstkonto erweiterte Berechtigungen für Ihr Projekt:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/owner"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID durch Ihre Google Cloud-Projekt-ID.
    • SERVICE_ACCOUNT_NAME durch den Namen Ihres Dienstkontos.
  3. Erstellen Sie einen Dienstkontoschlüssel und exportieren Sie dessen Anmeldedaten in eine Datei mit dem Namen key.json:

    gcloud iam service-accounts keys create --iam-account \
        SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com key.json
    

    Ersetzen Sie Folgendes:

    • SERVICE_ACCOUNT_NAME durch den Namen Ihres Dienstkontos.
    • PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

Anmeldedaten auf Ihren Cluster anwenden

Führen Sie folgende Schritte aus, um die Anmeldedaten auf den Cluster anzuwenden, auf dem Sie Config Connector ausführen möchten:

  1. Namespace cnrm-system erstellen:

    kubectl create namespace cnrm-system
    
  2. Importieren Sie die Anmeldeinformationen des Schlüssels als Secret.

    kubectl create secret generic SECRET_NAME \
        --from-file key.json \
        --namespace cnrm-system
    

    Ersetzen Sie SECRET_NAME durch den Namen, den Sie dem Secret geben möchten.

  3. Entfernen Sie die Anmeldedaten aus Ihrem System:

    rm key.json
    

Config Connector-Operator installieren

So installieren Sie den Config Connector-Operator:

  1. Laden Sie die neueste TAR-Datei für Config Connector-Operator herunter:

    gsutil cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
    
  2. Extrahieren Sie die TAR-Datei:

    tar zxvf release-bundle.tar.gz
    
  3. Installieren Sie den Config Connector-Operator in Ihrem Cluster:

    kubectl apply -f operator-system/configconnector-operator.yaml
    

Config Connector konfigurieren

Zur Konfiguration von Config Connector mithilfe des Operators erstellen Sie eine Konfigurationsdatei für CustomResource-ConfigConnector und wenden diese mit dem Befehl kubectl apply an.

So konfigurieren Sie Config Connector mit dem Operator:

  1. Kopieren Sie das folgende YAML-Manifest in eine Datei mit dem Namen configconnector.yaml:

    apiVersion: core.cnrm.cloud.google.com/v1beta1
    kind: ConfigConnector
    metadata:
      # the name is restricted to ensure that there is only ConfigConnector
      # instance installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    spec:
     mode: cluster
     credentialSecretName: SECRET_NAME
    

    Ersetzen Sie SECRET_NAME durch den Namen des von Ihnen erstellten Secrets.

  2. Wenden Sie die Konfiguration mit kubectl apply auf Ihren Cluster an:

    kubectl apply -f configconnector.yaml
    

Speicherort für Ressourcen angeben

Config Connector kann Ressourcen nach Projekt, Ordner oder Organisation organisieren. Dies entspricht dem Organisieren von Ressourcen mit Google Cloud.

Bevor Sie mit Config Connector Ressourcen erstellen, müssen Sie festlegen, wo die Ressourcen angelegt werden sollen. Um zu ermitteln, wo eine Ressource erstellt werden soll, nutzt Config Connector eine Annotation in der Ressourcenkonfiguration oder in einem vorhandenen Namespace. Weitere Informationen finden Sie unter Ressourcen organisieren.

Wenn Sie keinen für diesen Zweck geeigneten Namespace haben, erstellen Sie einen mit kubectl.
kubectl create namespace NAMESPACE

Ersetzen Sie dabei NAMESPACE durch Ihren Namespace-Namen. Beispiel: config-connector.

Wählen Sie den Tab aus, in dem Config Connector Ressourcen anlegen soll.

Projekt

Führen Sie folgenden Befehl aus, um Ressourcen in einem bestimmten Projekt zu erstellen:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID

Ersetzen Sie Folgendes:

  • NAMESPACE durch Ihren Namespace-Namen.
  • PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

Ordner

Führen Sie folgenden Befehl aus, um Ressourcen in einem bestimmten Ordner zu erstellen:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID

Ersetzen Sie Folgendes:

  • NAMESPACE durch Ihren Namespace-Namen.
  • FOLDER_ID durch Ihre Google Cloud-Ordner-ID.

Organisation

Führen Sie folgenden Befehl aus, um Ressourcen in einer bestimmten Organisation zu erstellen:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID

Ersetzen Sie Folgendes:

  • NAMESPACE durch Ihren Namespace-Namen.
  • ORGANIZATION_ID durch Ihre Google Cloud-Organisations-ID.

Wenn Sie Ihren Namespace mit Annotationen versehen, erstellt Config Connector Ressourcen im entsprechenden Projekt, im entsprechenden Ordner oder in der entsprechenden Organisation. Weitere Informationen dazu, wie Config Connector Kubernetes-Namespaces nutzt, finden Sie unter Kubernetes-Namespaces und Google Cloud-Projekte.

Installation prüfen

Config Connector führt alle seine Komponenten in einem Namespace mit dem Namen cnrm-system aus. Mit dem folgenden Befehl können Sie prüfen, ob die Pods bereit sind:

kubectl wait -n cnrm-system \
      --for=condition=Ready pod --all

Wenn Config Connector richtig installiert ist, sieht die Ausgabe in etwa so aus:

pod/cnrm-controller-manager-0 condition met

Config Connector aktualisieren

Um Config Connector zu aktualisieren, laden Sie die neueste Version des Config Connector-Operators herunter und installieren sie:

gsutil cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar zxvf release-bundle.tar.gz
kubectl apply -f operator-system/configconnector-operator.yaml

Config Connector deinstallieren

Entfernen Sie mit kubectl delete die Config Connector-CRDs und die Controllerkomponenten:

kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \
    --wait=true

Führen Sie folgenden Befehl aus, um den Config Connector-Operator zu deinstallieren:

kubectl delete -f operator-system/configconnector-operator.yaml  --wait=true

Nächste Schritte