In diesem Dokument wird gezeigt, wie Sie eine Administratorworkstation für Google Distributed Cloud erstellen. Die Administratorworkstation hostet Befehlszeilentools und Konfigurationsdateien zum Bereitstellen von Clustern während der Installation sowie Befehlszeilentools für die Interaktion mit bereitgestellten Clustern nach der Installation.
Diese Anleitung ist vollständig. Eine kürzere Einführung zum Erstellen einer Administrator-Workstation finden Sie unter Administrator-Workstation erstellen (Kurzanleitung).
Es gibt zwei Möglichkeiten, eine Administrator-Workstation zu erstellen:
- Verwenden Sie
gkeadm
, um eine Administratorworkstation-VM in Ihrer vSphere-Umgebung zu erstellen. Erstellen Sie eine nutzerverwaltete Administrator-Workstation auf einem beliebigen Computer Ihrer Wahl.
gkeadm
Hinweise
Sie müssen Ihre vCenter-Serveradresse kennen.
Sie müssen den Pfad Ihres CA-Zertifikats kennen.
Installieren Sie die Google Cloud CLI.
Erstellen Sie ein oder mehrere Google Cloud-Projekte, wie unter Mehrere Google Cloud-Projekte verwenden beschrieben.
Dienstkonten planen
Wenn Sie gkeadm
zum Erstellen einer Administrator-Workstation verwenden, können Sie gkeadm
erlauben, die meisten Ihrer Dienstkonten und Schlüssel für Sie zu erstellen. In diesem Fall weist gkeadm
den Dienstkonten auch die entsprechenden Rollen der Identitäts- und Zugriffsverwaltung zu.
Alternativ können Sie Ihre Dienstkonten und Schlüssel manuell erstellen. In diesem Fall müssen Sie Ihren Dienstkonten manuell IAM-Rollen zuweisen.
Das manuelle Erstellen von Dienstkonten bietet mehr Flexibilität, als wenn gkeadm
dies für Sie tut:
Automatisch erstellte Dienstkonten haben alle dasselbe übergeordnete Google Cloud-Projekt wie Ihr Dienstkonto für den Komponentenzugriff. Wenn Sie ein Dienstkonto manuell erstellen, können Sie das übergeordnete Google Cloud-Projekt auswählen.
Automatisch erstellte Dienstkonten sind alle IAM-Rollen für das übergeordnete Google Cloud-Projekt Ihres Dienstkontos für den Komponentenzugriff. Dies ist kein Problem, wenn dies das einzige Google Cloud-Projekt ist, das mit Ihren Clustern verknüpft ist. Wenn Sie Ihre Cluster jedoch mit mehreren Google Cloud-Projekten verknüpfen möchten, müssen Sie einem Dienstkonto in einem Google Cloud-Projekt Ihrer Wahl flexibel Rollen zuweisen.
Wenn Sie eigene Dienstkonten erstellen möchten, folgen Sie der Anleitung unter Dienstkonten und Schlüssel.
Unabhängig davon, ob gkeadm
Dienstkonten automatisch für Sie erstellt, müssen Sie ein Dienstkonto manuell erstellen: Ihr Dienstkonto für den Komponentenzugriff. Eine Anleitung zum Erstellen Ihres Dienstkontos für den Komponentenzugriff und zum Zuweisen der entsprechenden IAM-Rollen finden Sie unter Dienstkonto für den Komponentenzugriff.
Es gibt ein weiteres Dienstkonto, das Sie möglicherweise manuell erstellen müssen: Ihr Audit-Logging-Dienstkonto. Wenn Sie Ihre Nutzercluster mit einem GKE On-Prem API-Client verwalten möchten, müssen Sie in Ihrem Administratorcluster Audit-Logging aktivieren.
Vorlagen für Konfigurationsdateien erstellen
Laden Sie gkeadm
in Ihr aktuelles Verzeichnis herunter.
Generieren Sie Vorlagen:
./gkeadm create config
Mit dem vorherigen Befehl wurden diese Dateien in Ihrem aktuellen Verzeichnis erstellt:
credential.yaml
admin-ws-config.yaml
credential.yaml
ausfüllen
Geben Sie in credential.yaml
Ihren vCenter-Nutzernamen und das Passwort ein. Beispiel:
kind: CredentialFile items: - name: vCenter username: "my-account-name" password: "AadmpqGPqq!a"
admin-ws-config.yaml
ausfüllen
Mehrere Felder in admin-ws-config.yaml
sind bereits mit Standardwerten oder generierten Werten ausgefüllt. Sie können die ausgefüllten Werte beibehalten oder nach Bedarf Änderungen vornehmen.
Felder, die Sie ausfüllen müssen
Füllen Sie die folgenden Pflichtfelder aus. Weitere Informationen zum Ausfüllen der Felder finden Sie unter Konfigurationsdatei für die Administrator-Workstation.
gcp: componentAccessServiceAccountKeyPath: "Fill in" vCenter: credentials: address: "Fill in" datacenter: "Fill in" datastore: "Fill in" cluster: "Fill in" network: "Fill in" resourcePool: "Fill in" caCertPath: "Fill in"
Wenn Sie Ihre Administratorworkstation in einem vSphere-VM-Ordner erstellen möchten, füllen Sie das Feld vCenter.folder
aus:
vCenter: folder: "Fill in"
Wenn sich Ihre Administrator-Workstation hinter einem Proxyserver befindet, füllen Sie das Feld proxyURL
aus:
adminWorkstation: proxyURL: "Fill in"
Wenn Sie möchten, dass Ihre Administrator-Workstation ihre IP-Adresse von einem DHCP-Server abruft, setzen Sie ipAllocationMode
auf "dhcp"
und entfernen den Abschnitt hostconfig
:
adminWorkstation: network: ipAllocationMode: "dhcp"
Wenn Sie eine statische IP-Adresse für Ihre Administrator-Workstation angeben möchten, legen Sie ipAllocationMode
auf "static"
fest und füllen den Abschnitt hostconfig
aus. :
adminWorkstation: network: ipAllocationMode: "static" hostconfig: ip: "Fill in" gateway: "Fill in" netmask: "Fill in" dns: - "Fill in"
Anmeldung
- Melde dich mit einem beliebigen Google-Konto an. Dadurch wird das SDK-Attribut
account
festgelegt:
gcloud auth login
- Prüfen Sie, ob das SDK-Attribut
account
korrekt festgelegt ist:
gcloud config list
- Das Google-Konto, das als SDK-
account
-Attribut festgelegt ist, wird als SDK-Konto bezeichnet. Dasgkeadm
-Befehlszeilentool verwendet Ihr SDK-Konto, um die OVA-Datei für die Administratorworkstation herunterzuladen und Dienste in Ihrem Google Cloud-Projekt zu aktivieren.
Wenn Sie festlegen, dass gkeadm
automatisch Dienstkonten für Sie erstellt, verwendet gkeadm
Ihr SDK-Konto auch, um Dienstkonten und Schlüssel zu erstellen sowie Dienstkonten Rollen zuzuweisen.
Legen Sie deshalb das account
-Attribut des SDK fest, bevor Sie gkeadm
ausführen, um eine Administrator-Workstation zu erstellen.
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]
Ihrem SDK-Konto Rollen zuweisen
Ihr SDK-Konto muss die folgende IAM-Rolle für das übergeordnete Google Cloud-Projekt Ihres Dienstkontos für den Komponentenzugriff haben.
Dadurch kann gkeadm
Dienste im Google Cloud-Projekt aktivieren.
serviceUsage.serviceUsageAdmin
Wenn gkeadm
automatisch Dienstkonten für Sie erstellen soll, muss Ihr SDK-Konto auch die folgenden Rollen für das übergeordnete Projekt Ihres Dienstkontos für den Komponentenzugriff haben. Dadurch kann gkeadm
Dienstkonten und Schlüssel erstellen.
resourcemanager.projectIamAdmin
iam.serviceAccountCreator
iam.serviceAccountKeyAdmin
Zum Zuweisen von Rollen für ein Google Cloud-Projekt benötigen Sie bestimmte Berechtigungen für das Google Cloud-Projekt. Weitere Informationen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.
Wenn Sie die erforderlichen Berechtigungen haben, können Sie die Rollen selbst zuweisen. Andernfalls muss eine andere Person in Ihrer Organisation die Rollen für Sie zuweisen.
So weisen Sie dem SDK-Konto die erforderliche Rolle zu:
Linux und macOS
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/serviceusage.serviceUsageAdmin"
Windows
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/serviceusage.serviceUsageAdmin"
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des übergeordneten Google Cloud-Projekts Ihres Dienstkontos für den KomponentenzugriffACCOUNT
ist das SDK-Konto.
So gewähren Sie zusätzliche Rollen, wenn gkeadm
automatisch Dienstkonten erstellen soll:
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/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/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 des übergeordneten Projekts des Dienstkontos für den Komponentenzugriff.ACCOUNT
ist das SDK-Konto.
Administrator-Workstation erstellen
Geben Sie diesen Befehl ein, um Ihre Administrator-Workstation zu erstellen. Wenn gkeadm
die Dienstkonten connect-register und logging-monitoring für Sie erstellen soll, fügen Sie das Flag --auto-create-service-accounts
hinzu. Wenn Sie diese Dienstkonten manuell erstellen möchten, lassen Sie das Flag weg.
./gkeadm create admin-workstation [--auto-create-service-accounts]
Die Ausgabe enthält detaillierte Informationen zur Erstellung Ihrer Administrator-Workstation:
... Getting ... service account... ... ******************************************************************** 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.5.1 ********************************************************************
SSH-Verbindung zu Ihrer Administrator-Workstation abrufen
Gegen Ende der vorherigen Ausgabe finden Sie einen Befehl, mit dem Sie eine SSH-Verbindung zu Ihrer Administrator-Workstation herstellen können. Geben Sie diesen Befehl jetzt ein. Beispiel:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1
Rufen Sie eine Liste der Dateien auf Ihrer Administrator-Workstation auf:
ls -1
In der Ausgabe sehen Sie zwei Clusterkonfigurationsdateien, Ihre CA-Zertifikatsdatei und die JSON-Schlüsseldatei für das Dienstkonto für den Komponentenzugriff. Wenn gkeadm
Dienstkonten für Sie erstellt hat, können Sie auch die JSON-Schlüsseldateien für diese Dienstkonten sehen. Beispiel:
admin-cluster.yaml user-cluster.yaml vcenter-ca-cert.pem component-access-key.json
Prüfen Sie, ob gkeadm
das Dienstkonto für den Komponentenzugriff auf Ihrer Administrator-Workstation aktiviert hat:
gcloud config get-value account
JSON-Schlüsseldateien auf Ihre Administratorworkstation kopieren
Bevor Sie einen Cluster erstellen, müssen sich die JSON-Schlüsseldateien für Ihre Dienstkonten auf Ihrer Administrator-Workstation im Basisverzeichnis befinden.
Der Schlüssel für Ihr Dienstkonto für den Komponentenzugriff befindet sich bereits auf Ihrer Administrator-Workstation.
Wenn Sie beim Ausführen von gkeadm create admin-workstation
das Flag --auto-create-service-accounts
angegeben haben, befinden sich die Schlüssel der folgenden Dienstkonten bereits auf Ihrer Administrator-Workstation im Basisverzeichnis. Andernfalls müssen Sie die Schlüssel manuell in das Basisverzeichnis Ihrer Administrator-Workstation kopieren:
- Connect-Register-Dienstkonto
- Logging-Monitoring-Dienstkonto
Wenn Sie eines der folgenden Dienstkonten erstellt haben, müssen Sie die Schlüssel für diese Dienstkonten manuell in das Basisverzeichnis Ihrer Administrator-Workstation kopieren:
- Dienstkonto zur Nutzungsmessung
- Audit-Logging-Dienstkonto
- Dienstkonto für Binärautorisierungen
Administrator-Workstation aus einer Sicherungsdatei wiederherstellen
Wenn Sie eine Administrator-Workstation aktualisieren, speichert der Befehl gkeadm upgrade
eine Sicherungsdatei. Wenn Sie später keine Administratorworkstation mehr haben oder einige Dateien verloren haben, die sich auf der aktualisierten Administratorworkstation befanden, können Sie mit dieser Sicherungsdatei eine Administratorworkstation erstellen, die auf den Zustand unmittelbar nach dem Upgrade wiederhergestellt wird.
Führen Sie den folgenden Befehl aus, um eine Administrator-Workstation aus einer Sicherungsdatei zu erstellen:
gkeadm create admin-workstation --restore-from-backup ADMIN_WORKSTATION_NAME-backup.tar.gz
Ersetzen Sie ADMIN_WORKSTATION_NAME durch den Namen der Administrator-Workstation.
Vom Nutzer verwaltet
Wählen Sie einen Computer aus, der als Administratorworkstation dienen soll. Sie können entweder Ubuntu oder Red Hat Enterprise Linux (RHEL) verwenden. Dies sind die Anforderungen:
Ubuntu 20.04 LTS oder 22.04 LTS
- 4 CPU-Kerne
- 8 GiB RAM
- 100 GiB Speicherplatz
RHEL 8.6, 8.7 oder 8.8
- 4 CPU-Kerne
- 12 GB RAM
- 256 GiB Speicherplatz
Zugriff auf Google Cloud
Ihre Administrator-Workstation muss Zugriff auf Google Cloud haben, um Tools herunterzuladen und zu installieren, Autorisierungsanfragen zu verarbeiten, Dienstkonten zu erstellen und vieles mehr.
Informationen zu den verschiedenen Möglichkeiten, eine Verbindung zu Google Cloud herzustellen, finden Sie unter Mit Google verbinden.
Der Zugriff auf Google Cloud kann direkt oder über einen Proxyserver erfolgen. Informationen zu Firewallregeln und zum Konfigurieren eines Proxyservers finden Sie unter Proxy- und Firewallregeln.
Zugriff auf vCenter Server
Zum Erstellen und Verwalten von Clustern über Ihre Administratorworkstation benötigen Sie Zugriff auf Ihre vCenter Server-Instanz. Weitere Informationen:
NTP-Server einrichten
Wenn der Cluster für die Verwendung eines NTP-Servers konfiguriert ist, müssen Sie auf Ihrer Administrator-Workstation einen Dienst zur Zeitsynchronisierung einrichten, damit timedatectl
die mit dem Cluster synchrone Zeit meldet. Dies ist erforderlich, um große Abweichungen der Uhr zu vermeiden, die zu Fehlern bei der Zertifikatsüberprüfung aufgrund nicht übereinstimmender Ablaufdaten führen können.
Ubuntu
Wir empfehlen die Verwendung des chrony
-Zeitservers.
So installieren Sie chrony
:
sudo apt-get update sudo apt install chrony
Es stehen zwei Binärprogramme zur Verfügung:
chronyd
– der Daemon, der über das Network Time Protocol synchronisiert und bereitgestellt wirdchronyc
– die Befehlszeile für den Daemonchrony
Zum Konfigurieren von chronyd
:
Bearbeiten Sie /etc/chrony/chrony.conf
, um Serverzeilen hinzuzufügen oder zu entfernen. Starten Sie dann chrony
neu:
sudo systemctl restart chrony.service
RHEL
Wir empfehlen die Verwendung des chrony
-Zeitservers.
Eine Installationsanleitung finden Sie unter Chrony konfigurieren.
Passwortloser Sudo
Wenn Ihre Sicherheitsrichtlinie es zulässt, aktivieren Sie passwortfreies sudo für den aktuellen Nutzer. Dadurch kann gkectl
eine private Registry vorbereiten (falls vorhanden), einen Proxy für Docker einrichten, wenn sich Ihr Netzwerk hinter einem Proxyserver befindet, und das Löschen des Bootstrap-Clusters erzwingen, der für Lebenszyklusvorgänge von Administratorclustern verwendet wird, falls der Löschvorgang fehlschlägt.
Wenn Sie den passwortlosen Sudo nicht aktivieren und eine private Registry für Ihren Administratorcluster verwenden möchten, führen Sie die folgende manuelle Konfiguration durch, bevor Sie den Administratorcluster erstellen:
Legen Sie das CA-Root-Zertifikat für die private Registry in diesem Verzeichnis ab:
/etc/docker/certs.d/REGISTRY_ADDRESS/
Ersetzen Sie REGISTRY_ADDRESS durch die Adresse des Computers, auf dem die private Registry ausgeführt wird.
Weitere Informationen finden Sie unter Repository-Client mit Zertifikaten überprüfen.
Wenn sich Ihr Netzwerk hinter einem Proxyserver befindet, geben Sie den Proxyserver in der Konfigurationsdatei des Administratorclusters an und konfigurieren Sie Docker für die Verwendung des Proxyservers.
Wenn Sie passwortlose Sud nicht aktivieren, müssen Sie den kind
-Cluster möglicherweise nach dem Erstellen eines Administratorclusters manuell löschen. Weitere Informationen finden Sie in der Dokumentation zur Fehlerbehebung unter Artcluster wird nicht gelöscht.
Software installieren
Ubuntu
Installieren Sie folgende Software:
Docker-Version 19.03 oder höher: Siehe Docker Engine unter Ubuntu installieren. Achten Sie darauf, dass der Nicht-Root-Nutzer Mitglied der Docker-Gruppe ist. Weitere Informationen finden Sie unter Docker als Nutzer ohne Root-Berechtigung verwalten.
Neueste Version der Google Cloud CLI: Siehe gcloud CLI installieren.
kubectl: Führen Sie
gcloud components install kubectl
aus oder verwenden Sieapt-get
:
sudo apt-get update sudo apt-get -y install kubectl
RHEL
Installieren Sie folgende Software:
Docker 19.03 oder höher
Entfernen Sie alle vorherigen Docker-Versionen:
sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
Podman-manpages entfernen:
sudo dnf remove podman-manpages
Docker 19.03+ installieren:
sudo dnf install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io sudo systemctl start docker
Prüfen Sie, ob Sie jetzt die Version 19.03 oder höher verwenden:
sudo docker version
Vergleichen Sie die Ausgabe mit dem folgenden Beispiel, um sicherzustellen, dass die Client- und Serverversionen 19.03 oder höher sind:
Client: Docker Engine - Community Version: 19.03.13 ... Server: Docker Engine - Community Engine: Version: 19.03.13
Prüfen Sie, ob Docker ausgeführt wird:
docker run hello-world
Die Ausgabe sollte etwa so aussehen:
Hello from Docker!
This message shows that your installation appears to be working correctly.
Neueste Version der Google Cloud CLI:
Siehe gcloud CLI installieren.
kubectl
Führen Sie gcloud components install kubectl
aus.
Anmelden
Das Google-Konto, das als SDK-account
-Attribut festgelegt ist, wird als SDK-Konto bezeichnet. Das gkectl
-Befehlszeilentool verwendet Ihr SDK-Konto, um OVAs für Clusterknoten herunterzuladen, Container-Images abzurufen usw. Daher ist es wichtig, dass Sie das Attribut Ihres SDK-Kontos festlegen, bevor Sie gkectl
-Befehle ausführen.
Melde dich mit einem beliebigen Google-Konto an. Dadurch wird das SDK-Attribut account
festgelegt:
gcloud auth login
Prüfen Sie, ob das SDK-Attribut account
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]
gkectl und das Bundle herunterladen
Gehen Sie zu einem Verzeichnis, in dem Sie gkectl
installieren möchten.
gkectl
herunterladen:
gsutil cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./ chmod +x gkectl
Ersetzen Sie VERSION durch die Version von Google Distributed Cloud. Beispiel: 1.16.0-gke.1
Laden Sie das Google Distributed Cloud-Bundle herunter. Die Version muss mit der Version übereinstimmen, die Sie zum Herunterladen von gkectl
verwendet haben:
gsutil cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz ./
Dienstkonten und Schlüssel
Achten Sie darauf, dass Sie die folgenden erforderlichen Dienstkonten und JSON-Schlüsseldateien erstellt haben:
Achten Sie außerdem darauf, dass Sie alle optionalen Dienstkonten und JSON-Schlüsseldateien erstellt haben, die Sie benötigen:
Legen Sie alle JSON-Schlüsseldateien im Basisverzeichnis Ihrer Administrator-Workstation ab.
Fehlerbehebung
Mit dem folgenden Abschnitt wird der SSH-Zugriff auf die Administrator-Workstation für den Fall wieder aktiviert, dass der SSH-Schlüssel verloren geht oder beschädigt wird.
SSH-Schlüsselwiederherstellung
Verwenden Sie eine temporäre VM, um die folgenden Schritte auszuführen:
Folgen Sie der Anleitung unter SSH-Schlüssel erstellen in der Compute Engine-Dokumentation, um einen neuen Satz von SSH-Schlüsseln zu generieren.
Achten Sie darauf, dass sich die temporäre VM und die Administratorworkstation im Status
Powered Off
befinden.Hängen Sie in vSphere das Bootlaufwerk der Administratorworkstation an die temporäre VM an.
Das Bootlaufwerk hat das Label
Hard disk 1
.Stellen Sie das Bootlaufwerk in der VM bereit. Führen Sie dazu die folgenden Befehle aus:
sudo mkdir -p /mnt/boot-disk sudo mount DISK_ID /mnt/boot-disk
Ersetzen Sie
DISK_ID
durch die Bootlaufwerk-ID. Diese sollte ein Format wiedev/sdc1
haben.Bearbeiten Sie die Datei
authorized_keys
auf dem Bootlaufwerk, um den Inhalt der Datei mit dem öffentlichen Schlüssel anzufügen, die im ersten Schritt generiert wurde:vi /mnt/boot-disk/.ssh/authorized_keys
Fahren Sie die temporäre VM herunter.
Schalten Sie die Administrator-Workstation ein.
Greifen Sie mit dem neu generierten privaten Schlüssel auf die Administrator-Workstation zu.
ssh -i ~/.ssh/new-admin-ws.key ubuntu@"${ADMIN_WS_IP}"
Verwenden Sie den neu generierten privaten Schlüssel, um weiterhin auf Ihre Administrator-Workstation zuzugreifen.
Nächste Schritte
Administratorcluster erstellen