Dies ist der erste Teil einer Anleitung, die Sie durch eine kleine Proof-of-Concept-Installation von GKE auf VMware mit einem einzelnen Nutzercluster führt.
In diesem Dokument erfahren Sie, wie Sie minimale vSphere- und Google Cloud-Umgebungen für diese Installation einrichten und Ihre IP-Adressen planen. Im nachfolgenden Abschnitt Einfache Cluster erstellen erfahren Sie, wie Sie eine Administratorworkstation, einen Administratorcluster und einen Nutzercluster erstellen.
Die Infrastruktur, die Sie mit diesem Leitfaden einrichten, ist möglicherweise nicht für Ihre tatsächlichen Produktionsanforderungen und Anwendungsfälle geeignet. Weitere Informationen zu Produktionsinstallationen finden Sie in der Installationsübersicht und in den Anleitungen.
Hinweise
Lesen Sie die Übersicht über GKE on VMware, die einen Überblick über die Funktionsweise von GKE on VMware bietet, einschließlich der Rolle der einzelnen Komponenten, die Sie bei dieser Einrichtung installieren.
Weitere Informationen finden Sie unter vSphere-Lizenzanforderungen. Für diese minimale Installation ist eine vSphere Standard-Lizenz ausreichend.
Sie benötigen eine laufende Instanz von vCenter Server.
Sie benötigen ein vCenter-Nutzerkonto mit ausreichenden Berechtigungen. Notieren Sie sich den Nutzernamen und das Passwort für dieses Konto.
Sie sollten mit einigen grundlegenden Google Cloud-Konzepten vertraut sein, z. B. mit Projekten, IAM-Berechtigungen und Dienstkonten. Falls nicht, lesen Sie die folgenden Anleitungen:
Verfahrensübersicht
Dies sind die wichtigsten Schritte für diese Einrichtung:
- Richten Sie die Umgebung ein. Achten Sie darauf, dass Sie die Ressourcenanforderungen erfüllen können. Wir stellen eine Beispielkonfiguration für einen ESXi-Host und einen vSphere-Datenspeicher bereit, die die Anforderungen für diese Installation erfüllen.
- vSphere-Objekte einrichten GKE on VMware-Komponenten werden in einer vSphere-Objekthierarchie ausgeführt.
- IP-Adressen planen Für GKE on VMware müssen Sie zusätzlich zu den virtuellen IP-Adressen (VIPs) für den Administrator- und Nutzerzugriff auf Ihre Bereitstellung IP-Adressen für alle Knoten angeben. Für diese Einrichtung verwenden Sie statische IP-Adressen für Ihre Clusterknoten. Wir geben einige Beispiele an. Wir empfehlen Ihnen jedoch, sich an Ihren Netzwerkadministrator zu wenden, wenn Sie Unterstützung bei der Auswahl geeigneter Adressen für Ihr Netzwerk benötigen.
- Firewall- und Proxy-Regeln konfigurieren
- Richten Sie Google Cloud-Ressourcen ein, einschließlich eines Google Cloud-Projekts, das Sie beim Einrichten und Verwalten von GKE on VMware verwenden, und eines Dienstkontos mit den erforderlichen Berechtigungen, um auf die Komponentensoftware von GKE on VMware zuzugreifen und diese herunterzuladen.
Umgebung einrichten
CPU-, RAM- und Speicherbedarf
Für diese minimale Installation können Sie einen einzelnen physischen Host verwenden, auf dem ESXi ausgeführt wird.
Das sind die Mindestressourcenanforderungen für Ihren ESXi-Host:
- 8 physische CPUs bei 2,7 GHz mit aktiviertem Hyperthreading
- 80 Gibibyte (GiB) RAM
Der Mindestspeicherbedarf beträgt 470 GiB.
Beispiel für Host und Datenspeicher
Hier sehen Sie ein Beispiel für einen ESXi-Host und einen vSphere-Datenspeicher, die die Anforderungen erfüllen:
ESXi-Host-Konfiguration:
- Hersteller: Dell Inc.
- Physische CPUs: 8 CPUs bei 2,7 GHz
- Prozessortyp: Intel(R) Xeon(R) Platinum 8168 CPU @ 2,70 GHz
- Prozessor-Sockets: 2
- ESXi-Version: 7.0u2 oder höher
- vCenter Server-Version: 7.0u2 oder höher
- Hyperthreading: aktiviert
Datastore-Konfiguration:
- Typ: VMFS 6.82
- Laufwerkstyp: SSD
- Anbieter: DELL
- Laufwerkstyp: logisch
- RAID-Level: RAID1
vSphere-Objekte einrichten
Richten Sie in der vSphere-Umgebung die folgenden Objekte ein:
Load-Balancing
Die Cluster in dieser Minimalinstallation verwenden den gebündelten MetalLB-Load-Balancer. Dieser Load-Balancer wird auf den Clusterknoten ausgeführt, sodass keine zusätzlichen VMs für das Load-Balancing erforderlich sind
IP-Adressen planen
Wie Sie in der Übersicht zu GKE on VMware erwähnt haben, benötigt eine GKE on VMware-Installation genügend IP-Adressen für alle Knoten sowie virtuelle IP-Adressen (VIPs) für den Zugriff auf Komponenten der Steuerungsebene wie Kubernetes API-Server und auf Anwendungen, die in Ihren Nutzerclustern ausgeführt werden. Außerdem müssen Sie geeignete CIDR-Adressbereiche für die Kommunikation zwischen den Pods und Diensten in Ihren Clustern angeben. Aus diesem Grund besteht ein wichtiger Teil der Einrichtung von GKE on VMware darin, Ihre IP-Adressen zu planen und sicherzustellen, dass keine Adresskonflikte entstehen. Möglicherweise benötigen Sie Ihren Netzwerkadministrator, um geeignete Werte für die Konfiguration zu finden, auch für diese einfache Installation. Im weiteren Verlauf dieses Abschnitts finden Sie anschauliche Beispiele für Werte, die für diese Installation in einem hypothetischen Netzwerk funktionieren. Ihre Werte werden davon abweichen.
Mit GKE on VMware können Sie auswählen, ob Sie statische IP-Adressen für Ihre Clusterknoten bereitstellen oder einen DHCP-Server verwenden möchten. In dieser einfachen Installation verwenden Sie statische IP-Adressen.
Für diese kleine Installation empfehlen wir, dass sich Ihre Administrator-Workstation, Ihre Administratorclusterknoten und die Nutzerclusterknoten in demselben VLAN in Ihrem vSphere-Netzwerk befinden. Angenommen, alle IP-Adressen im Bereich 172.16.20.0/24 werden an ein bestimmtes VLAN weitergeleitet. Nehmen wir außerdem an, dass Ihr Netzwerkadministrator besagt, dass Sie für VMs und virtuelle IP-Adressen (VIPs) 172.16.20.49 bis 172.16.20.72 verwenden können.
Das folgende Diagramm zeigt ein VLAN mit einer Administrator-Workstation, einem Administratorcluster und einem Nutzercluster. Beachten Sie, dass VIPs nicht in Verbindung mit einem bestimmten Knoten in einem Cluster angezeigt werden. Das liegt daran, dass der MetalLB-Load-Balancer wählen kann, welcher Knoten das VIP für einen einzelnen Dienst ankündigt. Im Nutzercluster könnte beispielsweise ein Worker-Knoten 172.16.20.63 und ein anderer Worker-Knoten 172.16.20.64 ankündigen.
Beispiel-IP-Adresse: Administrator-Workstation
Für die Administrator-Workstation verwendet dieses Beispiel die erste Adresse in dem Bereich, der Ihnen von Ihrem Netzwerkadministrator zugewiesen wird: 172.16.20.49.
Beispiel-IP-Adressen: Clusterknoten
Die folgende Tabelle enthält ein Beispiel für die Verwendung von IP-Adressen für Clusterknoten. Die Tabelle zeigt zwei zusätzliche Knoten: admin-vm-5 und user-vm-4. Die zusätzlichen Knoten werden während Clusterupgrades, -updates und automatischer Reparatur benötigt. Weitere Informationen finden Sie unter Knoten-IP-Adressen verwalten.
VM-Hostname | Beschreibung | IP-Adresse |
---|---|---|
admin-vm-1 | Knoten der Steuerungsebene für den Administratorcluster | 172.16.20.50 |
admin-vm-2 | Add-on-Knoten des Administratorclusters | 172.16.20.51 |
admin-vm-3 | Add-on-Knoten des Administratorclusters | 172.16.20.52 |
admin-vm-4 | Knoten der Steuerungsebene für den Nutzercluster Dieser Knoten befindet sich im Administratorcluster. |
172.16.20.53 |
admin-vm-5 | 172.16.20.54 | |
user-vm-1 | Worker-Knoten des Nutzerclusters | 172.16.20.55 |
user-vm-2 | Worker-Knoten des Nutzerclusters | 172.16.20.56 |
user-vm-3 | Worker-Knoten des Nutzerclusters | 172.16.20.57 |
user-vm-4 | 172.16.20.58 |
Beispiel-IP-Adressen: VIPs für den Administratorcluster
Die folgende Tabelle enthält ein Beispiel dafür, wie Sie VIPs für Ihren Administratorcluster angeben können:
VIP | Beschreibung | IP-Adresse |
---|---|---|
VIP für den Kubernetes API-Server des Administratorclusters | Auf dem Load-Balancer für den Administratorcluster konfiguriert | 172.16.20.59 |
Beispiel-IP-Adressen: VIPs für den Nutzercluster
Die folgende Tabelle enthält ein Beispiel dafür, wie Sie VIPs für Ihren Nutzercluster angeben können.
Beachten Sie, dass die virtuelle IP-Adresse für den Kubernetes API-Server des Nutzerclusters auf dem Load-Balancer des Administratorclusters konfiguriert ist. Das liegt daran, dass der Kubernetes API-Server für einen Nutzercluster auf einem Knoten im Administratorcluster ausgeführt wird, wie Sie in der Übersicht gelernt haben.
VIP | Beschreibung | IP-Adresse |
---|---|---|
VIP für den Kubernetes API-Server des Nutzerclusters | Auf dem Load-Balancer für den Administratorcluster konfiguriert | 172.16.20.61 |
Ingress-VIP | Auf dem Load-Balancer für den Nutzercluster konfiguriert | 172.16.20.62 |
Dienst-VIPs | Zehn Adressen für Dienste vom Typ LoadBalancer .Nach Bedarf auf dem Load-Balancer für den Nutzercluster konfiguriert. Beachten Sie, dass dieser Bereich die Ingress-VIP enthält. Dies ist eine Anforderung für den MetalLB-Load-Balancer. |
172.16.20.62 - 172.16.20.71 |
IP-Adressen für Pods und Dienste
Zusätzlich zu den IP-Adressen für Ihre Clusterknoten und für den Zugriff auf Ihre Bereitstellung müssen Sie auch die Adressbereiche angeben, die in jedem Cluster für den In-Cluster-Traffic verwendet werden können.
Dazu geben Sie einen CIDR-Bereich für Pod-IP-Adressen und einen weiteren CIDR-Bereich für die ClusterIP
-Adressen von Kubernetes-Diensten an. Dies wird im Rahmen der Clusterkonfiguration angegeben, wie im nächsten Teil dieses Leitfadens beschrieben.
Entscheiden Sie im Rahmen der IP-Planung, welche CIDR-Bereiche Sie für Pods und Dienste verwenden möchten. Sofern Sie keinen Grund dafür haben, sollten Sie die folgenden Standardbereiche verwenden:
Zweck | CIDR-Standardbereich |
---|---|
Administratorcluster-Pods | 192.168.0.0/16 |
Nutzercluster-Pods | 192.168.0.0/16 |
Dienste des Administratorclusters | 10.96.232.0/24 |
Nutzercluster-Dienste | 10.96.0.0/20 |
Die Standardwerte veranschaulichen diese Punkte:
Der Pod-CIDR-Bereich kann für mehrere Cluster identisch sein.
Der Dienst-CIDR-Bereich eines Clusters darf sich nicht mit dem Dienst-CIDR-Bereich eines anderen Clusters überschneiden.
In der Regel benötigen Sie mehr Pods als Dienste. Daher benötigen Sie für einen bestimmten Cluster wahrscheinlich einen Pod-CIDR-Bereich, der größer als der Dienst-CIDR-Bereich ist. Beispiel: Der Standard-Pod-Bereich für einen Nutzercluster hat 2^(32–16) = 2^16 Adressen, der Standarddienstbereich für einen Nutzercluster jedoch nur 2^(32 – 20) = 2^12 Adressen.
Überlappung vermeiden
In einigen Fällen müssen Sie möglicherweise nicht standardmäßige CIDR-Bereiche verwenden, um eine Überschneidung mit IP-Adressen zu vermeiden, die in Ihrem Netzwerk erreichbar sind. Die Dienst- und Pod-Bereiche dürfen sich nicht mit einer Adresse außerhalb des Clusters überschneiden, die Sie von innerhalb des Clusters erreichen möchten.
Angenommen, der Dienstbereich lautet 10.96.232.0/24 und der Pod-Bereich lautet 192.168.0.0/16. Traffic, der von einem Pod an eine Adresse in einem dieser Bereiche gesendet wird, wird als clusterintern behandelt und erreicht kein Ziel außerhalb des Clusters.
Insbesondere dürfen sich die Bereiche für Dienste und Pods nicht überschneiden mit:
IP-Adressen von Knoten in einem beliebigen Cluster
Von Load-Balancer-Maschinen verwendete IP-Adressen
Von Knoten der Steuerungsebene und Load-Balancern verwendete VIPs
IP-Adresse von vCenter-Servern, DNS-Servern und NTP-Servern
Wir empfehlen, die von RFC 1918 definierten privaten IP-Adressbereiche für Ihre Pod- und Dienstbereiche zu verwenden.
Dies ist ein Grund für die Empfehlung, RFC 1918-Adressen zu verwenden. Angenommen, Ihr Pod- oder Dienstbereich enthält externe IP-Adressen. Traffic von einem Pod an eine dieser externen Adressen wird als clusterinterner Traffic behandelt und erreicht das externe Ziel nicht.
DNS-Server und Standardgateway
Bevor Sie Ihre Administrator- und Nutzercluster erstellen, müssen Sie auch die IP-Adressen folgender Personen kennen:
Einen DNS-Server, der von Ihrer Administrator-Workstation und Clusterknoten verwendet werden kann
Ein NTP-Server, der von Ihren Clusterknoten verwendet werden kann
Die IP-Adresse des Standardgateways für das Subnetz mit Ihrer Administrator-Workstation und Clusterknoten. Angenommen, Ihre Administrator-Workstation, Administratorclusterknoten und Nutzerclusterknoten befinden sich alle im Subnetz 172.16.20.0/24. Die Adresse des Standardgateways für das Subnetz kann 172.16.20.1 sein.
Firewall und Proxy konfigurieren
Konfigurieren Sie die Firewall und den Proxy so, dass der erforderliche GKE on VMware-Traffic unter Berücksichtigung der Proxy- und Firewallregeln zugelassen wird. Sie benötigen die IP-Adressen des Clusterknotens, die Sie im vorherigen Abschnitt ermittelt haben, um diese Aufgabe auszuführen. Da die IP-Adressen für Nutzer- und Administratorcluster nicht bestimmten Knoten zugewiesen sind, müssen Sie sicherstellen, dass alle relevanten Firewallregeln für alle IP-Adressen für jeden Cluster gelten.
Google Cloud-Ressourcen einrichten
Google Cloud-Projekte bilden die Grundlage zum Erstellen, Aktivieren und Verwenden aller Google Cloud-Dienste, einschließlich derer zum Installieren und Verwalten von GKE auf VMware. Wenn Sie mit der Arbeit mit Google Cloud-Projekten nicht vertraut sind, finden Sie unter Projekte erstellen und verwalten weitere Informationen.
So beginnen Sie mit der Einrichtung von Google Cloud-Ressourcen:
- Wählen Sie ein vorhandenes Projekt für Ihre Installation aus oder erstellen Sie ein neues.
- Notieren Sie sich Ihre Google Cloud-Projekt-ID.
Erforderliche Berechtigungen
Wenn Sie der Projektinhaber sind (wenn Sie das Projekt beispielsweise selbst erstellt haben), verfügen Sie bereits über alle erforderlichen Berechtigungen, um den Rest dieser einfachen Installation durchzuführen. Wenn Sie nicht der Projektinhaber sind, müssen Sie oder Ihr Projektadministrator sicherstellen, dass Ihr Google-Konto über die erforderlichen Berechtigungen verfügt.
Mit den folgenden IAM-Rollen können Sie ein Dienstkonto erstellen, ihm IAM-Rollen zuweisen, APIs aktivieren und dafür sorgen, dass das gkeadm
-Tool im zweiten Teil dieser Einrichtung Dienstkonten für Sie erstellen und verwalten kann:
resourcemanager.projectIamAdmin
serviceusage.serviceUsageAdmin
iam.serviceAccountCreator
iam.serviceAccountKeyAdmin
Weitere Informationen zu den Berechtigungen, die erforderlich sind, um IAM-Rollen selbst zuzuweisen, finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen. Wenn Sie diese Berechtigungen nicht haben, muss eine andere Person in Ihrer Organisation die Rollen für Sie zuweisen.
So weisen Sie die Rollen zu:
Linux und macOS
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/serviceusage.serviceUsageAdmin" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/iam.serviceAccountCreator" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/iam.serviceAccountKeyAdmin"
Windows
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/serviceusage.serviceUsageAdmin" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/iam.serviceAccountCreator" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/iam.serviceAccountKeyAdmin"
Ersetzen Sie Folgendes:
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsACCOUNT
: die E-Mail-Adresse zur Identifizierung Ihres Google-Kontos
Google Cloud CLI einrichten
Die Google Cloud CLI ist ein Befehlszeilentool, mit dem Sie mit Ihrem Projekt arbeiten können. Folgen Sie der Anleitung unter Google Cloud SDK installieren, um sicherzustellen, dass Sie die neueste Version haben.
Dienstkonto für den Komponentenzugriff einrichten
Richten Sie in Ihrem Projekt ein Dienstkonto ein, mit dem GKE on VMware in Ihrem Namen Clusterkomponenten aus Container Registry herunterladen kann. Dies wird als Dienstkonto für den Komponentenzugriff bezeichnet. Es ist das einzige Dienstkonto, das Sie in dieser einfachen Installation manuell erstellen müssen.
Erstellen Sie im ausgewählten Google Cloud-Projekt ein neues Dienstkonto:
gcloud iam service-accounts create component-access-sa \ --display-name "Component Access Service Account" \ --project PROJECT_ID
Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts.
Erstellen Sie einen JSON-Schlüssel für das Dienstkonto für den Komponentenzugriff:
gcloud iam service-accounts keys create component-access-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Ersetzen Sie SERVICE_ACCOUNT_EMAIL durch die eindeutig identifizierende E-Mail-Adresse Ihres Dienstkontos.
Fügen Sie dem Dienstkonto für den Komponentenzugriff die folgenden IAM-Rollen hinzu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/serviceusage.serviceUsageViewer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.roleViewer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.serviceAccountViewer"
Weitere Informationen zum Dienstkonto für den Komponentenzugriff und zum Zuweisen von IAM-Rollen finden Sie unter Dienstkonten und Schlüssel.
Google APIs aktivieren
Aktivieren Sie die folgenden Google APIs in Ihrem Google Cloud-Projekt. So können Sie alle von GKE on VMware benötigten Google Cloud-Dienste in Ihrem Projekt verwenden.
gcloud services enable --project PROJECT_ID \ anthos.googleapis.com \ anthosgke.googleapis.com \ anthosaudit.googleapis.com \ cloudresourcemanager.googleapis.com \ connectgateway.googleapis.com \ container.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ opsconfigmonitoring.googleapis.com \ monitoring.googleapis.com \ logging.googleapis.com \ iam.googleapis.com \ storage.googleapis.com