Auf dieser Seite werden die Google Cloud-Ressourcen beschrieben, die Sie vor dem Erstellen von Clustern erstellen und konfigurieren müssen.
Hinweise
Erstellen Sie ein Google Cloud-Projekt und ein Rechnungskonto.
Wenn Sie kein Google Cloud-Projektinhaber sind, bitten Sie einen Projektinhaber, Ihnen die folgenden IAM-Rollen (Identity and Access Management) zu gewähren:
Rolle Zweck roles/compute.viewer Erforderlich: Erforderlich, wenn bmctl
das Feld clusterOperations.location in der Clusterkonfigurationsdatei validiert.roles/iam.serviceAccountAdmin Erforderlich: Erforderlich, um die Dienstkonten zu erstellen, die Google Distributed Cloud benötigt. roles/iam.securityAdmin Erforderlich: Erforderlich, um den Dienstkonten, die Google Distributed Cloud benötigt, IAM-Rollen zuzuweisen. roles/iam.serviceAccountKeyAdmin Erforderlich: Erforderlich, um JSON-Schlüsseldateien für die Dienstkonten zu erstellen, die Google Distributed Cloud benötigt. roles/serviceusage.serviceUsageAdmin Erforderlich: Erforderlich, um die Google APIs zu aktivieren, die Google Distributed Cloud benötigt. roles/gkeonprem.admin Optional: Erforderlich, wenn Sie Cluster mit GKE On-Prem API-Clients erstellen oder einen Cluster konfigurieren möchten, der von der GKE On-Prem API verwaltet werden soll. roles/gkehub.viewer
roles/container.viewerOptional: Erforderlich, wenn Sie in der Google Cloud Console auf die Seiten von GKE Enterprise und Google Kubernetes Engine zugreifen möchten. Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
APIs aktivieren
In Ihrem verknüpften Google Cloud-Projekt müssen mehrere Google APIs aktiviert sein. Google Distributed Cloud verwendet die APIs beim Erstellen von Clustern. Die APIs werden auch benötigt, um eine Verbindung zu Google Cloud aufrechtzuerhalten. Durch die Verbindung zu Google Cloud kann Google Distributed Cloud Cloud Logging und Cloud Monitoring sowie Flottenfeatures wie Cloud Service Mesh, Config Sync, Policy Controller und Config Controller verwenden.
Wenn Sie zum Erstellen von Clustern das bmctl
-Tool verwenden, können Sie das Flag --enable-apis
beim Ausführen von bmctl create config
einfügen. bmctl
aktiviert dann die im folgenden gcloud services enable
-Befehl aufgeführten APIs. Wenn Sie einen GKE On-Prem API-Client zum Erstellen eines Administratorclusters oder Nutzerclusters verwenden, müssen Sie die APIs vor dem Erstellen des Clusters aktivieren.
Aktivieren Sie die APIs mit folgenden Befehlen:
Melden Sie sich in der Google Cloud CLI an:
gcloud auth login
Aktivieren Sie folgende APIs:
gcloud services enable --project=PROJECT_ID \ anthos.googleapis.com \ anthosaudit.googleapis.com \ anthosgke.googleapis.com \ cloudresourcemanager.googleapis.com \ connectgateway.googleapis.com \ container.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ gkeonprem.googleapis.com \ iam.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ kubernetesmetadata.googleapis.com \ storage.googleapis.com
Führen Sie den folgenden Befehl aus, um zu sehen, welche APIs und Dienste in Ihrem Projekt aktiviert sind:
gcloud services list --project=PROJECT_ID \ --enabled
Dienstkonten konfigurieren
Zur Verwendung der Google APIs benötigt Google Distributed Cloud ein Dienstkonto, das mit bestimmten IAM-Rollen in Ihrem verknüpften Google Cloud-Projekt konfiguriert ist. Als Best Practice empfiehlt es sich, separate Dienstkonten für unterschiedliche Zwecke zu erstellen, insbesondere in Produktionsumgebungen.
Wenn Sie zum Erstellen von Clustern das bmctl
-Tool verwenden, können Sie das Flag --create-service-accounts
beim Ausführen von bmctl create config
angeben, damit bmctl
die Dienstkonten mit den erforderlichen IAM-Rollen erstellt.
Wenn Sie einen GKE On-Prem API-Client zum Erstellen eines Administratorclusters verwenden, erstellt der Befehl bmctl register bootstrap
standardmäßig die Dienstkonten mit den erforderlichen IAM-Rollen, wenn Sie den Befehl zum Erstellen eines Bootstrap-Clusters ausführen.
Die Dienstkonten sind auch für die Erstellung von Nutzerclustern erforderlich, sie wurden jedoch beim Erstellen des Administratorclusters erstellt und konfiguriert, der die Nutzercluster verwaltet.
In der folgenden Tabelle werden die Dienstkonten beschrieben, die automatisch erstellt werden:
Dienstkonto | Zweck | Rollen |
---|---|---|
anthos-baremetal-gcr | Google Distributed Cloud verwendet dieses Dienstkonto, um Container-Images aus Container Registry herunterzuladen. | Ohne |
anthos-baremetal-connect | Connect Agent verwendet dieses Dienstkonto, um eine Verbindung zwischen Ihrem Cluster und Google Cloud aufrechtzuerhalten. Dies ermöglicht den Zugriff auf den Cluster und auf Features zur Arbeitslastverwaltung, einschließlich der Google Cloud Console und des Verbindungsgateways für die Interaktion mit dem Cluster. | roles/gkehub.connect |
anthos-baremetal-register | Connect Agent verwendet dieses Dienstkonto, um Ihre Cluster bei einer Flotte zu registrieren. | roles/gkehub.admin |
anthos-baremetal-cloud-ops | Stackdriver Agent verwendet dieses Dienstkonto, um Logs und Messwerte von Clustern nach Cloud Logging und Cloud Monitoring zu exportieren. |
roles/logging.logWriter roles/monitoring.metricWriter roles/Stackdriver.resourceMetadata.writer roles/opsconfigmonitoring.resourceMetadata.writer roles/monitoring.dashboardEditor roles/monitoring.viewer roles/serviceusage.serviceUsageViewer roles/kubernetesmetadata.publisher.publisher |
Dienstkonten manuell konfigurieren
Wenn Sie möchten, können Sie die Dienstkonten manuell erstellen, mit den erforderlichen Rollen konfigurieren und JSON-Schlüsseldateien herunterladen, bevor Sie Cluster erstellen.
Wenn Sie bmctl
zum Erstellen von Clustern verwenden, fügen Sie der entsprechenden Clusterkonfigurationsdatei Verweise auf die JSON-Schlüsseldateien hinzu. Ein Beispiel finden Sie unter Konfigurationsdatei bearbeiten.
Wenn Sie eine GKE On-Prem API zum Erstellen eines Administratorclusters verwenden, können Sie die Schlüsseldateien angeben, wenn Sie bmctl register bootstrap
ausführen, um den Bootstrap-Cluster zu erstellen.
So erstellen Sie die Dienstkonten und Schlüsseldateien:
Achten Sie darauf, dass Sie sich auf Ihrer Administrator-Workstation im Verzeichnis
baremetal
befinden.Melden Sie sich in der Google Cloud CLI an, falls noch nicht geschehen:
gcloud auth login
Erstellen Sie die Dienstkonten:
gcloud iam service-accounts create anthos-baremetal-gcr \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-connect \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-register \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-cloud-ops \ --project=PROJECT_ID
Gewähren Sie den Dienstkonten die erforderlichen IAM-Rollen:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/gkehub.connect" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com" \ --role=roles/gkehub.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/stackdriver.resourceMetadata.writer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/opsconfigmonitoring.resourceMetadata.writer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.dashboardEditor" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.viewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/serviceusage.serviceUsageViewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/kubernetesmetadata.publisher"
Laden Sie die JSON-Schlüsseldateien des Dienstkontos herunter:
gcloud iam service-accounts keys create anthos-baremetal-gcr.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create connect-agent.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create connect-register.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create anthos-baremetal-cloud-ops.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com
Dienstkonto konfigurieren, das auf einen Cloud Storage-Bucket zugreifen kann
Sie verwenden ein Dienstkonto und eine Schlüsseldatei für den Zugriff auf Cloud Storage. Mit diesem Dienstkonto können Sie das automatische Hochladen von Snapshots von Clustern in Cloud Storage-Buckets aktivieren oder Images virtueller Maschinen (VM) aus Cloud Storage-Buckets zur Verwendung mit der VM-Laufzeit auf GDC importieren.
Führen Sie die folgenden Schritte aus, um das Dienstkonto und die Schlüsseldatei zu erstellen:
Sie müssen sich im Verzeichnis
baremetal
befinden.Melden Sie sich in der Google Cloud CLI an, falls noch nicht geschehen:
gcloud auth login
Aktivieren Sie die Cloud Storage API
storage.googleapis.com
in Ihrem Google Cloud-Projekt, falls noch nicht geschehen:gcloud services enable --project=PROJECT_ID \ storage.googleapis.com
Erstellen Sie ein Dienstkonto, mit dem der Cluster auf Cloud Storage-Buckets zugreifen kann:
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_ID
Ersetzen Sie
SA_NAME
durch den Namen des neuen Dienstkontos. Der Name des Dienstkontos wird im FormatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
in der E-Mail-Adresse angezeigt, die während der Erstellung bereitgestellt wird.Erstellen Sie eine benutzerdefinierte Rolle mit den folgenden Berechtigungen:
storage.buckets.create
storage.buckets.get
storage.buckets.list
storage.objects.create
resourcemanager.projects.get
gcloud iam roles create ROLE_ID \ --permissions=storage.buckets.create,storage.buckets.get,storage.buckets.list,storage.objects.create \ --project=PROJECT_ID
Ersetzen Sie
ROLE_ID
durch den Namen der neuen benutzerdefinierten Rolle, z. B.snapshotUpload
. Der vollständige Pfad dieser benutzerdefinierten Rolle hat das Formatprojects/PROJECT_ID/roles/ROLE_ID
.Fügen Sie dem Dienstkonto eine Richtlinienbindung hinzu:
gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member=serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role='projects/PROJECT_ID/roles/ROLE_ID'
Laden Sie die JSON-Schlüsseldatei des Dienstkontos herunter:
gcloud iam service-accounts keys create OUTPUT_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Weitere Informationen zum Erstellen von Cluster-Snapshots und zum automatischen Hochladen in einen Cloud Storage-Bucket finden Sie unter Snapshots zur Diagnose von Clusterproblemen erstellen.
Weitere Informationen zum Importieren von VM-Images aus Cloud Storage finden Sie unter Anmeldedaten zum Importieren von Images aus Cloud Storage für die VM-Laufzeit in GDC erstellen und verwenden.