Auf dieser Seite wird erläutert, wie Sie Cluster für Upgrades auf GKE-Version 1.25 vorbereiten. Sie können nach API-Clients suchen, die Aufrufe an verworfene APIs ausführen, die in 1.25 entfernt wurden, und diese Clients so aktualisieren, dass sie GA APIs verwenden. Weitere Informationen finden Sie in der Migrationsanleitung für verworfene Kubernetes APIs.
Entfernte APIs in 1.25
Die meisten verworfenen APIs in Kubernetes Version 1.25 sind frühere Beta APIs, die seitdem von der Betaversion hochgestuft wurden (z. B. v1beta1
) auf GA (z. B. v1
). Die GA APIs bieten längerfristige Kompatibilitätsgarantien und sollten anstelle der verworfenen Beta APIs verwendet werden.
Alle vorhandenen Objekte für APIs, die auf GA umgestellt werden können, können mithilfe der GA-APIs interagiert werden.
EndpointSlice
Die Beta API-Version (discovery.k8s.io/v1beta1
) von EndpointSlice
wird ab Version 1.25 nicht mehr bereitgestellt. Diese API wurde in Version 1.21 verworfen.
- Migrieren Sie Manifeste und API-Clients, um die API-Version
discovery.k8s.io/v1
zu verwenden. In der folgenden Tabelle werden die wichtigsten Änderungen der GA API-Version beschrieben:
Feld Änderung endpoints[*].topology["kubernetes.io/hostname"]
Verwenden Sie endpoints[*].nodeName
.endpoints[*].topology["topology.kubernetes.io/zone"]
Verwenden Sie endpoints[*].zone
.endpoints[*].topology
Ersetzt durch endpoints[*].deprecatedTopology
, das in v1 nicht geschrieben werden kann.
PodDisruptionBudget
Die Beta API-Version (policy/v1beta1
) von PodDisruptionBudget
wird ab Version 1.25 nicht mehr bereitgestellt. Diese API wurde in Version 1.21 verworfen.
- Migrieren Sie Manifeste und API-Clients, um die API-Version
policy/v1
zu verwenden. In der folgenden Tabelle werden die wichtigsten Änderungen der GA API-Version beschrieben:
Feld Änderung spec.selector
Mit einem leeren Wert ( {}
), der inpolicy/v1 PodDisruptionBudget
geschrieben wird, werden alle Pods im Namespace ausgewählt. Wenn ein Wert nicht festgelegt ist, werden trotzdem keine Pods ausgewählt.
CronJob
Die Beta API-Version (batch/v1beta1
) von CronJob
wird ab Version 1.25 nicht mehr bereitgestellt. Diese API wurde in Version 1.21 verworfen. Migrieren Sie Manifeste und API-Clients, um die API-Version batch/v1
zu verwenden.
PodSecurityPolicy
Die Beta API-Version (policy/v1beta1
) von PodSecurityPolicy
wird ab Version 1.25 nicht mehr bereitgestellt. Diese API wurde in Version 1.21 verworfen.
Weitere Informationen finden Sie unter Einstellung von PodSecurityPolicy.
RuntimeClass
Die Beta API-Version (node.k8s.io/v1beta1
) von RuntimeClass
wird ab Version 1.25 nicht mehr bereitgestellt. Diese API wurde in Version 1.20 verworfen. Migrieren Sie Manifeste und API-Clients, um die API-Version node.k8s.io/v1
zu verwenden.
Ereignisse
Die Beta API-Version (events.k8s.io/v1beta1
) von Events
wird ab Version 1.25 nicht mehr bereitgestellt. Diese API wurde in Version 1.19 verworfen.
- Migrieren Sie Manifeste und API-Clients, um die API-Version
v1
oder die API-Versionevents.k8s.io/v1
zu verwenden. In der folgenden Tabelle werden die wichtigsten Änderungen der GA API-Version beschrieben:
Feld Änderung type
Begrenzt auf Normal
undWarning
.involvedObject
Wurde in regarding
umbenannt.action
,reason
,reportingController
undreportingInstance
Diese Felder sind jetzt beim Erstellen von Ereignissen erforderlich. firstTimestamp
deprecatedFirstTimestamp
wurde umbenannt und ist in neuen Ereignissen nicht mehr zulässig. Verwenden Sie stattdesseneventTime
.lastTimestamp
deprecatedLastTimestamp
wurde umbenannt und ist in neuen Ereignissen nicht mehr zulässig. Verwenden Sie stattdessenseries.lastObservedTime
.count
deprecatedCount
wurde umbenannt und ist n neuen Ereignissen nicht mehr zulässig. Verwenden Sie stattdessenseries.count
.source.component
deprecatedSource.component
wurde umbenannt und ist in neuen Ereignissen nicht mehr zulässig. Verwenden Sie stattdessenreportingController
.source.host
deprecatedSource.host
wurde umbenannt und ist in neuen Ereignissen nicht mehr zulässig. Verwenden Sie stattdessenreportingInstance
.
HorizontalPodAutoscaler
Die Beta API-Version (autoscaling/v2beta1
) von HorizontalPodAutoscaler
wird ab Version 1.25 nicht mehr bereitgestellt. Diese API wurde in Version 1.23 verworfen.
Migrieren Sie Manifeste und API-Clients, um die API-Version autoscaling/v2 HorizontalPodAutoscaler
zu verwenden.
Upgrade auf Version 1.25 vorbereiten
Sie müssen Ihre API-Objekte nicht löschen und neu erstellen. Alle vorhandenen beibehaltenen API-Objekte für APIs, die auf GA umgestellt werden, können bereits mit den neuen API-Versionen gelesen und aktualisiert werden.
Wir empfehlen Ihnen jedoch, Ihre Clients und Manifeste zu migrieren, bevor Sie ein Upgrade auf Kubernetes 1.25 durchführen. Weitere Informationen finden Sie in der Migrationsanleitung für verworfene Kubernetes APIs.
Sie können Statistiken und Empfehlungen zur Einstellung ansehen, um festzustellen, ob Ihr Cluster verworfene Kubernetes 1.25 APIs verwendet. Wenn User-Agents verworfene APIs aufrufen, generiert GKE Informationen zur Einstellung nicht aus der Konfiguration Ihrer Kubernetes-Objekte.
Cluster mit verworfenen APIs finden
Hier finden Sie Informationen dazu, welche Cluster verworfene APIs verwenden. Die Einstellungsstatistiken enthalten auch Informationen darüber, welche API-Clients die verworfenen APIs in Ihrem Cluster aufrufen.
Anhand von Audit-Logs können Sie auch feststellen, welche Clients verworfene APIs aufrufen.
API-Clients mit Schreibaufrufen von verworfenen APIs suchen
Bei Clustern mit aktivierter Google Cloud Observability können Sie die folgende Abfrage des Admin-Aktivitätslogs verwenden. Damit können Sie anzeigen lassen, welche verworfenen APIs von User-Agents verwendet werden, die nicht von Google verwaltet werden:
resource.type="k8s_cluster"
labels."k8s.io/removed-release"="DEPRECATED_API_MINOR_VERSION"
protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@")
protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:")
Ersetzen Sie DEPRECATED_API_MINOR_VERSION
durch die Nebenversion, aus der die verworfene API entfernt wird, z. B. 1.22
.
Administratoraktivitäts-Audit-Logs werden automatisch für GKE-Cluster aktiviert. Mit dieser Abfrage zeigen die Logs User-Agents an, die Schreibaufrufe für die verworfenen APIs durchführen
API-Clients mit Leseaufrufen von verworfenen APIs suchen
Standardmäßig zeigen Audit-Logs nur Schreibaufrufe für die verworfenen APIs an. Wenn Sie auch Leseaufrufe von verworfenen APIs abrufen möchten, konfigurieren Sie die Audit-Logs für den Datenzugriff.
Folgen Sie der Anleitung Audit-Logs für Datenzugriff mit der Google Cloud Console konfigurieren. Wählen Sie in der Google Cloud Console die Kubernetes Engine API aus. Wählen Sie auf dem Tab Logtypen im Informationsfenster Admin Read
und Data Read
aus.
Nachdem diese Logs aktiviert wurden, können Sie jetzt über die ursprüngliche Abfrage Lese- und Schreibaufrufe von den verworfenen APIs ansehen.
Upgrade von Drittanbieterkomponenten durchführen
Statistiken zur Einstellung können Ergebnisse für Drittanbieter-Agents anzeigen, die Aufrufe an verworfene APIs in Ihrem Cluster senden.
Wir empfehlen die folgenden Best Practices, um Probleme mit Drittanbieter-Agents zu beheben, die verworfene APIs aufrufen:
- Wenden Sie sich an den Anbieter Ihrer Software, um eine aktualisierte Version zu erhalten.
- Upgraden Sie die Drittanbieter-Software auf die neueste Version. Wenn Sie kein Upgrade der Software durchführen können, sollten Sie testen, ob ein Upgrade von GKE auf die Version mit den entfernten verworfenen APIs Ihren Dienst unausführbar machen würde.
Wir empfehlen, dieses Upgrade und das Upgrade der GKE-Version auf einem Staging-Cluster durchzuführen, um auf Unterbrechungen zu achten, bevor Sie Ihre Produktionscluster aktualisieren.
Von Einstellungen betroffene Cluster aktualisieren
So aktualisieren Sie von Einstellungen betroffene Cluster:
- Prüfen Sie in den Logs, welche User-Agents die verworfenen APIs verwenden.
- Aktualisieren Sie die User-Agents, die verworfene APIs verwenden, auf unterstützte API-Versionen.
- Aktualisieren Sie jede Software von Drittanbietern, die veraltete APIs aufruft, auf die neuesten Versionen.
- Führen Sie ein Upgrade eines Testclusters durch und testen Sie Ihre Anwendung in einer Testumgebung, bevor Sie das Upgrade des Produktionsclusters ausführen. So können Sie das Risiko von Unterbrechungen zu verringern, falls verworfene APIs nicht mehr verfügbar sind.
- Wenn Sie einen betroffenen User-Agent nicht aktualisieren können, führen Sie ein Upgrade eines separaten Testclusters durch, um zu prüfen, ob das Upgrade Störungen verursacht. Wenn das Upgrade keine Störungen verursacht, können Sie den Cluster manuell upgraden.
- Nachdem Sie alle User-Agents aktualisiert haben, wartet GKE, bis es 30 Tage lang keine Verwendung veralteter APIs mehr beobachtet hat, und hebt dann die Blockierung der automatischen Upgrades auf. Automatische Upgrades werden gemäß dem Veröffentlichungszeitplan fortgesetzt.
Ressourcen
Weitere Informationen finden Sie in der OSS-Dokumentation für Kubernetes:
- Kubernetes-Blog: Kubernetes-Entfernungen und wichtige Änderungen in 1.25
- Versionshinweise zu Kubernetes 1.25
- Migrationsanleitung für verworfene Kubernetes APIs