Admin-Workstation mit einer statischen IP-Adresse erstellen

Auf dieser Seite wird beschrieben, wie Sie eine Administrator-Workstation erstellen, mit der Sie GKE On-Prem installieren können.

In diesem Thema erstellen Sie eine Administrator-Workstation mit einer statischen IP-Adresse.

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.

Wenn Sie Ihre Befehle unter Linux ausführen, gibt es eine Alternative zu den Schritten in diesem Thema. Sie können das gkeadm-Tool verwenden, das einen Großteil der Erstellung der Administrator-Workstation automatisiert.

Übersicht

Die Administrator-Workstation ist eine vSphere-VM, die alle Tools enthält, die Sie zum Erstellen und Verwalten von GKE On-Prem-Clustern benötigen. Um die Administrator-Workstation zu erstellen, führen Sie die folgenden Schritte aus, die in diesem Artikel erläutert werden:

  • OVA-Datei (Open Virtual Appliance) der Administrator-Workstation herunterladen – ein komprimiertes Image der Administrator-Workstation-VM
  • govc, die Befehlszeilenschnittstelle zu vSphere verwenden, um die OVA-Datei als VM-Vorlage in vSphere zu importieren
  • HashiCorp Terraform-Konfigurationsdateien kopieren und ausfüllen
  • Mit Terraform-Version 0.11 die Administrator-Workstation-VM erstellen

Schlüssel für das Dienstkonto auf der Zulassungsliste erstellen

Wenn Sie noch keine JSON-Schlüsseldatei für Ihr Dienstkonto auf der Zulassungsliste haben, erstellen Sie jetzt eine solche Datei:

  1. gcloud auth login
  2. gcloud iam service-accounts keys create whitelisted-key.json \
    --iam-account [ALLOWLISTED_SERVICE_ACCOUNT_EMAIL]
    

Dabei ist [ALLOWLISTED_SERVICE_ACCOUNT_EMAIL] die E-Mail-Adresse Ihres Dienstkontos auf der Zulassungsliste.

OVA-Datei für die Administrator-Workstation herunterladen

Die OVA-Datei umfasst alle Clusterkomponenten, Befehlszeilentools und sonstige Entitäten, die zum Installieren und Verwalten von GKE On-Prem-Clustern erforderlich sind.

Aktivieren Sie Ihr Dienstkonto auf der Zulassungsliste:

gcloud auth activate-service-account --key-file [KEY_ALLOWLISTED_ACCOUNT]

Dabei ist [KEY_ALLOWLISTED_ACCOUNT] der Pfad zur JSON-Schlüsseldatei für das Dienstkonto auf der Zulassungsliste.

Laden Sie die neueste Version der OVA-Datei für die Administrator-Workstation und die zugehörige Signaturdatei herunter:

gsutil cp gs://gke-on-prem-release/admin-appliance/1.4.3-gke.3/gke-on-prem-admin-appliance-vsphere-1.4.3-gke.3.{ova,ova.1.sig} ./

OVA-Datei mit openssl prüfen

Prüfen Sie mithilfe von openssl die heruntergeladene OVA-Datei anhand des öffentlichen Schlüssels:

openssl dgst -verify - -signature gke-on-prem-admin-appliance-vsphere-1.4.3-gke.3.ova.1.sig gke-on-prem-admin-appliance-vsphere-1.4.3-gke.3.ova <<'EOF'
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
-----END PUBLIC KEY-----
EOF

Die erwartete Ausgabe dieses Befehls ist Verified OK.

OVA-Datei mit govc in vSphere importieren und als VM-Vorlage markieren

In den folgenden Abschnitten führen Sie diese Schritte aus:

  1. Einige Variablen erstellen, die Elemente Ihrer vCenter Server- und vSphere-Umgebung deklarieren
  2. OVA-Datei für die Administrator-Workstation in vSphere importieren und als VM-Vorlage markieren

Variablen für govc erstellen

Bevor Sie die OVA-Datei für die Administrator-Workstation in vSphere importieren, müssen Sie für govc einige Variablen angeben, die Elemente Ihrer vCenter Server- und vSphere-Umgebung deklarieren:

export GOVC_URL=https://[VCENTER_SERVER_ADDRESS]/sdk
export GOVC_USERNAME=[VCENTER_SERVER_USERNAME]
export GOVC_PASSWORD=[VCENTER_SERVER_PASSWORD]
export GOVC_DATASTORE=[VSPHERE_DATASTORE]
export GOVC_DATACENTER=[VSPHERE_DATACENTER]
export GOVC_INSECURE=true

Sie können entweder den Standardressourcenpool von vSphere verwenden oder einen eigenen erstellen:

# If you want to use a resource pool you've configured yourself, export this variable:
export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources/[VSPHERE_RESOURCE_POOL]
# If you want to use vSphere's default resource pool, export this variable instead:
export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources

Dabei gilt:

  • [VCENTER_SERVER_ADDRESS] ist die IP-Adresse oder der Hostname Ihres vCenter Servers.
  • [VCENTER_SERVER_USERNAME] ist der Nutzername eines Kontos, das die Administratorrolle oder gleichwertige Berechtigungen in vCenter Server hat.
  • [VCENTER_SERVER_PASSWORD] ist das Passwort des vCenter Server-Kontos.
  • [VSPHERE_DATASTORE] ist der Name des Datenspeichers, den Sie in Ihrer vSphere-Umgebung konfiguriert haben.
  • [VSPHERE_DATACENTER] ist der Name des Rechenzentrums, das Sie in Ihrer vSphere-Umgebung konfiguriert haben.
  • [VSPHERE_CLUSTER] ist der Name des Clusters, den Sie in Ihrer vSphere-Umgebung konfiguriert haben.
  • Wenn Sie einen nicht standardmäßigen Ressourcenpool verwenden,
  • [VSPHERE_RESOURCE_POOL] ist der Name des Ressourcenpools, den Sie für Ihre vSphere-Umgebung konfiguriert haben.

Variablen für Ihren Proxy erstellen

Wenn Sie einen Proxy verwenden, exportieren Sie Variablen für die HTTP- und HTTPS-Adresse, wobei [PROXY_ADDRESS] die IP-Adresse oder der Hostname des Proxys ist:

export HTTP_PROXY=http://[PROXY_ADDRESS]
export HTTPS_PROXY=https://[PROXY_ADDRESS]

OVA-Datei in vSphere importieren: Standard-Switch

Wenn Sie einen vSphere Standard Switch verwenden, importieren Sie die OVA-Datei mit diesem Befehl in vSphere:

govc import.ova -options - gke-on-prem-admin-appliance-vsphere-1.4.3-gke.3.ova <<EOF
{
  "DiskProvisioning": "thin",
  "MarkAsTemplate": true
}
EOF

OVA in vSphere importieren: Verteilter Switch

Wenn Sie einen vSphere Distributed Switch verwenden, importieren Sie die OVA-Datei mit diesem Befehl in vSphere, wobei [YOUR_DISTRIBUTED_PORT_GROUP_NAME] der Name Ihrer verteilten Portgruppe ist:

govc import.ova -options - gke-on-prem-admin-appliance-vsphere-1.4.3-gke.3.ova <<EOF
{
  "DiskProvisioning": "thin",
  "MarkAsTemplate": true,
  "NetworkMapping": [
      {
          "Name": "VM Network",
          "Network": "[YOUR_DISTRIBUTED_PORT_GROUP_NAME]"
      }
  ]
}
EOF

Terraform-Konfigurationsdateien kopieren

Erstellen Sie ein Verzeichnis für Ihre Terraform-Dateien:

mkdir [TERRAFORM_DIR]

Dabei ist [TERRAFORM_DIR] der Pfad eines Verzeichnisses, in dem Sie Ihre Terraform-Dateien speichern möchten.

Kopieren Sie die folgenden TF- und TFVARS-Dateien und speichern Sie sie in [TERRAFORM_DIR]/terraform.tf bzw. [TERRAFORM_DIR]/terraform.tfvars.

Die TF-Datei ist die Terraform-HCL-Konfiguration, die die VM-Erstellung durchführt.

Die hier angegebenen Terraform-Dateien gelten für eine Administrator-Workstation mit einer statischen IP-Adresse. Wenn Sie eine Administrator-Workstation erstellen möchten, die ihre IP-Adresse über DHCP abruft, verwenden Sie die Terraform-Dateien, die unter Administrator-Workstation mit DHCP erstellen beschrieben sind.

SSH-Schlüssel erstellen

Erstellen Sie einen SSH-Schlüssel, damit Sie von Ihrem lokalen Laptop oder Ihrer lokalen Workstation aus eine SSH-Verbindung zur Administrator-Workstation herstellen können. Unter Linux-basierten Betriebssystemen können Sie ssh-keygen verwenden:

ssh-keygen -t rsa -f ~/.ssh/vsphere_workstation -N ""

TFVARS-Datei ändern

Öffnen Sie terraform.tfvars in einem Texteditor und geben Sie Werte für die folgenden Variablen an. Viele dieser Werte finden Sie, wenn Sie sich beim vCenter Client anmelden:

vcenter_user

Geben Sie als String ein vCenter Server-Nutzerkonto an. Das Nutzerkonto sollte die Administratorrolle oder gleichwertige Berechtigungen haben (siehe vSphere-Anforderungen).

Beispiel:

vcenter_user = "administrator@vsphere.local"

vcenter_password

Geben Sie das Passwort des vCenter Server-Nutzerkontos als String an. Beispiel:

vcenter_password = "#STyZ2T#Ko2o"

vcenter_server

Geben Sie die IP-Adresse oder den Hostnamen Ihres vCenter Servers als String an. Beispiel:

vcenter_server = "198.51.100.2"

ssh_public_key_path

Geben Sie den Pfad zu Ihrem öffentlichen SSH-Schlüssel an. Sie haben diesen in einem vorherigen Schritt erstellt:

ssh_public_key_path = "~/.ssh/vsphere_workstation.pub"

vm_name

Geben Sie einen Namen Ihrer Wahl für die Administrator-Workstation an. Beispiel:

vm_name = "my-admin-workstation"

datastore

Geben Sie den Namen Ihres vSphere-Datenspeichers als String an. Beispiel:

datastore = "MY-DATASTORE"

datacenter

Geben Sie den Namen Ihres vSphere-Rechenzentrums als String an. Beispiel:

datacenter = "MY-DATACENTER"

cluster

Geben Sie den Namen Ihres vSphere-Clusters als String an. Beispiel:

cluster = "MY-CLUSTER"

resource_pool

Wenn Sie einen nicht standardmäßigen Ressourcenpool verwenden, geben Sie den Namen Ihres vSphere-Ressourcenpools als String an. Beispiel:

resource_pool = "MY-POOL"

Wenn Sie den Standardressourcenpool verwenden, geben Sie den folgenden Wert an:

resource_pool = "[MY_CLUSTER]/Resources"

Dabei ist [MY_CLUSTER] der Name Ihres vSphere-Clusters.

Weitere Informationen finden Sie unter Root-Ressourcenpool für einen eigenständigen Host angeben.

network

Geben Sie das vSphere-Netzwerk, in dem Sie die Administrator-Workstation erstellen möchten, als String an. Beispiel:

network = "MY-VM-NETWORK"

vm_template

Geben Sie den Namen der VM-Vorlage als String an. Sie haben die OVA-Datei in einem vorherigen Schritt importiert und als Vorlage markiert. Der Vorlagenname hat nicht die Endung .ova.

vm_template = "gke-on-prem-admin-appliance-vsphere-1.4.3-gke.3"

ipv4_address

Geben Sie eine statische IPv4-IP-Adresse für die Administrator-Workstation an. Beispiel:

ipv4_address = "203.0.113.1"

ipv4_netmask_prefix_length

Geben Sie die Anzahl der Bits in der Subnetzmaske des Netzwerks an, in dem Sie Ihre Administrator-Workstation erstellen möchten. Beispiel:

ipv4_netmask_prefix_length = "22"

ipv4_gateway

Geben Sie die IP-Adresse des Standardgateways des Subnetzes an, in dem die Administrator-Workstation erstellt werden soll. Beispiel:

ipv4_gateway = "198.51.100.1

dns_nameservers

Geben Sie getrennt durch Kommas DNS-Nameserver an, die von der Administrator-Workstation verwendet werden sollen. Beispiel:

dns_nameservers = "8.8.8.8,8.8.4.4"

Administrator-Workstation erstellen

Jetzt können Sie die Administrator-Workstation-VM erstellen. Verwenden Sie für die Schritte in diesem Abschnitt Terraform-Version 0.11.

  1. Wechseln Sie zu dem Verzeichnis, das Ihre Terraform-Konfigurationsdateien (TF und TFVARS) enthält:

  2. Initialisieren Sie Terraform im Verzeichnis und wenden Sie die Konfiguration an. Dies kann einige Minuten dauern:

    terraform init && terraform apply -auto-approve -input=false

SSH-Verbindung zur Administrator-Workstation herstellen

  1. Wechseln Sie zu dem Verzeichnis, das Ihre Terraform-Konfigurationsdateien enthält.

  2. Rufen Sie die IP-Adresse der Administrator-Workstation ab:

    terraform output ip_address

    Notieren Sie sich die IP-Adresse der Administrator-Workstation.

  3. Stellen Sie mithilfe des SSH-Schlüssels und der IP-Adresse eine SSH-Verbindung zur Administrator-Workstation her:

    ssh -i ~/.ssh/vsphere_workstation ubuntu@[ADMIN_WORKSTATION_IP_ADDRESS]
    

Prüfen, ob die Administrator-Workstation korrekt eingerichtet ist

Prüfen Sie, ob gkectl und docker auf Ihrer Administrator-Workstation installiert sind:

gkectl version
docker version

NTP-Server auf der Administrator-Workstation konfigurieren

Standardmäßig verwendet die Administrator-Workstation ntp.ubuntu.com als NTP-Server (Network Time Protocol). Wenn Ihre Organisation einen anderen Zeitserver verwendet, konfigurieren Sie die Administrator-Workstation so, dass derselbe NTP-Server wie an anderen Stellen in Ihrer Organisation verwendet wird.

Geben Sie die folgenden Befehle ein, um den NTP-Server auf Ihrer Administrator-Workstation zu konfigurieren:

sudo mkdir -p /etc/systemd/timesyncd.conf.d/

sudo bash -c "cat >> /etc/systemd/timesyncd.conf.d/cloud-init.conf" << EOF
[Time]
NTP=[NTP_SERVER]
EOF

sudo systemctl restart systemd-timesyncd
timedatectl status

Dabei ist [NTP_SERVER] der Hostname oder die IP-Adresse Ihres NTP-Servers.

Geben Sie den folgenden Befehl ein, um zu prüfen, ob Ihr NTP-Server funktioniert:

timedatectl

Die Ausgabe sieht etwa so aus:

                      Local time: Tue 2019-12-17 00:21:50 UTC
                  Universal time: Tue 2019-12-17 00:21:50 UTC
                        RTC time: Tue 2019-12-17 00:21:50
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Problembehebung

AccessDeniedException beim Herunterladen der OVA-Datei

Symptome

Beim Versuch, die OVA-Datei für die Administrator-Workstation und die Signatur herunterzuladen, wird folgender Fehler zurückgegeben:

AccessDeniedException: 403 whitelisted-service-account@project.iam.gserviceaccount.com does not have storage.objects.list access to gke-on-prem-release
Mögliche Ursache

Ihr Dienstkonto auf der Zulassungsliste ist nicht aktiviert.

Lösung

Aktivieren Sie Ihr Dienstkonto auf der Zulassungsliste. Wenn das Problem weiterhin besteht, wenden Sie sich an Google.

openssl kann die OVA-Datei für die Administrator-Workstation nicht validieren

Symptome

Wenn Sie openssl dgst für die OVA-Datei für die Administrator-Workstation ausführen, wird nicht Verified OK zurückgegeben.

Mögliche Ursache

Die OVA-Datei enthält ein Problem, das die erfolgreiche Validierung verhindert.

Lösung

Versuchen Sie, die OVA-Datei der Administrator-Workstation noch einmal herunterzuladen und bereitzustellen, wie unter OVA-Datei der Administrator-Workstation herunterladen beschrieben. Wenn das Problem weiterhin besteht, wenden Sie sich an Google.

Weitere Informationen finden Sie unter Fehlerbehebung.