In anderen Kubernetes-Distributionen installieren
Auf dieser Seite erfahren Sie, wie Sie Config Connector in einer anderen Kubernetes-Distribution als der Google Kubernetes Engine (GKE) in Google Cloudinstallieren, z. B. GKE in AWS.
Hinweis
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Wählen Sie ein Google Cloud Projekt aus oder erstellen Sie eines, um den Config Connector zu installieren.
- Prüfen Sie, ob Sie die Berechtigungen zum Erstellen und Herunterladen von Dienstkonten für das Projekt haben.
- Erstellen oder identifizieren Sie einen Kubernetes-Cluster, in dem Config Connector noch nicht installiert ist.
Konfigurieren Sie
kubectl
, um eine Verbindung zum Cluster herzustellen.
Config Connector installieren
Wenn Sie Config Connector nach der Erstellung oder Identifikation eines Kubernetes-Clusters 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.
Ist die Ausgabe no
, so erstellen Sie einen ClusterRoleBinding
in Ihrem Cluster, mit dem Sie Rollen erstellen können:
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 in Ihrem Cloud-Zielrechnungskonto anmelden.
Die Ausgabe sollte den Text cluster-admin-binding created
enthalten. Wenn dieser Ausdruck nicht angezeigt wird, wenden Sie sich an den Administrator Ihres Cloud Billing-Kontos oder GKE-Clusters, um Berechtigungen anzufordern.
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 der nächsten Anleitung importieren Sie einen Google Cloud-Schlüssel für Anmeldedaten für Dienstkonten in den Kubernetes-Cluster. Das Importieren von Anmeldedaten für Dienstkonten direkt in einen Cluster gilt im Allgemeinen als unsicher, insbesondere wenn Sie Drittanbieter- oder benutzerdefinierte Arbeitslasten im selben Cluster ausführen. Bei diesem Ansatz können potenzielle Lücken bei der Eskalierung von Knoten zu Clustern ausgenutzt und das Google Cloud Dienstkonto über dieses Geheimnis imitiert werden. Wenn Sie einen GKE-Cluster verwenden, empfehlen wir die Workload Identity Federation for GKE.
Dienstkonto erstellen
So erstellen Sie ein Dienstkonto:
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 mit folgendem Befehl zu erstellen:
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.
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.
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:
Namespace
cnrm-system
erstellen:kubectl create namespace cnrm-system
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.
Entfernen Sie die Anmeldedaten aus Ihrem System:
rm key.json
Config Connector-Operator installieren
So installieren Sie den Config Connector-Operator:
Laden Sie die neueste TAR-Datei für Config Connector-Operator herunter:
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
Extrahieren Sie die TAR-Datei:
tar zxvf release-bundle.tar.gz
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:
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 stateIntoSpec: Absent
Ersetzen Sie SECRET_NAME durch den Namen des von Ihnen erstellten Secrets.
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 mitkubectl
.
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 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 korrekt installiert ist, sieht die Ausgabe 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:
gcloud storage 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