Dies ist der zweite Teil eines Leitfadens, der Sie durch eine kleine Proof-of-Concept-Installation von Google Distributed Cloud führt. Der erste Teil ist Minimale Infrastruktur einrichten. Hier erfahren Sie, wie Sie Ihre IP-Adressen planen und die erforderliche vSphere- und Google Cloud-Infrastruktur für Ihre Bereitstellung einrichten. Dieses Dokument baut auf der Einrichtung und Planung auf, die Sie im vorherigen Abschnitt ausgeführt haben. Es zeigt Ihnen, wie Sie mit einfachen Vorlagen, die Sie hier in diesem Dokument ausfüllen können, eine Administratorworkstation, einen Administratorcluster und einen Nutzercluster in Ihrer vSphere-Umgebung erstellen. Anschließend können Sie eine Anwendung bereitstellen.
Wie bei der Einrichtung der Infrastruktur bei dieser einfachen Installation sind die Cluster, die Sie mit diesem Dokument eingerichtet haben, möglicherweise nicht für Ihre tatsächlichen Produktionsanforderungen und Anwendungsfälle geeignet. Weitere Informationen, Best Practices und Anleitungen für Produktionsinstallationen finden Sie in den Installationsanleitungen.
Hinweise
Achten Sie darauf, dass Sie Ihre vSphere- und Google Cloud-Umgebung wie unter Minimale Infrastruktur einrichten beschrieben eingerichtet haben.
Wenn Sie den Nutzercluster mit Terraform erstellen möchten, benötigen Sie Terraform entweder auf Ihrer Administratorworkstation oder auf einem anderen Computer.
Verfahrensübersicht
Dies sind die wichtigsten Schritte bei dieser Einrichtung:
Melden Sie sich in der Google Cloud CLI mit einem Konto an, das die erforderlichen Berechtigungen zum Erstellen von Dienstkonten hat.
Sammeln Sie Informationen, die Sie zur Konfiguration von Google Distributed Cloud benötigen, einschließlich Ihres vCenter-Nutzernamens und -Passworts sowie der IP-Adressen, die Sie im vorherigen Abschnitt vorbereitet haben.
Erstellen Sie eine Administratorworkstation mit den Ressourcen und Tools, die Sie zum Erstellen von Administrator- und Nutzerclustern benötigen, einschließlich der zusätzlichen Dienstkonten, die Sie zum Abschließen der Einrichtung benötigen.
Erstellen Sie einen Administratorcluster, um den Nutzercluster zu verwalten und zu aktualisieren.
Erstellen Sie einen Nutzercluster, um Ihre Arbeitslasten auszuführen.
1. In der Google Cloud CLI anmelden
Für die Einrichtung von Google Distributed Cloud sind mehrere Dienstkonten mit unterschiedlichen Berechtigungen erforderlich. Sie müssen sich in der Google Cloud CLI mit einem Konto anmelden, das die erforderlichen Berechtigungen zum Erstellen und Konfigurieren von Dienstkonten hat, da gkeadm
bei dieser Einrichtung das aktuelle Attribut account
der gcloud CLI verwendet.
Melden Sie sich in der gcloud CLI an. Sie können jedes Google-Konto verwenden, aber es muss die erforderlichen Berechtigungen haben. Wenn Sie den vorherigen Teil dieser Anleitung befolgt haben, haben Sie sich wahrscheinlich bereits mit einem entsprechenden Konto angemeldet, um das Dienstkonto für den Komponentenzugriff zu erstellen.
gcloud auth login
Prüfen Sie, ob das Attribut
account
der gcloud CLI korrekt festgelegt ist:gcloud config list
Die Ausgabe enthält die Werte des SDK-Attributs
account
. Beispiel:[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
Prüfen Sie, ob die neuesten gcloud CLI-Komponenten installiert sind:
gcloud components update
Je nachdem, wie Sie die gcloud CLI installiert haben, wird möglicherweise die folgende Meldung angezeigt: "Sie können diese Aktion nicht ausführen, da der Google Cloud CLI-Komponentenmanager für diese Installation deaktiviert ist. Mit dem folgenden Befehl können Sie bei dieser Installation dasselbe Ergebnis erzielen:" Folgen Sie der Anleitung, um den Befehl zu kopieren und einzufügen, um die Komponenten zu aktualisieren.
2. Informationen einholen
Verwenden Sie die Informationen, die Sie unter Minimale Infrastruktur einrichten vorbereitet haben, um die Platzhalter in der folgenden Tabelle zu bearbeiten:
vSphere-Details | |
---|---|
Der Nutzername Ihres vCenter-Kontos | USERNAME |
Das Passwort Ihres vCenter-Kontos | PASSWORD |
Ihre vCenter Server-Adresse | ADDRESS |
Der Pfad zum Root-CA-Zertifikat für vCenter Server auf der Maschine, mit der Sie Ihre Administratorworkstation erstellen | CA_CERT_PATH |
Der Name Ihres vSphere-Rechenzentrums | DATA_CENTER |
Der Name Ihres vSphere-Clusters | VSPHERE_CLUSTER |
Der Name oder Pfad Ihres vSphere-Ressourcenpools. Weitere Informationen finden Sie unter vcenter.resourcePool. | RESOURCE_POOL |
Der Name Ihres vSphere-Datenspeichers | DATASTORE |
Den Namen Ihres vSphere-Netzwerks | NETWORK |
IP-Adressen | |
Eine IP-Adresse für Ihre Administrator-Workstation | ADMIN_WS_IP |
Vier IP-Adressen für die Knoten Ihres Administratorclusters. Dazu gehört eine Adresse für einen zusätzlichen Knoten, der während des Upgrades und der Aktualisierung verwendet werden kann. |
ADMIN_CONTROL_PLANE_NODE_IP_1 ADMIN_CONTROL_PLANE_NODE_IP_2 ADMIN_CONTROL_PLANE_NODE_IP_3 |
Eine IP-Adresse für den Knoten der Steuerungsebene im Nutzercluster. |
USER_CONTROL_PLANE_NODE_IP |
Vier IP-Adressen für Ihre Nutzerclusterknoten. Dazu gehört eine Adresse für einen zusätzlichen Knoten, der während des Upgrades und der Aktualisierung verwendet werden kann. |
USER_NODE_IP_1 USER_NODE_IP_2 USER_NODE_IP_3 USER_NODE_IP_4 |
Eine virtuelle IP-Adresse (VIP) für den Kubernetes API-Server des Administratorclusters | ADMIN_CONTROL_PLANE_VIP |
Eine virtuelle IP-Adresse für den Kubernetes API-Server des Nutzerclusters | USER_CONTROL_PLANE_VIP |
Eine virtuelle IP-Adresse für eingehenden Traffic für den Nutzercluster | USER_INGRESS_VIP |
Zwei VIPs für Dienste vom Typ LoadBalancer in Ihrem Nutzercluster. |
SERVICE_VIP_1 SERVICE_VIP_2 |
Die IP-Adresse eines DNS-Servers, der über Ihre Administratorworkstation und Clusterknoten erreichbar ist | DNS_SERVER_IP |
Die IP-Adresse eines NTP-Servers, der über Ihre Administratorworkstation und Clusterknoten erreichbar ist | NTP_SERVER_IP |
Die IP-Adresse des Standardgateways für das Subnetz, das Ihre Administratorworkstation und Clusterknoten enthält | DEFAULT_GATEWAY_IP |
Die Netzmaske für das Subnetz, das Ihre Administratorworkstation und Clusterknoten enthält Beispiel: 255.255.255.0 |
NETMASK |
Wenn sich Ihr Netzwerk hinter einem Proxyserver befindet, die URL des Proxyservers. Weitere Informationen finden Sie unter Proxy. Geben Sie dies bei Bedarf manuell in die Konfigurationsdatei der Administratorworkstation ein. | PROXY_URL |
CIDR-Bereiche für Dienste und Pods | |
Der Administratorcluster und der Nutzercluster benötigen jeweils einen CIDR-Bereich für Dienste und einen CIDR-Bereich für Pods. Verwenden Sie die folgenden vorab ausgefüllten Werte, es sei denn, Sie müssen sie ändern, um eine Überschneidung mit anderen Elementen in Ihrem Netzwerk zu vermeiden: | |
Ein CIDR-Bereich für Dienste im Administratorcluster | 10.96.232.0/24 |
Einen CIDR-Bereich für Pods im Administratorcluster | 192.168.0.0/16 |
Einen CIDR-Bereich für Dienste im Nutzercluster | 10.96.0.0/20 |
Einen CIDR-Bereich für Pods im Nutzercluster | 192.168.0.0/16 |
Google Cloud-Details | |
Die ID des ausgewählten Cloud-Projekts | PROJECT_ID |
Der Pfad zur JSON-Schlüsseldatei für das Dienstkonto für den Komponentenzugriff, das Sie im vorherigen Abschnitt eingerichtet haben, auf dem Computer, auf dem Sie Ihre Administratorworkstation erstellen. | COMPONENT_ACCESS_SA_KEY_PATH |
Die E-Mail-Adresse, die mit Ihrem Google Cloud-Konto verknüpft ist. Beispiel: alex@example.com . |
GOOGLE_ACCOUNT_EMAIL |
3. Administrator-Workstation erstellen
Bevor Sie Cluster erstellen können, müssen Sie eine Administratorworkstation erstellen und dann über SSH eine Verbindung zu ihr herstellen. Die Administrator-Workstation ist eine eigenständige VM mit den Tools und Ressourcen, die Sie zum Erstellen von GKE Enterprise-Clustern in Ihrer vSphere-Umgebung benötigen. Die Administratorworkstation wird mit dem gkeadm
-Befehlszeilentool erstellt.
gkeadm herunterladen
Laden Sie gkeadm
in Ihr aktuelles Verzeichnis herunter:
gsutil cp gs://gke-on-prem-release/gkeadm/1.29.100-gke.248/linux/gkeadm ./ chmod +x gkeadm
Sie benötigen die Version gkeadm
(die auch die Version von Google Distributed Cloud ist), um Ihre Administrator- und Nutzercluster-Konfigurationsdateien zu erstellen. Führen Sie folgenden Befehl aus, um die Version von gkeadm
zu prüfen:
./gkeadm version
Die folgende Beispielausgabe zeigt die Version.
gkeadm 1.29.0 (1.29.100-gke.248)
Sie können zwar eine andere Version von gkeadm
herunterladen, in dieser Anleitung wird jedoch davon ausgegangen, dass Sie 1.29.100-gke.248 installieren, und verwendet diese Version in allen Konfigurationsdateien und Befehlen.
Datei mit Anmeldedaten erstellen
Erstellen und speichern Sie eine Datei mit dem Namen credential.yaml
und folgendem Inhalt in Ihrem aktuellen Verzeichnis:
apiVersion: v1 kind: CredentialFile items: - name: vCenter username: "USERNAME" password: "PASSWORD"
Konfigurationsdatei für Administratorworkstation erstellen
Erstellen und speichern Sie eine Datei mit dem Namen admin-ws-config.yaml
und dem folgenden Inhalt im aktuellen Verzeichnis:
gcp: componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY_PATH" vCenter: credentials: address: "ADDRESS" fileRef: path: "credential.yaml" entry: "vCenter" datacenter: "DATA_CENTER" datastore: "DATASTORE" cluster: "VSPHERE_CLUSTER" network: "NETWORK" resourcePool: "RESOURCE_POOL" caCertPath: "CA_CERT_PATH" proxyUrl: "" adminWorkstation: name: "minimal-installation-admin-workstation" cpus: 4 memoryMB: 8192 diskGB: 50 dataDiskName: gke-on-prem-admin-workstation-data-disk/minimal-installation-data-disk.vmdk dataDiskMB: 512 network: ipAllocationMode: "static" hostConfig: ip: "ADMIN_WS_IP" gateway: "DEFAULT_GATEWAY_IP" netmask: "NETMASK" dns: - "DNS_SERVER_IP" proxyUrl: "" ntpServer: ntp.ubuntu.com
Admin-Workstation erstellen
Erstellen Sie Ihre Administrator-Workstation mit dem folgenden Befehl:
./gkeadm create admin-workstation --auto-create-service-accounts
Wenn Sie diesen Befehl ausführen:
- Erstellt Ihre Administratorworkstation
- Erstellt automatisch zusätzliche Dienstkonten, die Sie für Ihre Installation benötigen
- Erstellt Vorlagenkonfigurationsdateien für Ihre Administrator- und Nutzercluster
Die Ausgabe enthält detaillierte Informationen zum Erstellen Ihrer Administrator-Workstation und einen Befehl, mit dem Sie eine SSH-Verbindung zu Ihrer Administrator-Workstation herstellen können. Beispiel:
... Admin workstation is ready to use. Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation This file is required for future upgrades SSH into the admin workstation with the following command: ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49 ********************************************************************
In der vorherigen Ausgabe ist die IP-Adresse ein Beispiel. Die IP-Adresse Ihrer Administrator-Workstation wird unterschiedlich sein. Notieren Sie sich die IP-Adresse Ihrer Administrator-Workstation. Sie benötigen sie im nächsten Schritt.
Weitere Informationen zum Erstellen einer Administrator-Workstation finden Sie unter Administrator-Workstation erstellen.
Verbindung zu Ihrer Administrator-Workstation herstellen
Verwenden Sie den in der vorherigen Ausgabe angezeigten Befehl, um eine SSH-Verbindung zu Ihrer Administrator-Workstation herzustellen. Beispiel:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49
Wenn Sie diesen Befehl noch einmal benötigen, generiert gkeadm
eine Datei namens gke-admin-ws-...
in dem Verzeichnis auf Ihrem lokalen Computer, auf dem Sie gkeadm create admin-workstation
ausgeführt haben.
Hier finden Sie Details zu Ihrer Administrator-Workstation, einschließlich des SSH-Befehls.
Geben Sie auf Ihrer Administratorworkstation exit
ein, um die SSH-Verbindung zu beenden und zu Ihrem lokalen Computer zurückzukehren.
Audit-Logging-Schlüssel auf Ihre Administratorworkstation kopieren
Im vorherigen Abschnitt haben Sie eine JSON-Schlüsseldatei für Ihr Audit-Logging-Dienstkonto erstellt.
Kopieren Sie die JSON-Schlüsseldatei in das Basisverzeichnis auf Ihrer Administratorworkstation. Beispiel für einen Speicherort auf Ihrem lokalen Computer:
scp -i /usr/local/google/home/me/.ssh/gke-admin-workstation audit-logging-key.json ubuntu@172.16.20.49:~
Dateien auf Ihrer Administratorworkstation ansehen
Stellen Sie noch einmal eine SSH-Verbindung zu Ihrer Administratorworkstation her.
Listen Sie auf Ihrer Administrator-Workstation die Dateien im Basisverzeichnis auf:
ls -1
Die Ausgabe sollte Folgendes enthalten:
admin-cluster.yaml
, eine Vorlagenkonfigurationsdatei zum Erstellen Ihres Administratorclusters.user-cluster.yaml
, eine Vorlagenkonfigurationsdatei zum Erstellen Ihres Nutzerclusters.- Die vCenter-Zertifikatsdatei, die Sie in der Konfiguration der Administratorworkstation angegeben haben
- Die Datei
credential.yaml
, die Sie in der Konfiguration der Administratorworkstation angegeben haben. - Die JSON-Schlüsseldatei für Ihr Audit-Logging-Dienstkonto.
- JSON-Schlüsseldateien für zwei Dienstkonten, die
gkeadm
für Sie erstellt hat: ein Connect-Register-Dienstkonto und ein Logging-Monitoring-Dienstkonto sowie die Schlüsseldatei für das Dienstkonto für den Komponentenzugriff, das Sie zuvor erstellt haben.
Beispiel:
admin-cluster.yaml admin-ws-config.yaml audit-logging-key.json sa-key.json connect-register-sa-2203040617.json credential.yaml log-mon-sa-2203040617.json logs vc01-cert.pem user-cluster.yaml
Sie müssen einige dieser Dateinamen in Ihren Konfigurationsdateien angeben, um Cluster zu erstellen. Verwenden Sie in der folgenden Tabelle die Dateinamen als Werte für die Platzhalter:
Dateiname des Connect-Register-Dienstkontoschlüssels Beispiel: connect-register-sa-2203040617.json |
CONNECT_REGISTER_SA_KEY |
Name der Schlüsseldatei des Logging-Monitoring-Dienstkontos Beispiel: log-mon-sa-2203040617.json |
LOG_MON_SA_KEY |
Dateiname des Audit-Logging-Dienstkontoschlüssels Beispiel: audit-logging-key.json |
AUDIT_LOG_SA_KEY |
Dateiname des Dienstkontoschlüssels für den Komponentenzugriff Beispiel: sa-key.json |
COMPONENT_ACCESS_SA_KEY |
Name der vCenter-Zertifikatsdatei Beispiel: vc01-cert.pem |
CA_CERT_FILE |
4. Administratorcluster erstellen
Nachdem Sie nun eine Administratorworkstation mit vCenter und anderen Details konfiguriert haben, können Sie damit einen Administratorcluster in Ihrer vSphere-Umgebung erstellen. Sie müssen eine SSH-Verbindung zu Ihrer Administrator-Workstation herstellen, wie zuvor beschrieben, bevor Sie mit diesem Schritt beginnen. Alle folgenden Befehle werden auf der Administratorworkstation ausgeführt.
Konfigurationsdatei für Administratorcluster erstellen
Öffnen Sie admin-cluster.yaml
und ersetzen Sie den Inhalt durch folgenden Code:
apiVersion: v1 kind: AdminCluster name: "minimal-installation-admin-cluster" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.29.100-gke.248-full.tgz" vCenter: address: "ADDRESS" datacenter: "DATA_CENTER" cluster: "VSPHERE_CLUSTER" resourcePool: "RESOURCE_POOL" datastore: "DATASTORE" caCertPath: "CA_CERT_FILE" credentials: fileRef: path: "credential.yaml" entry: "vCenter" network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "NETWORK" controlPlaneIPBlock: netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "ADMIN_CONTROL_PLANE_NODE_IP_1" hostname: "admin-cp-vm-1" - ip: "ADMIN_CONTROL_PLANE_NODE_IP_2" hostname: "admin-cp-vm-2" - ip: "ADMIN_CONTROL_PLANE_NODE_IP_3" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "ADMIN_CONTROL_PLANE_VIP" kind: "MetalLB" adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 antiAffinityGroups: enabled: false componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY" gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY" disableVsphereResourceMetrics: false cloudAuditLogging: projectID: "PROJECT_ID" clusterLocation: us-central1 serviceAccountKeyPath: "AUDIT_LOG_SA_KEY"
Konfigurationsdatei für den Administratorcluster validieren
Überprüfen Sie, ob die Konfigurationsdatei für den Administratorcluster gültig ist und zum Erstellen des Clusters verwendet werden kann:
gkectl check-config --config admin-cluster.yaml
Betriebssystem-Images in vSphere importieren
Führen Sie gkectl prepare
mit Ihrer fertigen Konfigurationsdatei aus, um Knoten-Betriebssystem-Images in vSphere zu importieren:
gkectl prepare --config admin-cluster.yaml --skip-validation-all
Durch das Ausführen dieses Befehls werden die Images in vSphere importiert und als VM-Vorlagen markiert, einschließlich des Images für Ihren Administratorcluster.
Es kann einige Minuten dauern, bis dieser Befehl zurückgegeben wird.
Erstellen Sie den Administratorcluster.
Erstellen Sie den Administratorcluster:
gkectl create admin --config admin-cluster.yaml
Erstellen eines Administratorclusters nach einem Fehler fortsetzen
Wenn die Erstellung des Administratorclusters fehlschlägt oder abgebrochen wird, können Sie den Befehl create
noch einmal ausführen:
gkectl create admin --config admin-cluster.yaml
Suchen Sie die kubeconfig-Datei des Administratorclusters
Mit dem Befehl gkectl create admin
wird im aktuellen Verzeichnis die kubeconfig-Datei kubeconfig
erstellt. Sie benötigen diese kubeconfig-Datei später, um mit Ihrem Administratorcluster zu interagieren.
Prüfen Sie, ob der Administratorcluster ausgeführt wird
Prüfen Sie, ob der Administratorcluster ausgeführt wird:
kubectl get nodes --kubeconfig kubeconfig
Die Ausgabe zeigt die Knoten des Administratorclusters. Beispiel:
admin-cp-vm-1 Ready control-plane,master ... admin-cp-vm-2 Ready control-plane,master ... admin-cp-vm-3 Ready control-plane,master ...
RBAC-Autorisierung aktivieren
Führen Sie den folgenden Befehl aus, um Ihrem Nutzerkonto die Kubernetes-Rolle clusterrole/cluster-admin
für den Cluster zu gewähren:
gcloud container fleet memberships generate-gateway-rbac \ --membership=minimal-installation-admin-cluster \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=kubeconfig \ --context=minimal-installation-admin-cluster \ --apply
Die Ausgabe dieses Befehls sieht in etwa so aus (zur besseren Lesbarkeit gekürzt):
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: kubeconfig, context: minimal-installation-admin-cluster Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
Mit der RBAC-Richtlinie können Sie sich unter anderem mit Ihrer Google-Identität in der Google Cloud Console bei Ihrem Cluster anmelden, um weitere Clusterdetails zu sehen.
Automatische Registrierung bei der GKE On-Prem API
Da die GKE On-Prem API in Ihrem Projekt aktiviert ist, wird der Cluster automatisch bei der GKE On-Prem API registriert. Wenn Sie Ihren Administratorcluster bei der GKE On-Prem API registrieren, können Sie mit den Standardtools Google Cloud Console, Google Cloud CLI oder Terraform Nutzercluster erstellen, aktualisieren, aktualisieren und löschen, die vom Administratorcluster verwaltet werden. Wenn Sie den Cluster registrieren, können Sie auch gcloud
-Befehle ausführen, um Informationen über Ihren Cluster abzurufen.
5. Nutzercluster erstellen
Dieser Abschnitt enthält Schritte zum Erstellen des Nutzerclusters mit der Console, gkectl
, Terraform oder der gcloud CLI.
gkectl
Prüfen Sie, ob Sie wie zuvor beschrieben eine SSH-Verbindung zu Ihrer Administratorworkstation haben, bevor Sie mit diesem Verfahren beginnen. Alle der folgenden Befehle werden auf der Administrator-Workstation ausgeführt.
IP-Blockdatei des Nutzerclusters erstellen
Erstellen Sie eine Datei mit dem Namen
user-ipblock.yaml
.Kopieren Sie den folgenden Inhalt, fügen Sie ihn in
user-ipblock.yaml
ein und speichern Sie die Datei:blocks: - netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "USER_NODE_IP_1" hostname: "user-vm-1" - ip: "USER_NODE_IP_2" hostname: "user-vm-2" - ip: "USER_NODE_IP_3" hostname: "user-vm-3" - ip: "USER_NODE_IP_4" hostname: "user-vm-4"
Nutzercluster-Konfigurationsdatei erstellen
Erstellen Sie eine Datei mit dem Namen
user-cluster.yaml
im selben Verzeichnis wieuser-ipblock.yaml
.Kopieren Sie den folgenden Inhalt, fügen Sie ihn in
user-cluster.yaml
ein und speichern Sie die Datei:
apiVersion: v1 kind: UserCluster name: "minimal-installation-user-cluster" gkeOnPremVersion: "1.29.100-gke.248" enableControlplaneV2: true network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" serviceCIDR: "10.96.0.0/20" podCIDR: "192.168.0.0/16" controlPlaneIPBlock: netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "USER_CONTROL_PLANE_NODE_IP" hostname: "cp-vm-1" loadBalancer: vips: controlPlaneVIP: "USER_CONTROL_PLANE_VIP" ingressVIP: "USER_INGRESS_VIP" kind: "MetalLB" metalLB: addressPools: - name: "uc-address-pool" addresses: - "USER_INGRESS_VIP/32" - "SERVICE_VIP_1/32" - "SERVICE_VIP_2/32" enableDataplaneV2: true nodePools: - name: "uc-node-pool" cpus: 4 memoryMB: 8192 replicas: 3 enableLoadBalancer: true antiAffinityGroups: enabled: false gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY" disableVsphereResourceMetrics: false autoRepair: enabled: true
Konfiguration validieren und Cluster erstellen
Prüfen Sie, ob die Konfigurationsdatei des Nutzerclusters gültig ist und zum Erstellen des Clusters verwendet werden kann:
gkectl check-config --kubeconfig kubeconfig --config user-cluster.yaml
Nutzercluster erstellen:
gkectl create cluster --kubeconfig kubeconfig --config user-cluster.yaml
Die Erstellung eines Clusters dauert etwa 30 Minuten.
Suchen Sie die kubeconfig-Datei des Nutzerclusters.
Mit dem Befehl gkectl create cluster
wird im aktuellen Verzeichnis die kubeconfig-Datei USER_CLUSTER_NAME-kubeconfig
erstellt. Sie benötigen diese kubeconfig-Datei später, um mit Ihrem Nutzercluster zu interagieren.
Prüfen Sie, ob Ihr Nutzercluster ausgeführt wird
Prüfen Sie, ob Ihr Nutzercluster ausgeführt wird:
kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG
Ersetzen Sie USER_CLUSTER_KUBECONFIG durch den Pfad der kubeconfig-Datei des Nutzerclusters.
Die Ausgabe zeigt die Knoten des Nutzerclusters. Beispiel:
cp-vm-1 Ready control-plane,master user-vm-1 Ready user-vm-2 Ready user-vm-3 Ready
RBAC-Autorisierung aktivieren
Führen Sie den folgenden Befehl aus, um Ihrem Nutzerkonto die Kubernetes-Rolle clusterrole/cluster-admin
für den Cluster zu gewähren:
gcloud container fleet memberships generate-gateway-rbac \ --membership=minimal-installation-user-cluster \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=USER_CLUSTER_KUBECONFIG \ --context=minimal-installation-user-cluster \ --apply
Die Ausgabe dieses Befehls sieht in etwa so aus (zur besseren Lesbarkeit gekürzt):
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: kubeconfig, context: minimal-installation-admin-cluster Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
Mit der RBAC-Richtlinie können Sie sich unter anderem mit Ihrer Google-Identität in der Google Cloud Console bei Ihrem Cluster anmelden, um weitere Clusterdetails zu sehen.
Automatische Registrierung bei der GKE On-Prem API
Da die GKE On-Prem API in Ihrem Projekt aktiviert ist, wird der Cluster automatisch bei der GKE On-Prem API registriert. Auf diese Weise können Sie die Console oder die gcloud CLI verwenden, um Clusterdetails aufzurufen und den Clusterlebenszyklus zu verwalten. Sie können beispielsweise gcloud
-Befehle ausführen, um Informationen zu Ihrem Nutzercluster abzurufen.
Console
Rufen Sie in der Google Cloud Console die Seite GKE on VMware-Cluster erstellen auf.
Wählen Sie das Google Cloud-Projekt aus, in dem Sie den Cluster erstellen möchten. Das ausgewählte Projekt wird auch als Flotten-Hostprojekt verwendet. Dies muss dasselbe Projekt sein, bei dem der Administratorcluster registriert ist. Nachdem der Nutzercluster erstellt wurde, wird er automatisch bei der Flotte des ausgewählten Projekts registriert.
In den folgenden Abschnitten werden Sie durch die Konfiguration des Nutzerclusters geführt.
Vorbereitung
Machen Sie sich mit den Informationen auf der Seite Voraussetzungen vertraut.
Klicke unten auf der Seite auf Weiter.
Clustergrundlagen
Geben Sie unter Name einen Namen für den Nutzercluster ein, z. B.
minimal-installation-user-cluster
.Wählen Sie für Administratorcluster die Option minimal-installation-admin-cluster aus.
Wählen Sie im Feld GCP API Location (GCP-API-Standort) den Wert us-central1 aus.
Wählen Sie als Version 1.29.100-gke.248 aus.
Sie müssen weder den Abschnitt Autorisierung noch den Abschnitt vCenter-Konfiguration öffnen.
Klicken Sie auf Weiter.
Steuerungsebene
Geben Sie unter Knoten-IPs der Steuerungsebene für Gateway den Wert DEFAULT_GATEWAY_IP ein.
Geben Sie für Subnetzmaske den Wert NETMASK ein.
Geben Sie unter IP-Adressen für IP-Adresse 1 den Wert USER_CONTROL_PLANE_NODE_IP ein. Lassen Sie Hostname 1 leer.
Klicken Sie auf Weiter.
Netzwerk
In diesem Abschnitt geben Sie die IP-Adressen für die Knoten, Pods und Services Ihres Clusters an. Ein Nutzercluster muss eine IP-Adresse für jeden Knoten und eine zusätzliche IP-Adresse für einen temporären Knoten haben, der während Clusterupgrades, Aktualisierungen und automatischer Reparaturen benötigt wird. Weitere Informationen finden Sie unter Wie viele IP-Adressen benötigt ein Nutzercluster?.
Achten Sie darauf, dass unter IP-Adressen der Worker-Knoten für IP-Modus die Option Statisch ausgewählt ist.
Geben Sie für Gateway den Wert DEFAULT_GATEWAY_IP ein.
Geben Sie für Subnetzmaske den Wert NETMASK ein.
Geben Sie unter IP-Adressen folgende Adressen ein:
- USER_NODE_IP_1
- USER_NODE_IP_2
- USER_NODE_IP_3
- USER_NODE_IP_4
Lassen Sie die Felder Hostname leer.
Geben Sie für Dienst-CIDR den Wert 10.96.0.0/20 ein. Geben Sie für Pod-CIDR den Wert 192.168.0.0/16 ein.
Geben Sie für DNS Server 1 den Wert DNS_SERVER_IP ein.
Geben Sie für NTP-Server 1 den Wert NTP_SERVER_IP ein.
Lassen Sie DNS-Suchdomain leer.
Klicken Sie auf Weiter.
Load-Balancer
Wählen Sie als Load-Balancer-Typ die Option Bundled with MetalLB aus.
Verwenden Sie unter Adresspools den Standardnamen.
Geben Sie unter IP-Adressen für IP-Adressbereich 1 USER_INGRESS_VIP/32 ein.
Klicken Sie auf IP-Adressbereich hinzufügen. Geben Sie für IP-Adressbereich 1 SERVICE_VIP_1/32 ein.
Klicken Sie auf IP-Adressbereich hinzufügen. Geben Sie für IP-Adressbereich 2 SERVICE_VIP_2/32 ein.
Wählen Sie unter Zuweisung von IP-Adressen die Option Automatisch aus.
Entfernen Sie das Häkchen neben Fehlerhafte IP-Adressen vermeiden.
Geben Sie unter Virtuelle IP-Adressen für Virtuelle IP-Adresse der Steuerungsebene USER_CONTROL_PLANE_VIP ein. VIP für eingehenden Traffic ist bereits ausgefüllt.
Klicken Sie auf Weiter.
Features
Behalten Sie alle Standardeinstellungen bei.
Klicken Sie auf Weiter.
Knotenpools
Behalten Sie alle Standardeinstellungen bei.
Klicken Sie auf Prüfen und abschließen, um den Nutzercluster zu erstellen. Das Erstellen des Nutzerclusters dauert mindestens 15 Minuten. Die Console zeigt Statusmeldungen an, während sie die Einstellungen überprüft und den Cluster in Ihrem Rechenzentrum erstellt.
Wenn beim Überprüfen der Einstellungen ein Fehler auftritt, wird in der Konsole eine Fehlermeldung angezeigt, mit der Sie das Konfigurationsproblem beheben und noch einmal versuchen können, den Cluster zu erstellen.
Weitere Informationen zu möglichen Fehlern und deren Behebung finden Sie unter Fehlerbehebung bei Clustern, die in der GKE On-Prem API registriert sind.
Terraform
In diesem Abschnitt erfahren Sie, wie Sie mit Terraform einen Nutzercluster und einen Knotenpool erstellen. Weitere Informationen und Beispiele finden Sie hier:
Erstellen Sie ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tf
haben. In dieser Anleitung heißt die Dateimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Prüfen Sie die Terraform-Ressource des Nutzerclusters:
Das folgende Beispiel für eine Terraform-Ressource enthält die Werte, die Sie im vorherigen Abschnitt in die Planungstabelle eingegeben haben.
resource "google_gkeonprem_vmware_cluster" "cluster-basic" { name = "minimal-installation-user-cluster" project = "PROJECT_ID" location = "us-central1" admin_cluster_membership = "projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster" description = "User cluster config with MetalLB, static IPs, and Controlplane V2" enable_control_plane_v2 = "true" on_prem_version = "1.29.100-gke.248" control_plane_node { cpus = 4 memory = 8192 replicas = 1 } network_config { service_address_cidr_blocks = ["10.96.0.0/20"] pod_address_cidr_blocks = ["192.168.0.0/16"] host_config { dns_servers = ["DNS_SERVER_IP"] ntp_servers = ["NTP_SERVER_IP"] } static_ip_config { ip_blocks { netmask = "NETMASK" gateway = "DEFAULT_GATEWAY_IP" ips { ip = "USER_NODE_IP_1" hostname = "user-vm-1" } ips { ip = "USER_NODE_IP_2" hostname = "user-vm-2" } ips { ip = "USER_NODE_IP_3" hostname = "user-vm-3" } ips { ip = "USER_NODE_IP_4" hostname = "user-vm-4" } } } control_plane_v2_config { control_plane_ip_block { netmask = "NETMASK" gateway = "DEFAULT_GATEWAY_IP" ips { ip = "USER_CONTROL_PLANE_NODE_IP" hostname = "cp-vm-1" } } } } load_balancer { vip_config { control_plane_vip = "USER_CONTROL_PLANE_VIP" ingress_vip = "USER_INGRESS_VIP" } metal_lb_config { address_pools { pool = "uc-address-pool" manual_assign = "true" addresses = ["USER_INGRESS_VIP/32", "SERVICE_VIP_1/32", "SERVICE_VIP_2/32"] } } } authorization { admin_users { username = "GOOGLE_ACCOUNT_EMAIL" } } provider = google-beta } resource "google_gkeonprem_vmware_node_pool" "my-node-pool-1" { name = "uc-node-pool" project = "PROJECT_ID" vmware_cluster = "minimal-installation-user-cluster" location = "us-central1" config { replicas = 3 image_type = "ubuntu_containerd" enable_load_balancer = "true" } depends_on = [ google_gkeonprem_vmware_cluster.cluster-basic ] provider = google-beta }
Kopieren Sie die Terraform-Ressource nach
main.tf
und speichern Sie die Datei.Initialisieren und erstellen Sie den Terraform-Plan:
terraform init
Terraform installiert alle erforderlichen Bibliotheken, z. B. den Google Cloud-Anbieter.
Überprüfen Sie die Konfiguration und nehmen Sie bei Bedarf Änderungen vor:
terraform plan
Wenden Sie den Terraform-Plan an, um den Nutzercluster zu erstellen:
terraform apply
Geben Sie bei Aufforderung
yes
ein.Das Erstellen des einfachen Nutzerclusters und Knotenpools dauert etwa 15 Minuten (oder länger, je nach Netzwerk).
gcloud
Erstellen Sie den Cluster:
gcloud container vmware clusters create minimal-installation-user-cluster \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster \ --location=us-central1 \ --version=1.29.100-gke.248 \ --admin-users=GOOGLE_ACCOUNT_EMAIL \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-config-address-pools='pool=uc-address-pool,avoid-buggy-ips=False,manual-assign=False,addresses=USER_INGRESS_VIP/32;SERVICE_VIP_1/32;SERVICE_VIP_2/32' \ --control-plane-vip=USER_CONTROL_PLANE_VIP \ --ingress-vip=USER_INGRESS_VIP \ --static-ip-config-ip-blocks='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_NODE_IP_1;USER_NODE_IP_2;USER_NODE_IP_3;USER_NODE_IP_4' \ --dns-servers=DNS_SERVER_IP \ --ntp-servers=NTP_SERVER_IP \ --enable-control-plane-v2 \ --enable-dataplane-v2 \ --control-plane-ip-block='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_CONTROL_PLANE_NODE_IP'
Die Ausgabe des Befehls sieht in etwa so aus:
Waiting for operation [projects/example-project-12345/locations/us-central1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
In der Beispielausgabe ist der String operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
die OPERATION_ID
des Vorgangs mit langer Ausführungszeit. Mit dem folgenden Befehl können Sie den Status des Vorgangs ermitteln:
gcloud container vmware operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=us-central1
Weitere Informationen finden Sie unter gcloud container vmware-Vorgänge.
Das Erstellen des Nutzerclusters dauert mindestens 15 Minuten. Sie können den Cluster in der Konsole auf der Übersichtsseite für Google Kubernetes Engine-Cluster anzeigen lassen.
Erstellen Sie einen Knotenpool:
gcloud container vmware node-pools create uc-node-pool \ --cluster=minimal-installation-user-cluster \ --project=PROJECT_ID \ --location=us-central1 \ --image-type=ubuntu_containerd \ --boot-disk-size=40 \ --cpus=4 \ --memory=8192 \ --replicas=3 \ --enable-load-balancer
Nächste Schritte
Sie haben diese Minimalinstallation von Google Distributed Cloud jetzt abgeschlossen. Optional können Sie Ihre Installation in Aktion sehen, indem Sie eine Anwendung bereitstellen.