Kubernetes Beta APIs mit GKE-Clustern verwenden

Mit Kubernetes Beta APIs können Sie auf neue Funktionen in Ihren GKE-Clustern (Google Kubernetes Engine) zugreifen. Wenn Sie Beta APIs verwenden möchten, die mit Version 1.24 oder höher eingeführt wurden, konfigurieren Sie Beta APIs.

So werden neue Features mit der Kubernetes API eingeführt

GKE-Cluster bestehen aus einer Steuerungsebene und Worker-Knoten. Die Steuerungsebene stellt den API-Server zur Verfügung, der die Kubernetes API bereitstellt, sodass Endnutzer sowie interne und externe Komponenten kommunizieren können. Diese API wird im Laufe der Zeit weiterentwickelt. Neue Features werden in der Alpha- oder Betaphase eingeführt und dann entweder zu General Availability (GA) hochgestuft oder in neueren Nebenversionen eingestellt oder entfernt.

Sie können Alpha APIs nur mit Alphaclustern verwenden, aber Sie können Beta APIs mit allen Arten von GKE-Clustern verwenden. Ab Kubernetes Version 1.24 sind neue Beta APIs standardmäßig in neuen Clustern deaktiviert. Bei vorhandenen Clustern, die mit einer Version vor 1.24 erstellt wurden, bleiben vorhandene Beta-APIs aktiviert, da automatisch aktivierte (vor Version 1.24 eingeführt) oder manuell aktivierte Beta APIs (ab 1.24 eingeführt) nicht auf vorhandenen Clustern deaktiviert werden können. Bei allen Clustern bleiben vorhandene Beta-APIs, die vor Version 1.24 eingeführt wurden, standardmäßig aktiviert. Neue Versionen der vorhandenen Beta APIs bleiben ebenfalls standardmäßig aktiviert.

Wenn beispielsweise eine v1beta1 API in Kubernetes Version 1.22 eingeführt wurde und eine neue Version dieser Beta API, wie v1beta3, in Kubernetes Version 1.25 eingeführt wird, wird die API automatisch aktiviert. Dies liegt daran, dass es sich um eine neue Version einer bestehenden Beta API handelt, nicht um eine völlig neue Beta API. Eine neue Beta API mit der Version v1beta1, die in Kubernetes Version 1.24 oder höher eingeführt wurde, ist jedoch standardmäßig deaktiviert.

Damit Sie Beta APIs verwenden können, die mit Version 1.24 und höher eingeführt wurden, müssen Sie beta APIs pro Ressource und Cluster aktivieren. Sie können APIs beim Erstellen eines Clusters oder für einen vorhandenen Cluster aktivieren. Informationen zu den für die Nebenversion des Clusters verfügbaren Beta APIs finden Sie unter Verfügbare Beta APIs.

Nachdem Sie eine Beta API aktiviert haben, bleibt sie aktiviert, bis die Beta API verworfen und der Cluster auf die Nebenversion aktualisiert wird, in der die API entfernt wurde. Informationen zu den in Ihrem Cluster aktivierten Beta APIs finden Sie unter Prüfen, welche Beta APIs aktiviert sind.

Kubernetes Beta APIs und Kubernetes-Feature-Gates

Feature-Gates sind ein anderer Mechanismus zum Aktivieren von Funktionen als Kubernetes-APIs und werden von GKE-Clustern anders verwaltet. Einige Kubernetes-APIs und Kubernetes-Feature-Gates arbeiten zusammen. Sie müssen die Verbindung zwischen bestimmten Feature-Gates und APIs verstehen. Weitere Informationen finden Sie unter Feature-Gates.

Verfügbare Beta-APIs

Sie können eine Teilmenge von Kubernetes Beta APIs für Ihre GKE-Cluster aktivieren. Andere Beta-APIs sind aus folgenden Gründen nicht verfügbar:

  • Die Beta-API basiert auf Kubernetes-Funktionen, die nicht allgemein verfügbar sind.
  • Die Beta-API ist nicht sicher.
  • Die Beta-API ist nicht mit Autopilot kompatibel.

In der folgenden Tabelle finden Sie Beta-APIs und die entsprechende Nebenversion, in der sie eingeführt wurden:

Kubernetes-Version Mit dieser Kubernetes-Nebenversion hinzugefügte Beta-APIs Mit GKE verfügbar Hinweise
1.32
  • resource.k8s.io/v1beta1/deviceclasses
  • resource.k8s.io/v1beta1/resourceclaims
  • resource.k8s.io/v1beta1/resourceclaimtemplates
  • resource.k8s.io/v1beta1/resourceslices
  • resource.k8s.io/v1beta1/deviceclasses
  • resource.k8s.io/v1beta1/resourceclaims
  • resource.k8s.io/v1beta1/resourceclaimtemplates
  • resource.k8s.io/v1beta1/resourceslices

Sie müssen alle aufgeführten resource.k8s.io-APIs gleichzeitig aktivieren und dafür sorgen, dass Knoten die neu aktivierten Beta-APIs verwenden. Dadurch wird die Kubernetes-Betafunktion „Dynamic Resource Allocation“ in einem GKE-Cluster aktiviert. Weitere Informationen finden Sie unter Dynamische Ressourcenzuweisung.

1.31
  • storage.k8s.io/v1beta1/volumeattributesclasses
  • networking.k8s.io/v1beta1/ipaddresses
  • networking.k8s.io/v1beta1/servicecidrs
  • storage.k8s.io/v1beta1/volumeattributesclasses
  • networking.k8s.io/v1beta1/ipaddresses
  • networking.k8s.io/v1beta1/servicecidrs

Sie müssen beide networking.k8s.io APIs gleichzeitig aktivieren und dafür sorgen, dass Knoten die neu aktivierten Beta-APIs verwenden. Dadurch wird die Kubernetes-Betafunktion „Multiple Service CIDRs“ in einem GKE-Cluster mit Version 1.31.1-gke.1361000 oder höher aktiviert. Weitere Informationen finden Sie in den GKE-Versionshinweisen vom 4. Oktober 2024.

1.29
  • Keine
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
Sie müssen beide APIs gleichzeitig aktivieren. Dadurch wird die Betafunktion Validating Admission Policy aktiviert.
1.28
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
  • Keine
1.27
  • authentication.k8s.io/v1beta1/selfsubjectreviews
  • authentication.k8s.io/v1beta1/selfsubjectreviews

Überlegungen vor der Verwendung von Beta APIs

Kubernetes Beta APIs unterliegen der Kubernetes-Richtlinie zur Einstellung von Produkten und Diensten. Wenn eine Beta API verworfen wurde, dürfen Sie sie nicht mehr verwenden. Weitere Informationen finden Sie unter Einstellung von Beta APIs.

Hinweise

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 diesen Task 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. In früheren gcloud CLI-Versionen werden die Befehle in diesem Dokument möglicherweise nicht unterstützt.

Beta APIs konfigurieren

Beta APIs sind pro Ressource und Cluster aktiviert. Sie können APIs bei der Cluster-Erstellung oder für einen vorhandenen Cluster aktivieren.

Verwenden Sie die Darstellung {group}/{version}/{resource}, um eine Beta API-Ressource für diese Befehle aufzulisten. Die Version muss eine Betaversion sein. Ein Beispiel für diese gültige Darstellung ist authentication.k8s.io/v1beta1/selfsubjectreviews.

Ersetzen Sie bei den Befehlen im nächsten Abschnitt die folgenden Variablen:

  • CLUSTER_NAME: der Name des Clusters, den Sie aktualisieren möchten
  • LIST_OF_APIS: die Liste der Beta APIs, die Sie aktivieren möchten, in einer durch Kommas getrennten Liste.
  • CONTROL_PLANE_LOCATION: Der Compute Engine-Standort der Steuerungsebene des Clusters. Geben Sie für regionale Cluster eine Region und für zonale Cluster eine Zone an.

Neuen Cluster mit aktivierten Beta APIs erstellen

Erstellen Sie einen neuen Cluster mit einer Liste von aktivierten Beta APIs:

gcloud container clusters create-auto CLUSTER_NAME  \
    --enable-kubernetes-unstable-apis=LIST_OF_APIS \
    --location=CONTROL_PLANE_LOCATION

Beta APIs in einem vorhandenen Cluster aktivieren

Aktivieren Sie eine Liste der Beta APIs in einem vorhandenen Cluster:

gcloud container clusters update CLUSTER_NAME  \
    --enable-kubernetes-unstable-apis=LIST_OF_APIS \
    --location=CONTROL_PLANE_LOCATION

Prüfen, ob Knoten die neu aktivierten Beta APIs verwenden

Für einige Betafunktionen muss die Funktion auch auf dem Kubelet aktiviert sein, das auf den Worker-Knoten ausgeführt wird.

Damit diese neu aktivierten Beta-API-Funktionen mit Arbeitslasten verwendet werden können, die auf den Worker-Knoten ausgeführt werden, muss GKE die Änderung auf die Knoten anwenden:

  • Für Knoten in neuen Standardknotenpools und Gruppen von Autopilot-Knoten aktiviert GKE die Beta-APIs.
  • Bei neuen und vorhandenen Knoten in vorhandenen Standard-Knotenpools oder vorhandenen Knotengruppen in Autopilot wendet GKE die Änderung an, wenn die Knoten während Knotenupgrades oder anderer Arten von Knotenupdates neu erstellt werden. Wenn Sie die Änderung sofort auf vorhandene Knoten in einem Knotenpool eines Standardclusters anwenden möchten, können Sie den Knotenpool manuell auf eine neuere GKE-Version aktualisieren. Bei einem direkten Upgrade wird die Änderung nicht angewendet.

Beta APIs in einem vorhandenen Cluster deaktivieren

Sie können keine Beta APIs deaktivieren, die bereits für einen Cluster aktiviert sind. Beta APIs bleiben verfügbar, bis sie verworfen werden und der Cluster auf die Nebenversion aktualisiert wird, in der die API entfernt wurde. Weitere Informationen finden Sie unter Einstellung von Beta APIs.

Prüfen, welche Beta APIs aktiviert sind

Prüfen Sie, welche Beta APIs für Ihren GKE-Cluster aktiviert sind:

gcloud container clusters describe CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --format="value(enableK8sBetaApis.enabledApis)"

Einstellung von Beta APIs

Nach dem Aktivieren einer Beta API bleibt sie aktiviert, bis die Beta API verworfen und der Cluster auf die Nebenversion aktualisiert wird, in der die API entfernt wurde.

Beta APIs sind normalerweise für drei Nebenversionen verfügbar, bevor sie zugunsten einer neuen Betaversion, einer stabilen Version oder ohne Ersatz verworfen werden. Beta API-Versionen werden drei Nebenversionen nach der Einstellung entfernt. Wenn Sie eine Beta API verwenden, die verworfen wurde und in einer künftigen Kubernetes-Nebenversion entfernt wird, müssen Sie zu unterstützten APIs migrieren, damit Ihr Cluster auf die Nebenversion aktualisiert werden kann, in der die Beta API entfernt wurde. Weitere Informationen finden Sie unter Funktionsweise von Einstellungen von Kubernetes mit GKE.

GKE vereinfacht diesen Vorgang, indem versucht wird, die Nutzung verworfener Kubernetes APIs zu erkennen. Wenn GKE die Nutzung einer verworfenen API erkennt, werden automatische Upgrades für die Nebenversion pausiert, in der diese API entfernt wurde. GKE gibt auch Statistiken und Empfehlungen zur Einstellung an, um Sie über die Nutzung einer verworfenen API durch Ihren Cluster zu informieren, damit Sie Maßnahmen ergreifen können, um Upgrades fortzusetzen. Weitere Informationen finden Sie unter Geeignete Kubernetes-Einstellungen bewerten und minimieren.

Eine vollständige Liste der verworfenen APIs sowie Informationen dazu, ob GKE die Nutzung erkennt, finden Sie in der Tabelle zur Einstellung von Kubernetes APIs.

Nächste Schritte