In diesem Dokument wird gezeigt, wie Sie eine Administrator-Workstation erstellen, mit der Sie GKE On-Prem-Cluster erstellen können.
In diesem Dokument erstellen Sie eine Administrator-Workstation mit einer statischen IP-Adresse. Dies entspricht dem grundlegenden Installationsvorgang, bei dem Cluster angelegt werden, die statische IP-Adressen nutzen.
Wenn Sie eine Administrator-Workstation erstellen möchten, die ihre IP-Adresse mit Dynamic Host Configuration Protocol (DHCP) abruft, finden Sie Informationen dazu im Abschnitt Administrator-Workstation mit DHCP erstellen.
In den Schritten in diesem Dokument wird das gkeadm
-Befehlszeilentool verwendet, das nur für Linux verfügbar ist. In einer zukünftigen Version von GKE On-Prem steht gkeadm
auch für Windows und MAC OS zur Verfügung. Wenn Sie eine Administrator-Workstation mit einem Computer mit Windows- oder MAC-Betriebssystem erstellen möchten, finden Sie die entsprechenden Informationen unter Administrator-Workstation mit einer statischen IP-Adresse erstellen und Administrator-Workstation mit DHCP erstellen.
gkeadm
herunterladen
Laden Sie das gkeadm
-Befehlszeilentool herunter und machen Sie es ausführbar:
gsutil cp gs://gke-on-prem-release-public/gkeadm/1.3.2-gke.1/linux/gkeadm ./ chmod +x gkeadm
Eine Vorlage für Ihre Konfigurationsdatei erstellen
Zum Erstellen einer Administrator-Workstation ist für das gkeadm
-Tool eine Konfigurationsdatei erforderlich.
So generieren Sie eine Vorlage für Ihre Konfigurationsdatei:
./gkeadm create config
Die Ausgabe ist eine Datei mit dem Namen admin-ws-config.yaml
:
gcp: # Path of the allowlisted service account's JSON key file whitelistedServiceAccountKeyPath: "" # Specify which vCenter resources to use vCenter: # The credentials and address GKE On-Prem should use to connect to vCenter credentials: address: "" username: "" ... adminWorkstation: ... network: # The IP allocation mode: 'dhcp' or 'static' ipAllocationMode: "" # # The host config in static IP mode. Do not include if using DHCP # hostConfig: # # The IPv4 static IP address for the admin workstation ...
Konfigurationsdatei ausfüllen
Geben Sie in Ihrer Konfigurationsdatei Feldwerte ein, wie in diesem Abschnitt erläutert.
gcp.whitelistedServiceAccountKeyPath
String. Der Pfad der JSON-Schlüsseldatei für Ihr Dienstkonto auf der Zulassungsliste. Informationen zum Erstellen einer JSON-Schlüsseldatei finden Sie unter Dienstkonto auf der Zulassungsliste. Beispiel:
whitelistedServiceAccountKeyPath: "my-key-folder/whitelisted-key.json"
vCenter.credentials.address
String. Die IP-Adresse oder der Hostname Ihres vCenter-Servers.
Bevor Sie das Feld address
ausfüllen, laden Sie das bereitgestellte Zertifikat Ihres vCenter-Servers herunter und prüfen Sie es. Geben Sie den folgenden Befehl ein, um das Zertifikat herunterzuladen und in einer Datei namens vcenter.pem
zu speichern:
true | openssl s_client -connect VCENTER_IPVCENTER_IP:443 -showcerts 2>/dev/null | sed -ne '/-BEGIN/,/-END/p' > vcenter.pem
Ersetzen Sie VCENTER_IP
durch die IP-Adresse Ihres vCenter-Servers.
Öffnen Sie die Zertifikatsdatei, um den "Subject Common Name" und den "Subject Alternative Name" zu ermitteln:
openssl x509 -in vcenter.pem -text -noout
Die Ausgabe enthält den Subject
Common Name (CN). Dies kann eine IP-Adresse oder ein Hostname sein. Beispiel:
Subject: ... CN = 203.0.113.100
Subject: ... CN = my-host.my-domain.example
Die Ausgabe kann auch unter Subject Alternative Name
einen oder mehrere DNS-Namen enthalten:
X509v3 Subject Alternative Name: DNS:vcenter.my-domain.example
Wählen Sie den Common Name Subject
oder einen der DNS-Namen unter Subject Alternative Name
als Wert für vcenter.credentials.address
in Ihrer Konfigurationsdatei aus. Beispiel:
vcenter: credentials: address: "203.0.113.1" ...
vcenter: credentials: address: "my-host.my-domain.example" ...
vCenter.credentials.username
String. Ein vCenter-Server-Nutzerkonto. Das Nutzerkonto sollte die Administratorrolle oder entsprechende Berechtigungen haben. Weitere Informationen finden Sie unter vSphere-Anforderungen.
Beispiel:
username: "administrator@vsphere.local"
vCenter.credentials.password
String. Das Passwort für das vCenter-Server-Nutzerkonto. Beispiel:
password: "#STyZ2T#Ko2o"
vCenter.datacenter
String. Der Name Ihres vSphere-Rechenzentrums. Beispiel:
datacenter: "MY-DATACENTER"
vCenter.datastore
String. Der Name Ihres vSphere-Datenspeichers. Beispiel:
datastore: "MY-DATASTORE"
vCenter.cluster
String. Der Name Ihres vSphere-Clusters. Beispiel:
cluster: "MY-CLUSTER"
vCenter.network
String. Der Name des vSphere-Netzwerks, in dem Sie Ihre Administrator-Workstation erstellen möchten. Beispiel:
network: "MY-VM-NETWORK"
vCenter.resourcePool
String. Wenn Sie einen nicht standardmäßigen Ressourcenpool verwenden, geben Sie den Namen Ihres vSphere-Ressourcenpools an. Beispiel:
resourcePool: "MY-POOL"
Wenn Sie den Standardressourcenpool verwenden, geben Sie den folgenden Wert an:
resourcePool: "MY_CLUSTER/Resources"
Ersetzen Sie MY_CLUSTER
durch den Namen Ihres vSphere-Clusters.
Weitere Informationen finden Sie unter Specifying the root resource pool for a standalone host.
vCenter.caCertPath
String. Wenn ein Client wie GKE On-Prem eine Anfrage an vCenter-Server sendet, muss der Server seine Identität gegenüber dem Client durch Vorlage eines Zertifikats oder eines Zertifikatspakets bestätigen. Um das Zertifikat oder Paket zu prüfen, muss GKE On-Prem das Root-Zertifikat in der Vertrauenskette haben.
Legen Sie für vCenter.caCertPath
den Pfad des Root-Zertifikats fest. Beispiel:
caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert.pem"
Ihre VM-Installation hat eine Zertifizierungsstelle (Certificate Authority, CA), die ein Zertifikat für Ihren vCenter-Server ausstellt. Das Root-Zertifikat in der Vertrauenskette ist ein selbst signiertes Zertifikat, das von VMware erstellt wurde.
Wenn Sie nicht die VMware-Standardzertifizierungsstelle verwenden möchten, können Sie VMware so konfigurieren, dass eine andere Zertifizierungsstelle genutzt wird.
Wenn Ihr vCenter-Server ein von der VMware-Standardzertifizierungsstelle ausgestelltes Zertifikat verwendet, laden Sie es so herunter:
curl -k "https://SERVER_ADDRESS/certs/download.zip" > download.zip
Ersetzen Sie SERVER_ADDRESS
durch die Adresse Ihres vCenter-Servers.
Installieren Sie den Befehl unzip
und entpacken Sie die Zertifikatsdatei:
sudo apt-get install unzip unzip downloads.zip
Wenn der Befehl zum Entpacken beim ersten Mal nicht funktioniert, geben Sie den Befehl noch einmal ein.
Ermitteln Sie die Zertifikatsdatei in certs/lin
.
proxyUrl
String. Wenn der Computer, auf dem Sie gkeadm
ausführen, einen Proxyserver für den Zugriff auf das Internet verwendet, geben Sie für dieses Feld die URL des Proxyservers an. Beispiel:
proxyUrl: "https://my-proxy.example.local"
adminWorkstation.name
String. Ein Name Ihrer Wahl für Ihre Administrator-Workstation. Beispiel:
name: "my-admin-workstation"
adminWorkstation.cpus
Ganzzahl. Die Anzahl der virtuellen CPUs für Ihre Administrator-Workstation. Beispiel:
cpus: 4
adminWorkstation.memoryMB
Ganzzahl. Der Umfang an Arbeitsspeicher in Megabyte für Ihre Administrator-Workstation. Beispiel:
memoryMB: 8192
adminWorkstation.diskGB
Ganzzahl. Der Umfang des virtuellen Speicherplatzes für Ihre Administrator-Workstation in Gigabyte. Dieser muss mindestens 50 GB betragen. Beispiel:
diskGB: 50
adminWorkstation.network.ipAllocationMode
String. Legen Sie für dieses Feld "static"
fest. Beispiel:
ipAllocationMode: "static"
adminWorkstation.network.hostConfig.ip
String. Eine IP-Adresse Ihrer Wahl für Ihre Administrator-Workstation. Beispiel:
ip: "172.16.5.1"
adminWorkstation.network.hostConfig.gateway
String. Die IP-Adresse des Standardgateways für das Netzwerk, das Ihre Administrator-Workstation enthält. Beispiel:
gateway: "172.16.6.254"
adminWorkstation.network.hostConfig.netmask
String. Die Netzmaske für das Netzwerk, das Ihre Administrator-Workstation enthält. Beispiel:
netmask: "255.255.248.0"
adminWorkstation.network.hostConfig.dns
String-Array. Ein Array von IP-Adressen für DNS-Server, die Ihre Administrator-Workstation nutzen kann. Beispiel:
dns: - "172.16.255.1" - "172.16.255.2"
adminWorkstation.proxyUrl
String. Wenn sich Ihr Netzwerk hinter einem Proxyserver befindet und Sie möchten, dass sowohl Ihre Administrator-Workstation als auch Ihre GKE On-Prem-Cluster denselben Proxyserver verwenden, legen Sie für adminworkstation.proxyURL
die URL des Proxyservers fest.
Beispiel:
adminworkstation: proxyUrl: "http://aw-proxy.example"
adminWorkstation.ntpServer
String. Der Hostname oder die IP-Adresse des Network Time Protocol-Servers, den Ihre Administrator-Workstation verwenden soll. Beispiel:
ntpServer: "216.239.35.0"
Wenn Sie dieses Feld leer lassen, verwendet GKE On-Prem "ntp.ubuntu.com"
.
Im Folgenden sehen Sie das Beispiel für eine Datei admin-ws-config.yaml
mit Werten:
gcp: whitelistedServiceAccountKeyPath: "my-key-folder/whitelisted-key.json" vCenter: credentials: address: "203.0.113.1" username: "administrator.vsphere.local" password: "#STyZ2T#Ko2o" datacenter: "MY-DATACENTER" datastore: "MY-DATASTORE" cluster: "MY-CLUSTER" network: "MY-VM-NETWORK" resourcePool: "MY-POOL" caCertPath: "/usr/local/google/home/me/certs/the-root.cert" proxyUrl: "" adminWorkstation: name: "my-admin-workstation" cpus: 4 memoryMB: 8192 diskGB: 50 network: ipAllocationMode: "static" hostConfig: ip: "172.16.5.1" gateway: "172.16.6.254" netmask: "255.255.248.0" dns: - "172.16.255.1" - "172.16.255.2 proxyUrl: "" ntpServer: "216.239.35.0"
Administrator-Workstation erstellen
Wenn Sie mit gkeadm
eine Administrator-Workstation und eine Reihe von Dienstkonten erstellen möchten, müssen Sie dem standardmäßigen Cloud-Rechnungskonto die IAM-Rollen resourcemanager.projectIamAdmin
und serviceusage.serviceUsageAdmin
zuweisen.
So rufen Sie das Standardkonto auf:
gcloud config get-value account
So erteilen Sie die erforderlichen Rollen:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:DEFAULT_ACCOUNT" \ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:DEFAULT_ACCOUNT" \ --role="roles/serviceusage.serviceUsageAdmin"
Ersetzen Sie Folgendes:
PROJECT_ID
: Die ID Ihres Connect-Projekts.DEFAULT_ACCOUNT
: Das standardmäßige Cloud-Rechnungskonto.
Erstellen Sie Ihre Administrator-Workstation und eine Reihe von Dienstkonten: Wenn Sie Ihre Dienstkonten manuell anlegen und konfigurieren möchten, lassen Sie das Flag --auto-create-service-accounts
weg.
./gkeadm create admin-workstation --auto-create-service-accounts
Die Ausgabe enthält detaillierte Informationen zur Erstellung Ihrer Administrator-Workstation. Beispielsweise können Sie darin sehen, dass gkeadm
die folgenden Aufgaben ausgeführt hat:
Es wurden Vorabprüfungen ausgeführt.
Ein OVA-Image wurde heruntergeladen und als vSphere-Vorlage hochgeladen.
Ein SSH-Schlüssel wurde erstellt.
Eine VM für die Administrator-Workstation wurde erstellt.
Die auf der Administrator-Workstation installierten
gkectl
- und Docker-Versionen wurden ausgegeben.Es wurden Informationen zum NTP-Server auf der Administrator-Workstation ausgegeben.
Dienstkonten und deren JSON-Schlüsseldateien wurden erstellt. Diese Dienstkonten sind Mitglieder des Projekts, das dem Dienstkonto auf der Zulassungsliste übergeordnet ist.
Den Dienstkonten wurden die entsprechenden IAM-Rollen zugewiesen. Diese Rollen werden für das Projekt gewährt, das dem Dienstkonto auf der Zulassungsliste übergeordnet ist.
JSON-Schlüsseldateien für die Dienstkonten wurden auf die Administrator-Workstation kopiert.
Die CA-Zertifikatsdatei für Ihren vCenter-Server wurde auf die Administrator-Workstation kopiert.
config.yaml
auf der Administrator-Workstation wurde vorbereitet. Sie verwendenconfig.yaml
später zum Erstellen von Clustern.
... - Validation Category: vCenter - [SUCCESS] Credentials - [SUCCESS] Version - [SUCCESS] Datacenter - [SUCCESS] Datastore - [SUCCESS] Resource Pool - [SUCCESS] Network All validation results were SUCCESS. ****************************************** Admin workstation VM successfully created: - Name: my-admin-workstation - IP: 172.16.5.1 - SSH Key: /usr/local/google/home/me/.ssh/gke-admin-workstation ****************************************** Printing gkectl and docker versions on admin workstation... gkectl version gkectl 1.3.1-gke.0 (git-3aaf91927) docker version Client: Version: 19.03.2 API version: 1.40 Go version: go1.12.9 Git commit: 6a30dfca03 Built: Mon Sep 30 22:47:02 2019 OS/Arch: linux/amd64 Experimental: false ... Getting allowlisted service account... Creating other service accounts and JSON key files... - log-mon-sa-2004211642 - connect-agent-sa-2004211642 - connect-register-sa-2004211642 Enabling APIs... - project my-project - serviceusage.googleapis.com - iam.googleapis.com - cloudresourcemanager.googleapis.com Configuring IAM roles for service accounts... - my-allowlisted-sa for project my-project - roles/serviceusage.serviceUsageViewer - roles/iam.serviceAccountCreator - roles/iam.roleViewer - log-mon-sa-2004211642 for project my-project - roles/stackdriver.resourceMetadata.writer - roles/logging.logWriter - roles/monitoring.metricWriter - connect-agent-sa-2004211642 for project my-project - roles/gkehub.connect - connect-register-sa-2004211642 for project my-project - roles/gkehub.admin - roles/serviceusage.serviceUsageViewer Copying files to admin workstation... - /usr/local/google/home/me/certs/vcenter-ca-cert.pem - /usr/local/google/home/me/service-account-keys/whitelisted-key.json - log-mon-sa-2004211642.json - connect-agent-sa-2004211642.json - connect-register-sa-2004211642.json Preparing config.yaml for gkectl... ******************************************************************** Admin workstation is ready to use. 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 ******************************************************************** Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation
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 finden Sie eine GKE On-Prem-Konfigurationsdatei, Ihre CA-Zertifikatsdatei und die JSON-Schlüsseldateien für Ihre Dienstkonten:
config.yaml connect-agent-sa-200303-143027.json connect-register-sa-200303-143027.json log-mon-sa-200303-143027.json the-root.crt whitelisted-key.json
GKE On-Prem-Konfigurationsdatei prüfen
Auf Ihrer Administrator-Workstation wurde Ihre Konfigurationsdatei mit dem Namen config.yaml
erstellt. Sie verwenden diese Datei später zum Erstellen Ihrer Administrator- und Nutzercluster. Öffnen Sie config.yaml
mit einem Texteditor. Beachten Sie, dass viele Felder bereits Werte enthalten, die Sie in der Datei admin-ws-config.yaml
angegeben haben. Beispiel:
vcenter: credentials: address: 203.0.113.1 username: administrator@vsphere.local password: STyZ2T#Ko2o datacenter: MY-DATACENTER datastore: MY-DATASTORE cluster: MY-CLUSTER network: MY-VM-NETWORK … gkeconnect: projectid: my-project-id registerserviceaccountkeypath: /home/ubuntu/connect-register-sa-xxx.json agentserviceaccountkeypath: /home/ubuntu/connect-agent-sa-xxx.json stackdriver: projectid: my-project-id clusterlocation: "" enablevpc: false serviceaccountkeypath: /home/ubuntu/log-mon-sa-xxx.json
Ein einzelnes Google Cloud-Projekt verwenden
Die GKE On-Prem-Konfigurationsdatei enthält mehrere Felder, in denen Sie eine Google Cloud-Projekt-ID angeben können. Beispielsweise haben Sie die Möglichkeit, eine Projekt-ID für gkeconnect
und eine andere Projekt-ID für stackdriver
festzulegen:
gkeconnect: projectid: "" ... stackdriver: projectid: ""
Wenn gkeadm
Ihre GKE On-Prem-Konfigurationsdatei vorbereitet hat, werden alle projectid
-Felder auf das Projekt festgelegt, das dem Dienstkonto auf der Zulassungsliste übergeordnet ist. Außerdem hat gkeadm
Ihren Dienstkonten Rollen für das Projekt zugewiesen, das dem Dienstkonto auf der Zulassungsliste übergeordnet ist.
Kurz gesagt: gkeadm
hat ein einzelnes Google Cloud-Projekt verwendet.
Wenn Sie die erhöhte Flexibilität durch Verwendung mehrerer Google Cloud-Projekte nutzen möchten, müssen Sie die projectid
-Felder manuell ausfüllen und Ihren Dienstkonten manuell Rollen zuweisen. Weitere Informationen dazu finden Sie unter Mehrere Google Cloud-Projekte verwenden.