Google Cloud-Ressourcen einrichten

Sie müssen nicht nur die Voraussetzungen für Installation, Hardware und Betriebssystem erfüllen, sondern auch Google Cloud-Projekte, APIs und Dienstkonten konfigurieren und einrichten, um GKE on Bare Metal auszuführen.

Beachten Sie, dass der Befehl bmctl bei der Clustererstellung automatisch Dienstkonten und APIs aktivieren kann. Sie können diese Dienste aber auch manuell einrichten, um die Abläufe genauer zu steuern.

Hinweise

Erstellen Sie ein Google Cloud-Projekt und ein Rechnungskonto.

Während der Installation müssen Sie die folgenden Anmeldedaten angeben:

  • Die privaten SSH-Schlüssel für den Zugriff auf Clusterknoten-Rechner.
  • Wenn Sie root nicht verwenden: den Anmeldename des Clusterknoten-Rechners.

Prüfen Sie, ob Sie alle erforderlichen Anmeldedaten haben, bevor Sie GKE on Bare Metal installieren.

Bei gcloud anmelden

  1. Melden Sie sich mit dem gcloud auth application-default-Log-in als Nutzer bei gcloud an:
  2. gcloud auth application-default login
    
    Sie benötigen die Rolle „Projektinhaber/-bearbeiter“, um die Funktionen zur automatischen API-Aktivierung und zur Erstellung von Dienstkonten zu verwenden (siehe unten). Sie können dem Nutzer auch die folgenden IAM-Rollen hinzufügen:
    • Dienstkontoadministrator
    • Zentraler Dienstkontoadministrator
    • Projekt-IAM-Administrator
    • Compute-Betrachter
    • Service Usage-Administrator
    Wenn Sie bereits ein Dienstkonto mit diesen Rollen haben, führen Sie Folgendes aus:
    export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
    
    JSON_KEY_FILE gibt den Pfad zur JSON-Schlüsseldatei Ihres Dienstkontos an.
  3. Rufen Sie Ihre Google Cloud-Projekt-ID ab, um sie bei der Clustererstellung zu verwenden:
  4. export CLOUD_PROJECT_ID=$(gcloud config get-value project)
    

Standardmäßige Google Cloud-Projekt-ID und -Rollen festlegen

Sie können Ihren Standard-project id auch zusätzlich zur Konfiguration von Dienstkonten festlegen.

Für GKE on Bare Metal benötigen Sie die Rollen owner oder editor in Ihrem Projekt.

Führen Sie zum Festlegen des Standardprojekts den folgenden Befehl aus und ersetzen Sie dabei PROJECT_ID durch Ihre Google Cloud-Projekt-ID:

gcloud config set project PROJECT_ID

APIs aktivieren

Bevor Sie GKE on Bare Metal installieren, müssen Sie im verknüpften Google Cloud-Projekt mehrere APIs aktivieren. Zum Aktivieren von APIs in Ihrem Projekt muss Ihnen eine der folgenden Rollen im Google Cloud-Projekt gewährt worden sein: roles/owner, roles/editor oder roles/serviceusage.serviceUsageAdmin.

Weitere Informationen finden Sie unter Einzelne Rolle zuweisen.

Wenn Sie die erforderlichen IAM-Berechtigungen haben, aktivieren Sie die folgenden APIs:

  • anthos.googleapis.com
  • anthosaudit.googleapis.com
  • anthosgke.googleapis.com
  • cloudresourcemanager.googleapis.com
  • connectgateway.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • iam.googleapis.com
  • logging.googleapis.com
  • monitoring.googleapis.com
  • opsconfigmonitoring.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.googleapis.com

Sie können diese Dienste auch mit dem bmctl-Tool aktivieren.

Dienstkonten manuell konfigurieren

Mit dem bmctl-Befehl von GKE on Bare Metal können beim Erstellen von Clustern automatisch Google-Dienstkonten und APIs eingerichtet werden.

Für eine größere Kontrolle über das System oder für eine optimierte Erstellung von Clustern mit einer Reihe von Diensten, Konten und Projekten können Sie diese Dienste manuell einrichten.

In Produktionsumgebungen sollten Sie separate Dienstkonten für unterschiedliche Zwecke erstellen. GKE on Bare Metal benötigt je nach Zweck die folgenden Arten von Google Cloud-Dienstkonten:

  • Für den Zugriff auf Container Registry (gcr.io) ist keine spezielle Rolle erforderlich.
  • Zum Registrieren eines Clusters in einer Flotte weisen Sie dem Dienstkonto in Ihrem Google Cloud-Projekt die IAM-Rolle roles/gkehub.admin zu.
  • Zum Herstellen einer Verbindung zu Flotten weisen Sie dem Dienstkonto in Ihrem Google Cloud-Projekt die IAM-Rolle roles/gkehub.connect zu.
  • Weisen Sie dem Dienstkonto in Ihrem Google Cloud-Projekt folgende IAM-Rollen zu, um Logs und Messwerte an die Operations-Suite von Google Cloud zu senden:

    • roles/logging.logWriter
    • roles/monitoring.metricWriter
    • roles/stackdriver.resourceMetadata.writer
    • roles/monitoring.dashboardEditor
    • roles/opsconfigmonitoring.resourceMetadata.writer

GKE on Bare Metal verbindet Ihre Cluster mit Google Cloud. Diese Verbindung aktiviert die folgenden Funktionen:

  • Connect, um den Bare-Metal-Cluster mit Google Cloud zu verbinden. Dies ermöglicht den Zugriff auf Cluster- und Arbeitslastverwaltungsfunktionen, einschließlich einer einheitlichen Benutzeroberfläche, der Cloud Console, für die Interaktion mit Ihrem Cluster.
  • Logging und Monitoring zum Aufrufen von Logs und Messwerten aus dem Cluster in der Cloud Console.
  • Automatische Uploads von Cluster-Snapshots in Cloud Storage-Buckets

So konfigurieren Sie den Zugriff manuell:

  • Aktivieren der erforderlichen Google-Dienste in Ihrem Cloud-Projekt
  • Die folgenden Dienstkonten mit den erforderlichen Rollen erstellen:
    • gcr-Dienstkonto: GKE on Bare Metal verwendet dieses Dienstkonto, um Container-Images aus Container Registry herunterzuladen.
    • Connect-Agent-Dienstkonto: Connect verwendet dieses Dienstkonto, um eine Verbindung zwischen Ihrem Cluster und Google Cloud aufrechtzuerhalten.
    • Connect-Register-Dienstkonto: Connect verwendet dieses Dienstkonto, um Ihre Cluster bei Google Cloud zu registrieren.
    • cloud-ops-Dienstkonto: Connect verwendet dieses Dienstkonto, um Logs und Messwerte aus Clustern nach Logging und Monitoring zu exportieren.
    • storage-agent-Dienstkonto: bmctl verwendet dieses Dienstkonto, um Snapshots von Clustern automatisch in Cloud Storage zu speichern.

  • JSON-Schlüsseldateien für jedes Dienstkonto herunterladen.

Anschließend fügen Sie den entsprechenden Clusterkonfigurationsdateien Verweise auf die JSON-Schlüsseldateien hinzu. Weitere Informationen finden Sie unter Cluster erstellen: Übersicht.

Dienstkonto zum Abrufen von Container-Images konfigurieren

So erstellen Sie das Dienstkonto und die Schlüsseldatei zum Abrufen von GKE on Bare Metal-Container-Images:

  1. Achten Sie darauf, dass Sie sich im Verzeichnis baremetal befinden.

  2. Erstellen Sie das Dienstkonto anthos-baremetal-gcr mit der erforderlichen Rolle und laden Sie die Schlüsseldatei herunter.

    Mit diesen Schritten wird die Schlüsseldatei anthos-baremetal-gcr.json im Verzeichnis baremetal erstellt:

    1. Erstellen Sie das Dienstkonto:

      gcloud iam service-accounts create anthos-baremetal-gcr --project=PROJECT_ID
      
    2. Laden Sie die JSON-Schlüsseldatei 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
      

Dienstkonten für die Verwendung mit Connect konfigurieren

So erstellen Sie die Dienstkonten und Schlüsseldateien:

  1. Sie müssen sich im Verzeichnis baremetal befinden.
  2. Aktivieren Sie die erforderlichen Google-Dienste in Ihrem Cloud-Projekt:
  3. gcloud services enable --project=PROJECT_ID \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        connectgateway.googleapis.com \
        cloudresourcemanager.googleapis.com \
        anthos.googleapis.com
  4. Erstellen Sie das anthos-baremetal-connect-Dienstkonto mit der erforderlichen Rolle und laden Sie die Schlüsseldatei herunter. Mit diesen Schritten wird die Schlüsseldatei anthos-baremetal-connect.json im Verzeichnis baremetal erstellt:
    1. Dienstkonto erstellen
    2. gcloud iam service-accounts create anthos-baremetal-connect --project=PROJECT_ID
    3. Gewähren Sie die Rolle gkehub.connect:
    4. gcloud projects add-iam-policy-binding  PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/gkehub.connect"
    5. Laden Sie die JSON-Schlüsseldatei des Dienstkontos herunter:
    6. gcloud iam service-accounts keys create connect-agent.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com
      
  5. Erstellen Sie das anthos-baremetal-register-Dienstkonto mit der erforderlichen Rolle und laden Sie die Schlüsseldatei herunter. Mit diesen Schritten wird die Schlüsseldatei anthos-baremetal-register.json im Verzeichnis baremetal erstellt:
    1. Dienstkonto erstellen
    2. gcloud iam service-accounts create anthos-baremetal-register \
          --project=PROJECT_ID
    3. Gewähren Sie die Rolle "gkehub.admin":
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com" \
          --role=roles/gkehub.admin
    5. Laden Sie die JSON-Schlüsseldatei des Dienstkontos herunter:
    6. anthos-baremetal-register
      gcloud iam service-accounts keys create connect-register.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com
      

Dienstkonto konfigurieren, um Logs zu prüfen und Projekte zu überwachen

So erstellen Sie das Dienstkonto und die Schlüsseldatei für Logging und Monitoring:

  1. Sie müssen sich im Verzeichnis baremetal befinden.
  2. Aktivieren Sie die erforderlichen Google-Dienste in Ihrem Cloud-Projekt:
  3. gcloud services enable --project PROJECT_ID \
        anthos.googleapis.com \
        anthosaudit.googleapis.com \
        anthosgke.googleapis.com \
        cloudresourcemanager.googleapis.com \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        logging.googleapis.com \
        monitoring.googleapis.com \
        opsconfigmonitoring.googleapis.com \
        serviceusage.googleapis.com \
        stackdriver.googleapis.com
    
  4. Erstellen Sie das anthos-baremetal-cloud-ops-Dienstkonto mit den erforderlichen Rollen und laden Sie die Schlüsseldatei herunter. Mit diesen Schritten wird die Schlüsseldatei anthos-baremetal-cloud-ops.json im Verzeichnis baremetal erstellt:
    1. Dienstkonto erstellen
    2. gcloud iam service-accounts create anthos-baremetal-cloud-ops \
          --project=PROJECT_ID
      
    3. Rolle "logging.logWriter" erteilen
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/logging.logWriter"
      
    5. Rolle "monitoring.metricWriter" zuweisen
    6. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.metricWriter"
      
    7. Rolle "roles/stackdriver.resourceMetadata.writer" gewähren
    8. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/stackdriver.resourceMetadata.writer"
      
    9. Rolle "roles/opsconfigmonitoring.resourceMetadata.writer" gewähren
    10. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/opsconfigmonitoring.resourceMetadata.writer"
      
    11. Rolle "roles/monitoring.dashboardEditor" gewähren
    12. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.dashboardEditor"
      
    13. Laden Sie die JSON-Schlüsseldatei des Dienstkontos herunter:
    14. 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. Sie können dieses Dienstkonto verwenden, um Snapshots von Clustern automatisch in Cloud Storage-Buckets hochzuladen oder VM-Images aus Cloud Storage-Buckets zur Verwendung mit der VM-Laufzeit in Google Distributed Cloud zu importieren.

Führen Sie die folgenden Schritte aus, um das Dienstkonto und die Schlüsseldatei zu erstellen:

  1. Sie müssen sich im Verzeichnis baremetal befinden.
  2. Aktivieren Sie die erforderlichen Google-Dienste in Ihrem Cloud-Projekt:
  3. gcloud services enable --project=PROJECT_ID \
        storage.googleapis.com
  4. Erstellen Sie ein Dienstkonto, mit dem Ihr Cluster auf Cloud Storage-Buckets zugreifen kann:
  5. gcloud iam service-accounts create anthos-baremetal-storage \
        --project=PROJECT_ID
  6. Weisen Sie dem Dienstkonto die Rolle storage.admin zu, damit es Daten in einen Cloud Storage-Bucket hochladen oder VM-Images importieren kann:
  7. gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-storage@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/storage.admin"
    
  8. Laden Sie die JSON-Schlüsseldatei des Dienstkontos herunter:
  9. gcloud iam service-accounts keys create anthos-baremetal-storage.json \
        --iam-account=anthos-baremetal-storage@PROJECT_ID.iam.gserviceaccount.com

Weitere Informationen zum Erstellen von Cluster-Snapshots und zum automatischen Hochladen dieser 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 VM-Laufzeit in Google Distributed Cloud erstellen und verwenden.