Auf dieser Seite werden die Schritte beschrieben, die Sie vor der Installation von Anthos-Clustern in AWS (GKE in AWS) ausführen müssen.
Umgebung
Zum Installieren von Anthos-Cluster in AWS benötigen Sie eine Umgebung, in der Sie eine Vielzahl von Tools installieren und ausführen können. Bei den folgenden Schritten wird davon ausgegangen, dass Sie eine Bash-Shell unter Linux oder macOS verwenden. Wenn Sie nicht auf eine Bash-Shell-Umgebung zugreifen können, verwenden Sie Cloud Shell.
AWS-Anforderungen
Um dieses Thema abzuschließen, benötigen Sie ein AWS-Konto mit Befehlszeilenzugriff und zwei Schlüssel für AWS Key Management Service (KMS) in derselben Region wie Ihre Nutzercluster.
Weitere Informationen zu anderen erforderlichen AWS-Ressourcen finden Sie unter Anforderungen.
AWS konfigurieren
Hinweise
Führen Sie die folgenden Schritte aus, bevor Sie diesen Abschnitt ausführen:
- Laden Sie die AWS-Befehlszeile herunter und installieren Sie sie.
Bestätigen Sie die Installation, indem Sie
aws --version
ausführen. Wenn die ausführbare Datei nicht gefunden wird, fügen Sie das Toolaws
zuPATH
hinzu. - Konfigurieren Sie Ihre AWS IAM-Anmeldedaten und Ihre AWS-Region mit
aws configure
.
Administratorberechtigungen
Für Anthos-Cluster in AWS muss der Ersteller eines Verwaltungsdiensts bestimmte Berechtigungen haben. Bevor Sie einen Verwaltungsdienst oder Nutzercluster erstellen können, erstellen oder erhalten Sie Zugriff auf AWS IAM-Anmeldedaten, die den Anforderungen entsprechen.
KMS-Schlüssel erstellen
Anthos-Cluster in AWS benötigt zwei AWS KMS-Schlüssel. Die KMS-Schlüssel verschlüsseln Folgendes:
- Daten während der Installation mit Umschlagverschlüsselung
- Secrets auf Anwendungsebene in Ihren Nutzerclustern
Führen Sie die folgenden Schritte aus, um zwei AWS-KMS-Schlüssel zu erstellen.
Befehlszeile
Erstellen Sie in Ihrem AWS-Konto einen KMS-Schlüssel.
aws kms create-key
Die Ausgabe enthält die Metadaten des Schlüssels.
Kopieren Sie in der Ausgabe des vorherigen Befehls den Amazon-Ressourcennamen (ARN) des Schlüssels aus dem Feld
Arn
. Beispielsweise hat ein Schlüssel in der Regionus-west-2
den ARNarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
.Erstellen Sie mit
aws kms create-alias
einen Alias für den Schlüssel. Mit einem Alias können Sie Ihre AWS-KMS-Schlüssel nach Namen verwalten.aws kms create-alias \ --alias-name=alias/key-name \ --target-key-id=key-arn
Wiederholen Sie die vorherigen Schritte für einen weiteren Schlüssel.
Console
- Melden Sie sich bei der AWS-Konsole an.
- Gehen Sie zu KMS und wählen Sie in der Seitenleiste Customer managed keys aus.
- Klicken Sie auf Create key.
- Behalten Sie die Standardoptionen bei.
- Wählen Sie den Schlüssel aus der Liste aus, nachdem er erstellt wurde.
- Kopieren Sie den ARN des Schlüssels.
- Wiederholen Sie die vorherigen Schritte für einen weiteren Schlüssel.
Google Cloud-Anforderungen
Einige der Schritte in diesem Dokument funktionieren möglicherweise nicht richtig, wenn Ihre Organisation Einschränkungen auf Ihre Google Cloud-Umgebung anwendet. In diesem Fall können Sie möglicherweise keine Aufgaben wie das Erstellen öffentlicher IP-Adressen oder Dienstkontoschlüssel ausführen. Wenn Sie eine Anfrage senden, die einen Fehler zu Einschränkungen zurückgibt, finden Sie entsprechende Informationen unter Anwendungen in einer eingeschränkten Google Cloud-Umgebung entwickeln.
Hinweise
Sorgen Sie dafür, dass Sie die Projektinhaberberechtigungen für ein Google-Konto haben, damit Sie APIs in dem Google Cloud-Projekt aktivieren können, in dem Sie Ihre Anthos-Cluster in der AWS-Umgebung verbinden. Sie verwenden „Inhaberberechtigungen“ nur, um die Anthos-Cluster in AWS-Dienstkonten im folgenden Abschnitt zu erstellen.
Installieren Sie die Google Cloud CLI.
Die Anthos API muss für Ihr Google Cloud-Projekt aktiviert sein. Wenn Sie diese API aktivieren, können Sie andere Anthos-Features mit Ihrem Google Cloud-Projekt verwenden.
Anthos-Cluster in AWS-Dienstkonten erstellen
In diesem Abschnitt erstellen Sie drei IAM-Dienstkonten und -Schlüssel für Anthos-Cluster in AWS. Diese Dienstkonten werden in der folgenden Liste beschrieben:
Name | Rollen | Beschreibung |
---|---|---|
management-sa
|
gkehub.admin | Berechtigungen zum Verwalten von Hub-Mitgliedschaften |
hub-sa
|
gkehub.connect | Berechtigung zum Einrichten von Connect zwischen Ihren Nutzerclustern und Hub. |
node-sa
|
storage.objectViewer | Berechtigung zum Zugriff auf Container Registry |
Befehlszeile
Authentifizieren Sie sich mit dem Google Cloud CLI:
gcloud auth login &&\ gcloud auth application-default login
Sie werden zweimal aufgefordert,
cloud.google.com
aufzurufen und sich mit Ihrem Google-Konto zu authentifizieren.Legen Sie Ihr Google Cloud-Projekt als Umgebungsvariable fest und legen Sie Ihre Standard-project-id mit der gcloud CLI fest.
export PROJECT_ID=project-id gcloud config set project $PROJECT_ID
Ersetzen Sie den Wert von project-id durch Ihr Google Cloud-Projekt.
Aktivieren Sie die Google Cloud APIs.
gcloud services enable anthos.googleapis.com gcloud services enable cloudresourcemanager.googleapis.com gcloud services enable gkehub.googleapis.com gcloud services enable gkeconnect.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com gcloud services enable serviceusage.googleapis.com gcloud services enable stackdriver.googleapis.com gcloud services enable storage-api.googleapis.com gcloud services enable storage-component.googleapis.com
Erstellen Sie die Dienstkonten mit
gcloud
, indem Sie die folgenden Befehle ausführen.gcloud iam service-accounts create management-sa gcloud iam service-accounts create hub-sa gcloud iam service-accounts create node-sa
Laden Sie die Schlüssel für jedes Dienstkonto mit
gcloud
herunter, indem Sie die folgenden Befehle ausführen.gcloud iam service-accounts keys create management-key.json \ --iam-account management-sa@$PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create hub-key.json \ --iam-account hub-sa@$PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create node-key.json \ --iam-account node-sa@$PROJECT_ID.iam.gserviceaccount.com
Weisen Sie dem Verwaltungsdienstkonto Rollen zu.
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/gkehub.admin
Weisen Sie dem Hub-Dienstkonto Rollen zu.
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/gkehub.connect
Weisen Sie dem Knotendienstkonto Rollen zu.
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:node-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/storage.objectViewer
Console
- Öffnen Sie in der Google Cloud Console die Seite API-Bibliothek.
- Wählen Sie oben auf dem Bildschirm im Drop-down-Menü Ihr bevorzugtes Projekt aus.
Suchen und aktivieren Sie die folgenden APIs:
- Anthos
- Cloud Resource Manager
- Cloud Storage
- Cloud Logging
- Google Cloud Storage JSON API
- GKE Hub
- GKE Connect API
- Service Usage
- Stackdriver
- Stackdriver Monitoring
Öffnen Sie die Seite Dienstkonten.
Erstellen Sie als Nächstes ein Dienstkonto und weisen Sie dem
management-sa
-Dienstkonto Rollen zu.- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie für das Konto unter Name den Namen "management-sa" ein und klicken Sie auf Erstellen. Der Bildschirm Diesem Dienstkonto Zugriff auf das Projekt erteilen wird angezeigt.
- Fügen Sie die GKE-HUB-Administratorrollen hinzu.
- Klicken Sie auf Weiter. Der Bildschirm Nutzern Zugriff auf dieses Dienstkonto erteilen wird angezeigt.
- Klicken Sie auf Fertig. Der Bildschirm Dienstkonten für Projekt wird angezeigt.
- Suchen Sie die Zeile, die die E-Mail Ihres Dienstkontos,
management-sa@project_id.iam.gserviceaccount.com
, enthält. - Klicken Sie auf das Aktionsmenü more_vert für das Dienstkonto und wählen Sie Schlüssel verwalten aus.
- Klicken Sie auf das Drop-down-Menü Schlüssel hinzufügen.
- Klicken Sie auf Neuen Schlüssel erstellen.
- Wählen Sie als Schlüsseltyp JSON aus und klicken Sie auf Erstellen. Der Browser lädt den Dienstkontoschlüssel herunter.
- Benennen Sie die Datei in
management-key.json
um.
Erstellen Sie als Nächstes ein Dienstkonto und weisen Sie dem
hub-sa
-Dienstkonto Rollen zu.- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie für das Konto unter Name den Namen "hub-sa" ein und klicken Sie auf Erstellen. Der Bildschirm Diesem Dienstkonto Zugriff auf das Projekt erteilen wird angezeigt.
- Fügen Sie die Rolle "GKE-Hub-Verbindungs-Agent" hinzu.
- Klicken Sie auf Weiter. Der Bildschirm Nutzern Zugriff auf dieses Dienstkonto erteilen wird angezeigt.
- Klicken Sie auf Fertig. Der Bildschirm Dienstkonten für Projekt wird angezeigt.
- Suchen Sie die Zeile, die die E-Mail Ihres Dienstkontos,
hub-sa@project_id.iam.gserviceaccount.com
, enthält. - Klicken Sie auf das Aktionsmenü more_vert für das Dienstkonto und wählen Sie Schlüssel verwalten aus.
- Klicken Sie auf das Drop-down-Menü Schlüssel hinzufügen.
- Klicken Sie auf Neuen Schlüssel erstellen.
- Wählen Sie als Schlüsseltyp JSON aus und klicken Sie auf Erstellen. Der Browser lädt den Dienstkontoschlüssel herunter.
- Benennen Sie die Datei in
hub-key.json
um.
Erstellen Sie als Nächstes ein Dienstkonto und weisen Sie dem
node-sa
-Dienstkonto Rollen zu.- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie für das Konto unter Name den Namen "node-sa" ein und klicken Sie auf Erstellen. Der Bildschirm Diesem Dienstkonto Zugriff auf das Projekt erteilen wird angezeigt.
- Fügen Sie die Rolle „Storage-Objekt-Betrachter“ hinzu.
- Klicken Sie auf Fertig. Der Bildschirm Dienstkonten für Projekt wird angezeigt.
- Suchen Sie die Zeile, die die E-Mail Ihres Dienstkontos,
node-sa@project_id.iam.gserviceaccount.com
, enthält. - Klicken Sie auf das Aktionsmenü more_vert für das Dienstkonto und wählen Sie Schlüssel verwalten aus.
- Klicken Sie auf das Drop-down-Menü Schlüssel hinzufügen.
- Klicken Sie auf Neuen Schlüssel erstellen.
- Wählen Sie als Schlüsseltyp JSON aus und klicken Sie auf Erstellen. Der Browser lädt den Dienstkontoschlüssel herunter.
- Benennen Sie die Datei in
node-key.json
um.
anthos-gke-Befehlszeilentool
anthos-gke
ist ein Befehlszeilentool für Anthos-Cluster in AWS. Mit anthos-gke
erstellen Sie die Konfiguration und installieren einen Verwaltungsdienst. Die neueste Version von anthos-gke
ist aws-1.14.1-gke.0.
Das anthos-gke
-Befehlszeilentool unterstützt nur Linux und macOS.
Laden Sie die Binärdatei aus Cloud Storage herunter.
Linux
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
macOS
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
Aktualisieren Sie die Berechtigungen von
anthos-gke
und kopieren Sie sie in/usr/local/bin
.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
Prüfen Sie, ob die Version
aws-1.14.1-gke.0
ist.anthos-gke version
Berechtigungen für das anthos-gke-Befehlszeilentool
Um das anthos-gke
-Befehlszeilentool zu verwenden, muss der Nutzer, der den Befehl ausführt, die Rollen „ServiceUsageViewer“ und „StorageAdmin“ haben. Führen Sie die folgenden Befehle aus, um die Rollen Ihrem IAM-Hauptkonto hinzuzufügen:
gcloud projects add-iam-policy-binding PROJECT_NAME \
--member user:USER_NAME \
--role roles/serviceusage.serviceUsageViewer
gcloud projects add-iam-policy-binding PROJECT_NAME \
--member user:USER_NAME \
--role roles/storage.admin
Ersetzen Sie Folgendes:
PROJECT_NAME
: Ihr Google Cloud-ProjektUSER_NAME
: Nutzername, der dasanthos-gke
-Befehlszeilentool ausführt. Wenn Sie ein Dienstkonto nutzen, verwenden SieserviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
.
Terraform
Das anthos-gke
-Tool generiert Terraform-Konfigurationsdateien und ruft das terraform
-Befehlszeilentool auf.
Anthos-Cluster in AWS erfordern eine Version von Terraform nach v0.14.3. Mit dem folgenden Befehl können Sie Ihre Terraform-Version prüfen:
terraform version
Wenn Ihre Version älter als v0.14.3 ist, laden Sie Terraform herunter und installieren Sie es, bevor Sie einen verwalteten Dienst erstellen.
Terraform aktualisieren
Führen Sie ein Upgrade von Terraform nach der Installation von Anthos-Clustern in AWS durch. Aktualisieren Sie dazu Ihre Terraform-Binärdatei der Reihe nach über jede Nebenversion.
Wenn Sie beispielsweise Terraform von v0.12.x auf Version 0.14.x aktualisieren möchten, müssen Sie v0.13.x vorübergehend installieren. Führen Sie nach der Installation von Version 0.13.x anthos-gke aws
management init
und anthos-gke aws management apply
aus. Anthos-Cluster in AWS aktualisieren Ihre Konfiguration. Anschließend können Sie ein Upgrade auf Version 0.14.x durchführen.
Kubernetes
Anthos-Cluster in AWS benötigen kubectl
Version 1.17 oder höher. Sie können prüfen, welche Version von kubectl
verwendet wird, indem Sie folgenden Befehl ausführen:
kubectl version --client -o yaml | grep gitVersion
Wenn Sie nicht eine Version ab 1.17 haben, installieren Sie eine neuere Version von kubectl
.
Nächste Schritte
- Installieren Sie einen Verwaltungsdienst in einer dedizierten VPC mit einem Bastion Host
- Vorhandene Infrastruktur in eine vorhandene VPC einbinden