Auf dieser Seite wird beschrieben, wie Sie Ihre Kubernetes-Cluster manuell bei Google Cloud registrieren.
Hinweis
Bevor Sie Ihre Kubernetes-Cluster zum ersten Mal bei Google Cloud registrieren, müssen Sie die folgenden Voraussetzungen für Netzwerk, Google Cloud und Kubernetes erfüllen:
Netzwerkverbindung sicherstellen Wenn Sie einen GKE-Cluster registrieren, der in Google Cloud ausgeführt wird, ist dies standardmäßig der Fall.
-
- Installieren Sie Cloud SDK 281.0.0 oder höher.
- Autorisieren Sie
gcloud
für den Zugriff auf Google Cloud. - Weisen Sie dem Nutzer, der den Cluster registriert, die erforderlichen Google Cloud IAM-Rollen zu.
- Aktivieren Sie die erforderlichen APIs in Ihrem Google Cloud-Projekt:
- Verwenden Sie
gcloud
, um ein Google Cloud-Dienstkonto zu erstellen. Wenn Sie sich über die Cloud Console für Anthos in Google Cloud-Clustern registrieren möchten, wird standardmäßig ein Dienstkonto für Sie erstellt. Sie müssen also keins im Voraus erstellen.
Cluster registrieren
gcloud
GKE in Google Cloud-Cluster registrieren
Während der Registrierung des Clusters können Sie den Connect Agent entweder mit Workload Identity oder mit einem Google Cloud-Dienstkonto konfigurieren.
Cluster mit Workload Identity registrieren (empfohlen)
Führen Sie einen der folgenden Befehle aus, um den Cluster zu registrieren:
gcloud beta container hub memberships register MEMBERSHIP_NAME \ --gke-uri=GKE_URI \ --enable-workload-identity
oder
gcloud beta container hub memberships register MEMBERSHIP_NAME \ --gke-cluster=GKE_CLUSTER \ --enable-workload-identity
Dabei gilt:
- MEMBERSHIP_NAME ist der ausgewählte Mitgliedschaftsname, der sich eindeutig auf den im Hub registrierten Cluster bezieht.
- GKE_URI ist der URI des GKE-Clusters, z. B.
https://container.googleapis.com/projects/my-gke-project/locations/us-central1-a/clusters/my-gke-cluster
. Sie können den URI durch Ausführen vongcloud container clusters list --uri
abrufen. - GKE_CLUSTER:
location/name
des GKE-Clusters aus dem aktuellen Projekt. Der Speicherort kann eine Zone oder Region sein, z. B.us-central1-a/my-gke-cluster
.
Cluster mit Dienstkonto registrieren
Führen Sie einen der folgenden Befehle aus:
gcloud container hub memberships register MEMBERSHIP_NAME \ --gke-uri=GKE_URI \ --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH
oder
gcloud container hub memberships register MEMBERSHIP_NAME \ --gke-cluster=GKE_CLUSTER \ --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH
Dabei gilt:
- MEMBERSHIP_NAME ist der ausgewählte Mitgliedschaftsname, der sich eindeutig auf den im Hub registrierten Cluster bezieht.
- SERVICE_ACCOUNT_KEY_PATH ist der lokale Dateipfad zur JSON-Datei des privaten Schlüssels des Dienstkontos, die als Teil der Voraussetzungen heruntergeladen wurde.
Dieser Dienstkontoschlüssel wird als Secret mit dem Namen
creds-gcp
im Namespacegke-connect
gespeichert. - GKE_URI ist der URI des GKE-Clusters, z. B.
https://container.googleapis.com/projects/my-gke-project/locations/us-central1-a/clusters/my-gke-cluster
. Sie können den URI durch Ausführen vongcloud container clusters list --uri
abrufen. - GKE_CLUSTER:
location/name
des GKE-Clusters aus dem aktuellen Projekt. Der Speicherort kann eine Zone oder Region sein, z. B.us-central1-a/my-gke-cluster
.
Nicht-GKE-, Anthos Clusters on AWS- oder Anthos Clusters on VMware-Cluster registrieren
Führen Sie dazu diesen Befehl aus:
gcloud container hub memberships register MEMBERSHIP_NAME \ --context=KUBECONFIG_CONTEXT \ --kubeconfig=KUBECONFIG_PATH \ --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH
Dabei gilt:
- MEMBERSHIP_NAME ist der Name der Mitgliedschaft, den Sie auswählen und der eindeutig dem Cluster entspricht, der im Hub registriert wird.
- SERVICE_ACCOUNT_KEY_PATH ist der lokale Dateipfad zur JSON-Datei des privaten Schlüssels des Dienstkontos, die als Teil der Voraussetzungen heruntergeladen wurde.
Dieser Dienstkontoschlüssel wird als Secret mit dem Namen
creds-gcp
im Namespacegke-connect
gespeichert. - KUBECONFIG_CONTEXT: der Clusterkontext des zu registrierenden Clusters, wie er in der Datei "kubeconfig" angezeigt wird. Sie erhalten diesen Wert über die Befehlszeile, indem Sie
kubectl config current-context
ausführen. - KUBECONFIG_PATH ist der lokale Dateipfad, in dem das kubeconfig mit einem Eintrag für den registrierten Cluster gespeichert ist.
Dies ist der Standardwert
$KUBECONFIG
, wenn diese Umgebungsvariable gesetzt ist; andernfalls ist dies der Standardwert für$HOME/.kube/config
.
Console
Anthos on Google Cloud-Cluster registrieren
Diese Anleitung gilt für GKE-Cluster in Google Cloud in Projekten mit aktiviertem Anthos.
So registrieren Sie einen Cluster:
Rufen Sie in der Google Cloud Console die Seite Anthos-Cluster auf. Auf dieser Seite werden alle registrierten Cluster angezeigt.
Klicken Sie auf Vorhandenen Cluster registrieren.
Klicken Sie neben dem nicht registrierten Cluster auf Registrieren, um ihn Ihrem Environ hinzuzufügen.
Geben Sie das Dienstkonto an, das Sie bei der Registrierung des Clusters verwenden möchten. Wir empfehlen, das Standardverhalten beizubehalten und ein neues Dienstkonto zu erstellen.
- Wenn Sie Neues Dienstkonto erstellen auswählen:
- Geben Sie eine Dienstkonto-ID an, um das neue Dienstkonto zu identifizieren.
- Wählen Sie aus, ob Sie den Dienstkontoschlüssel als JSON-Datei herunterladen möchten. Wir empfehlen, das Standardverhalten beizubehalten und den Schlüssel herunterzuladen, da Sie ihn später nicht mehr herunterladen können.
- Wenn Sie Vorhandenes Dienstkonto verwenden auswählen, fügen Sie den Dienstkontoschlüssel des Kontos im JSON-Format ein.
- Wenn Sie Neues Dienstkonto erstellen auswählen:
Optional: Geben Sie einen neuen Mitgliedschaftsnamen für Ihren Cluster an. Standardmäßig ist der Name der Mitgliedschaft eines Clusters der aktuelle Name. Wenn der Cluster-Name in Ihrem Projekt jedoch nicht eindeutig ist, müssen Sie einen neuen eindeutigen Mitgliedschaftsnamen angeben, da alle Cluster eine eindeutige Kennung innerhalb ihres Environs benötigen.
Zum Registrieren des Clusters klicken Sie auf Senden.
Anderen Cluster registrieren
Diese Anleitung gilt für Nicht-GKE-, Anthos Clusters on AWS, Anthos Clusters on VMware und alle anderen GKE-Cluster.
So registrieren Sie einen Cluster:
Rufen Sie in der Google Cloud Console die Seite Anthos-Cluster auf. Auf dieser Seite werden alle registrierten Cluster angezeigt.
Klicken Sie auf Vorhandenen Cluster registrieren.
Klicken Sie auf Externen Cluster hinzufügen.
Geben Sie im Feld Clustername den Namen des Clusters ein, den Sie registrieren möchten.
Optional: Google Cloud-Labels zum Cluster hinzufügen.
Klicken Sie auf Anmeldebefehl generieren.
Bearbeiten Sie den Befehl
gcloud
, der auf der Seite angezeigt wird, in Cloud Shell oder wo Sie die Anmeldedaten für Ihr Dienstkonto gespeichert haben. Sie müssen die folgenden Werte angeben:- CLUSTER_CONTEXT ist der Kontext des Clusters, wie er in der Datei "kubeconfig" angezeigt wird. Sie erhalten diesen Wert über die Befehlszeile, indem Sie
kubectl config current-context
ausführen. - KUBECONFIG_PATH der lokale Dateipfad ist, in dem Ihre "kubeconfig"-Datei gespeichert ist. Dies ist der Standardwert
$KUBECONFIG
, wenn diese Umgebungsvariable gesetzt ist; andernfalls ist dies der Standardwert für$HOME/.kube/config
. - LOCAL_KEY_PATH ist der Pfad zu Ihrer Dienstkonto-Schlüsseldatei.
Mit diesem Befehl wird der Connect Agent in Ihrem Nutzercluster bereitgestellt. Wenn der Connect Agent eine Verbindung zu Google Cloud herstellt und Ihr Cluster registriert ist, wird eine Bestätigungsmeldung auf der Seite angezeigt.
- CLUSTER_CONTEXT ist der Kontext des Clusters, wie er in der Datei "kubeconfig" angezeigt wird. Sie erhalten diesen Wert über die Befehlszeile, indem Sie
Klicken Sie auf Labels festlegen oder auf Überspringen, wenn Sie keine Labels festgelegt haben.
Erweiterte Registrierungsoptionen (nur Befehlszeile)
Connect Agent-Manifest herunterladen
Wenn Sie das Connect Agent-Installationsmanifest herunterladen möchten, ohne den Agent bereitzustellen, übergeben Sie zum Beispiel das Flag --manifest-output-file
an den Befehl gcloud container hub memberships register
, um das Manifest vor der Installation zu prüfen oder zu bearbeiten. Beispiel:
--manifest-output-file=[MANIFEST_FILE_PATH]
Dabei ist [MANIFEST_FILE_PATH] der lokale Dateipfad, in dem das Connect Agent-Installationsmanifest gespeichert werden soll.
Wenn Sie diese Option verwenden, wird der Connect Agent nicht im Cluster bereitgestellt. Wenden Sie das heruntergeladene Manifest manuell auf Ihren Cluster an, um den Connect-Agent bereitzustellen.
Proxyserver verwenden
Um einen Proxyserver zu konfigurieren, übergeben Sie das Flag --proxy
an den Befehl gcloud container hub memberships register
. Beispiele:
--proxy=[URL]
Dabei ist [URL] die Proxyadresse.
Der Connect-Agent unterstützt nur CONNECT-basierte HTTP- und HTTPS-Proxys und akzeptiert IP-Adressen und Hostnamen. Achten Sie darauf, das Protokoll anzugeben, das dem Proxytyp in der URL entspricht. So übergeben Sie beispielsweise einen HTTPS-Hostnamen:
--proxy=https://mycorpproxy.com:443
Wenn Sie nichts anderes angeben, verwendet der Connect Agent Port 3128 für den Proxy.
Wenn Ihr Proxy eine Autorisierung erfordert, achten Sie darauf, Ihre Anmeldedaten zu übergeben. Beispiel:
--proxy=http://user:password@10.10.10.10:8888
Connect Agent in einem Cluster mit Windows- und Linux-Knoten installieren
Der Connect Agent muss auf einem Linux-Knoten ausgeführt werden. Bei der Installation in einem gemischten Cluster mit Linux- und Windows-Knoten können Sie sicherstellen, dass der Connect Agent auf einem Linux-Knoten bereitgestellt wird, indem Sie der Deployment-Definition einen entsprechenden Knotenselektor hinzufügen.
Führen Sie den folgenden Befehl aus, um das Deployment mit dem entsprechenden Knotenselektor zu aktualisieren:
kubectl patch deployment \
$(kubectl get deployment -o=jsonpath='{.items[*].metadata.name}' -n gke-connect) \
-p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/os":"linux"}}}}}' -n gke-connect
Mit dem folgenden Befehl können Sie prüfen, ob die Aktualisierung erfolgreich war:
kubectl get deployment -o=jsonpath='{.items[].spec.template.spec.nodeSelector}' -n gke-connect
Der Befehl sollte Folgendes zurückgeben:
{"kubernetes.io/os":"linux"}