Alphacluster erstellen

Alpha-Cluster sind kurzlebige GKE-Cluster (Google Kubernetes Engine), die Kubernetes-Alpha-APIs und -Funktionen aktivieren und Alpha-Versionen von anstehenden Nebenversionen ausführen können. In diesem Dokument erfahren Sie, wie Sie einen Alphacluster erstellen, bestimmte Feature-Gates aktivieren oder deaktivieren und Alphapatch-Versionen im Release-Version „Schnell“ ausführen. Alphacluster sind für Early Adopters und Plattformadministratoren gedacht, die mit kommenden Kubernetes-Funktionen und ‑Versionen experimentieren möchten.

Weitere Informationen zur Funktionsweise von GKE-Clustern und zur Auswahl des zu erstellenden GKE-Cluster finden Sie unter GKE-Clusterarchitektur und Informationen zur Auswahl der Clusterkonfiguration.

Hinweis

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

  • Aktivieren Sie die Google Kubernetes Engine API.
  • Google Kubernetes Engine API aktivieren
  • Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit dem Befehl gcloud components update ab. Ältere gcloud CLI-Versionen unterstützen möglicherweise nicht die Ausführung der Befehle in diesem Dokument.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Kubernetes Engine-Clusteradministrator (roles/container.clusterAdmin) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Alpha-Clustern und zum Interagieren mit ihnen benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

IAM-Dienstkonten für GKE einrichten

GKE verwendet IAM-Dienstkonten, die an Ihre Knoten angehängt sind, um Systemaufgaben wie Logging und Monitoring auszuführen. Diese Knoten-Dienstkonten müssen in Ihrem Projekt mindestens die Rolle Kubernetes Engine Default Node Service Account (roles/container.defaultNodeServiceAccount) haben. Standardmäßig verwendet GKE das Compute Engine-Standarddienstkonto, das automatisch in Ihrem Projekt erstellt wird, als Knotendienstkonto.

So weisen Sie dem Compute Engine-Standarddienstkonto die Rolle roles/container.defaultNodeServiceAccount zu:

Console

  1. Rufen Sie die Seite Willkommen auf:

    Zur Begrüßungsseite

  2. Klicken Sie im Feld Projektnummer auf  In die Zwischenablage kopieren.
  3. Rufen Sie die IAM-Seite auf.

    IAM aufrufen

  4. Klicken Sie auf Zugriffsrechte erteilen.
  5. Geben Sie im Feld Neue Hauptkonten den folgenden Wert an:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    Ersetzen Sie PROJECT_NUMBER durch die kopierte Projektnummer.
  6. Wählen Sie im Menü Rolle auswählen die Rolle Kubernetes Engine Default Node Service Account aus.
  7. Klicken Sie auf Speichern.

gcloud

  1. So finden Sie Ihre Google Cloud Projektnummer:
    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"

    Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

    Die Ausgabe sieht etwa so aus:

    12345678901
    
  2. Weisen Sie dem Compute Engine-Standarddienstkonto die Rolle roles/container.defaultNodeServiceAccount zu:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/container.defaultNodeServiceAccount"

    Ersetzen Sie PROJECT_NUMBER durch die Projektnummer aus dem vorherigen Schritt.

Alpha-Cluster erstellen

Sie können einen Alphacluster mit der Google Cloud Console oder der gcloud CLI erstellen. Wir empfehlen die Verwendung der gcloud CLI aus folgenden Gründen:

  • Sie können Ihren Cluster in der Rapid-Release-Version registrieren. Dies wird für Alphacluster empfohlen.
  • Sie können die Alpha- oder Beta-Feature-Gates angeben, um sie anders als die Standardwerte zu aktivieren oder zu deaktivieren.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster erstellen auf.

    Zur Seite „Kubernetes-Cluster erstellen“

  2. Geben Sie im Bereich Clustergrundlagen Folgendes ein:

    1. Geben Sie den Namen für den Cluster ein.
    2. Wählen Sie als Standorttyp die Option Zonal und dann die gewünschte Zone für den Cluster aus.
    3. Wenn Sie einen multizonalen Cluster erstellen, klicken Sie das Kästchen Standardknotenstandorte angeben an und wählen Sie weitere Zonen aus, in denen die Knotenpools ausgeführt werden sollen.
    4. Wählen Sie in der Drop-down-Liste Release-Version die Option Kein Channel (eingestellt) aus.

    5. Optional: Geben Sie in der Drop-down-Liste Version eine Version der Steuerungsebene an.

  3. Optional: Konfigurieren Sie weitere Einstellungen für den neuen Cluster.

  4. Optional: Wenn Sie Ihren neuen Cluster bei einer Flotte registrieren möchten, wechseln Sie zum Abschnitt Erweiterte Einstellungen und folgen Sie der Google Cloud Console-Anleitung für Neuen Cluster erstellen und registrieren, um die Clusterregistrierung abzuschließen.

  5. Klicken Sie im Navigationsbereich unter Knotenpools auf default-pool.

  6. Geben Sie im Bereich Knotenpooldetails Folgendes ein:

    1. Geben Sie einen Namen für den standardmäßigen Knotenpool ein.
    2. Optional: Wählen Sie die Node-Version aus.
    3. Geben Sie die Anzahl der Knoten ein, die im Cluster erstellt werden sollen. Sie müssen verfügbare Ressourcenkontingente für die Knoten und ihre Ressourcen (z. B. Firewallrouten) haben.
    4. Optional: Sie können automatische Knotenupgrades deaktivieren. Wir empfehlen Ihnen jedoch, sich die Überlegungen zur Deaktivierung automatischer Knotenupgrades durchzulesen, bevor Sie diese Option wählen.
    5. Deaktivieren Sie die Optionen Automatisches Upgrade aktivieren und Automatische Reparatur aktivieren.
  7. Klicken Sie im Navigationsbereich unter Knotenpools auf Knoten.

  8. Wählen Sie in der Drop-down-Liste Image-Typ das gewünschte Knoten-Image aus.

  9. Wählen Sie die Maschinenkonfiguration aus, die standardmäßig für die Instanzen verwendet werden soll. Jeder Maschinentyp wird unterschiedlich abgerechnet. Der Standardmaschinentyp ist e2-medium. Informationen zu Preisen von Maschinentypen finden Sie in der Preisübersicht für Maschinentypen.

  10. Wählen Sie in der Drop-down-Liste Bootlaufwerktyp den gewünschten Laufwerktyp aus.

  11. Geben Sie die Größe des Bootlaufwerks ein.

  12. Klicken Sie im Navigationsbereich unter Knotenpools auf Sicherheit.

  13. Optional können Sie ein benutzerdefiniertes IAM-Dienstkonto für Ihre Knoten angeben:
    1. Maximieren Sie auf der Seite Erweiterte Einstellungen den Abschnitt Sicherheit.
    2. Wählen Sie im Menü Dienstkonto das gewünschte Dienstkonto aus.

    Wir empfehlen dringend, ein IAM-Dienstkonto mit minimalen Berechtigungen anzugeben, das Ihre Knoten anstelle des Compute Engine-Standarddienstkontos verwenden können. Informationen zum Erstellen eines Dienstkontos mit der geringsten Berechtigung finden Sie unter Dienstkonto mit der geringsten Berechtigung verwenden.

  14. Klicken Sie im Navigationsbereich auf Erweiterte Einstellungen.

  15. Klicken Sie in der Zeile Kubernetes-Alphafunktionen auf Konfiguration bearbeiten.

  16. Wählen Sie Kubernetes-Alphafeatures in diesem Cluster aktivieren aus.

  17. Bestätigen Sie die Warnung durch Auswahl von Ich verstehe die Auswirkungen.

  18. Klicken Sie auf Speichern.

  19. Klicken Sie auf Erstellen.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container clusters create CLUSTER_NAME \
    --release-channel=CHANNEL \
    --enable-kubernetes-alpha \
    --no-enable-autorepair \
    --no-enable-autoupgrade \
    --location CONTROL_PLANE_LOCATION [\
    --alpha-cluster-feature-gates FEATURE_GATES_LIST]

Dabei gilt:

  • CLUSTER_NAME: Der Name, den Sie für den Cluster auswählen.
  • CHANNEL: Der Typ der Release-Version. Dieser Wert muss einer der folgenden sein:

    • rapid: Registrierung für die Rapid Release-Version, die für Alpha-Cluster empfohlen wird.
    • regular: Registrierung für die reguläre Release-Version.
    • stable: Registrierung in der stabilen Release-Version.
    • none: Keine Registrierung für eine Release-Version. Diese Option ist veraltet und wird entfernt.
  • CONTROL_PLANE_LOCATION: der Compute Engine-Standort der Steuerungsebene Ihres Clusters. Geben Sie für regionale Cluster eine Region und für zonale Cluster eine Zone an.

  • --cluster-version VERSION ist optional und gibt die GKE-Version an, die im Cluster ausgeführt werden soll. Wenn kein Wert festgelegt wird, führt der Cluster die Standard-Patch-Version für die Clustererstellung für den ausgewählten Release-Channel aus, wie in der Tabelle Aktuelle Versionen dargestellt.

  • FEATURE_GATES_LIST: Die Liste der Feature-Gates, die sich von den Standardwerten unterscheiden. Jeder String steht für die Aktivierung oder Deaktivierung eines Feature Gates. Beispiel: featureX=true, featureY=false Wenn Sie dieses Flag weglassen, erstellt GKE den Cluster mit den Standardwerten für GKE. Das bedeutet, dass alle mit der Kubernetes-Version verfügbaren Alpha-Feature-Gates aktiviert sind. Die von Kubernetes standardmäßig aktivierten Beta-Feature-Gates sind ebenfalls aktiviert. Weitere Informationen dazu, welche Feature-Gates für bestimmte Versionen verfügbar sind und welche Betafunktionen standardmäßig aktiviert sind, finden Sie in der Kubernetes-Dokumentation unter Feature Gates für Alpha- oder Betafunktionen. Wenn Sie dieses Flag einfügen, ändern Sie die Feature Gates, die aktiviert werden, im Vergleich zu den Feature Gates, die standardmäßig von GKE festgelegt werden. Weitere Informationen finden Sie unter Feature-Gates und Alpha-Cluster.

Wir empfehlen dringend, ein IAM-Dienstkonto mit minimalen Berechtigungen anzugeben, das Ihre Knoten anstelle des Compute Engine-Standarddienstkontos verwenden können. Informationen zum Erstellen eines Dienstkontos mit der geringsten Berechtigung finden Sie unter Dienstkonto mit der geringsten Berechtigung verwenden.

Wenn Sie ein benutzerdefiniertes Dienstkonto in der gcloud CLI angeben möchten, fügen Sie Ihrem Befehl das folgende Flag hinzu:

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Ersetzen Sie SERVICE_ACCOUNT_NAME durch den Namen Ihres Dienstkontos mit minimalen Berechtigungen.

Sie werden aufgefordert, eine Warnung mit dem Hinweis zu bestätigen, dass der Alphacluster nicht aktualisiert und nach 30 Tagen gelöscht wird:

This will create a cluster with Kubernetes alpha features enabled.
- This cluster will not be covered by the GKE SLA and should
  not be used for production workloads.
- You will not be able to upgrade the master or nodes.
- The cluster will be deleted after 30 days.

Mit kubectl mit einem Cluster interagieren

Nachdem Sie einen Cluster erstellt haben, müssen Sie kubectl konfigurieren, bevor Sie über die Befehlszeile mit dem Cluster interagieren können.

Feature-Gate-Status für einen Alphacluster prüfen

Mit Alphaclustern können Sie Feature-Gates selektiv aktivieren oder deaktivieren. Weitere Informationen finden Sie unter Feature-Gates und Alpha-Cluster.

Informationen zum Prüfen des Status von Feature-Gates für Ihren Cluster finden Sie unter Status von Feature-Gates prüfen.

Alpha-Patchversionen in Alpha-Clustern ausführen

Auf Alphaclustern, die Sie für den Rapid-Releasekanal registrieren, können Alphapatchversionen der kommenden Kubernetes-Nebenversionen ausgeführt werden. Diese Alphaversionen bieten frühen Zugriff, um Funktionen und Änderungen in der nächsten Nebenversion zu testen, bevor GKE diese Nebenversion für alle Cluster im Rapid Channel verfügbar macht.

So identifizieren Sie Alpha-Patchversionen und führen sie in Alpha-Clustern aus:

  1. Verfügbare Alphaversionen im Rapid Channel ermitteln:

    gcloud container get-server-config \
        --flatten="channels" --filter="channels.channel=RAPID" \
        --location=LOCATION \
        --format="yaml(channels.channel,channels.previewVersions)"
    

    Ersetzen Sie LOCATION durch die Region, in der Sie den Alphacluster erstellen möchten, z. B. us-central1.

    Die Ausgabe sieht etwa so aus:

    channels:
      channel: RAPID
      previewVersions:
      - 1.37.0-gke.1173000+preview
    

    Wenn die Ausgabe leer ist, sind in dieser Region keine Alphaversionen verfügbar. Versuchen Sie es mit einer anderen Region oder sehen Sie in den Versionshinweisen für den Rapid-Release-Channel nach.

  2. Alphacluster erstellen:

    gcloud container clusters create CLUSTER_NAME \
        --release-channel=rapid \
        --enable-kubernetes-alpha \
        --no-enable-autorepair \
        --no-enable-autoupgrade \
        --location=CONTROL_PLANE_LOCATION \
        --cluster-version=ALPHA_VERSION
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: ein Name für den Alphacluster.
    • CONTROL_PLANE_LOCATION: die Region oder Zone für die Steuerungsebene des Clusters. Verwenden Sie dieselbe Region, in der Sie im vorherigen Schritt die Verfügbarkeit der Alphaversion geprüft haben, oder eine Zone in dieser Region.
    • ALPHA_VERSION: die spezifische Alpha-Patch-Version, die im Cluster ausgeführt werden soll, aus der Ausgabe des vorherigen Schritts.

Prüfen, wann ein Alphacluster abläuft

Prüfen Sie mit dem folgenden Befehl, wann Alphacluster ablaufen:

gcloud container clusters list

Fehlerbehebung beim Erstellen eines Alpha-Clusters mit Feature Gates

Wenn Sie versuchen, einen Cluster mit einem ungültigen Feature-Gate oder einem Feature-Gate zu erstellen, das für die Kubernetes-Version Ihres Clusters nicht unterstützt wird, kann der Cluster in einem Fehlerstatus erstellt werden.

In Cloud Logging finden Sie eine Meldung, die so aussieht:

failed to set feature gates from initial flags-based config:
unrecognized feature gate: UNRECOGNIZED_FEATURE_GATE_NAME

Wenn dieser Fehler auftritt, löschen Sie den fehlgeschlagenen Cluster. Prüfen Sie die Rechtschreibung und Kompatibilität der Feature-Gates mit der angegebenen Kubernetes-Version. Versuchen Sie dann noch einmal, das Cluster zu erstellen.

Nächste Schritte