Halaman ini menjelaskan cara menyiapkan cluster untuk upgrade ke GKE versi 1.25. Anda dapat menemukan klien API yang melakukan panggilan ke API yang tidak digunakan lagi dihapus di 1.25 dan memperbarui klien tersebut untuk menggunakan GA API. Untuk mengetahui informasi lebih mendetail, lihat panduan migrasi API Kubernetes yang tidak digunakan lagi.
API yang dihapus di versi 1.25
Sebagian besar API yang tidak digunakan lagi di Kubernetes versi 1.25 adalah bekas API Beta yang telah ditingkatkan dari Beta (misalnya v1beta1
) ke GA (misalnya v1
). API GA memberikan jaminan kompatibilitas jangka panjang dan harus digunakan sebagai pengganti API Beta yang sudah tidak digunakan lagi.
Semua objek yang ada untuk API yang ditingkatkan ke GA dapat diakses menggunakan API GA.
EndpointSlice
API versi Beta (discovery.k8s.io/v1beta1
) dari EndpointSlice
tidak digunakan lagi mulai versi 1.25. API ini tidak digunakan lagi dalam versi 1.21.
- Migrasikan manifes dan klien API untuk menggunakan versi API
discovery.k8s.io/v1
. Lihat tabel berikut yang menjelaskan perubahan penting dalam API versi GA:
Kolom Perubahan endpoints[*].topology["kubernetes.io/hostname"]
Menggunakan endpoints[*].nodeName
.endpoints[*].topology["topology.kubernetes.io/zone"]
Menggunakan endpoints[*].zone
.endpoints[*].topology
Diganti dengan endpoints[*].deprecatedTopology
yang tidak dapat ditulis di v1.
PodDisruptionBudget
API versi Beta (policy/v1beta1
) dari PodDisruptionBudget
tidak digunakan lagi mulai versi 1.25. API ini tidak digunakan lagi dalam versi 1.21.
- Migrasikan manifes dan klien API untuk menggunakan versi API
policy/v1
. Lihat tabel berikut yang menjelaskan perubahan penting dalam API versi GA:
Kolom Ubah spec.selector
Nilai kosong ( {}
) yang ditulis kepolicy/v1 PodDisruptionBudget
akan memilih semua pod di namespace. Nilai yang tidak ditetapkan akan tetap memilih tidak ada pod.
CronJob
API versi Beta (batch/v1beta1
) dari CronJob
tidak digunakan lagi mulai versi 1.25. API ini tidak digunakan lagi dalam versi 1.21. Migrasikan manifes dan klien API untuk menggunakan versi API batch/v1
.
PodSecurityPolicy
API versi Beta (policy/v1beta1
) dari PodSecurityPolicy
tidak digunakan lagi mulai versi 1.25. API ini tidak digunakan lagi dalam versi 1.21.
Untuk informasi selengkapnya, lihat Penghentian penggunaan PodSecurityPolicy.
RuntimeClass
API versi Beta (node.k8s.io/v1beta1
) dari RuntimeClass
tidak digunakan lagi mulai versi 1.25. API ini tidak digunakan lagi pada versi 1.20. Migrasikan manifes dan klien API untuk menggunakan versi API node.k8s.io/v1
.
Events
API versi Beta (events.k8s.io/v1beta1
) dari Events
tidak digunakan lagi mulai versi 1.25. API ini tidak digunakan lagi pada versi 1.19.
- Migrasikan manifes dan klien API untuk menggunakan versi API
v1
atauevents.k8s.io/v1
. Lihat tabel berikut yang menjelaskan perubahan penting dalam API versi GA:
Kolom Perubahan type
Dibatasi ke Normal
danWarning
.involvedObject
Diganti namanya menjadi regarding
.action
,reason
,reportingController
, danreportingInstance
Kolom ini sekarang wajib ada saat membuat Events. firstTimestamp
Diganti namanya menjadi deprecatedFirstTimestamp
dan tidak lagi diizinkan dalam Events baru. Sebagai gantinya, gunakaneventTime
.lastTimestamp
Diganti namanya menjadi deprecatedLastTimestamp
dan tidak lagi diizinkan dalam Events baru. Sebagai gantinya, gunakanseries.lastObservedTime
.count
Diganti namanya menjadi deprecatedCount
dan tidak lagi diizinkan dalam Events baru. Sebagai gantinya, gunakanseries.count
.source.component
Diganti namanya menjadi deprecatedSource.component
dan tidak lagi diizinkan dalam Events baru. Sebagai gantinya, gunakanreportingController
.source.host
Diganti namanya menjadi deprecatedSource.host
dan tidak lagi diizinkan dalam Events baru. Sebagai gantinya, gunakanreportingInstance
.
HorizontalPodAutoscaler
API versi Beta (autoscaling/v2beta1
) dari HorizontalPodAutoscaler
tidak digunakan lagi mulai versi 1.25. API ini tidak digunakan lagi pada versi 1.23.
Migrasikan manifes dan klien API untuk menggunakan versi API autoscaling/v2 HorizontalPodAutoscaler
.
Bersiap untuk upgrade ke versi 1.25
Anda tidak perlu menghapus dan membuat ulang objek API apa pun. Semua objek API lama yang dipertahankan untuk API yang ditingkatkan ke GA sudah dapat dibaca dan diperbarui menggunakan API versi baru.
Namun, sebaiknya migrasikan klien dan manifes Anda sebelum mengupgrade ke Kubernetes 1.25. Untuk mempelajari lebih lanjut, lihat Panduan Migrasi API Kubernetes yang Tidak Digunakan Lagi.
Anda dapat melihat insight dan rekomendasi penghentian penggunaan untuk menentukan apakah cluster Anda menggunakan API Kubernetes 1.25 yang tidak digunakan lagi. GKE menghasilkan insight penghentian penggunaan saat agen pengguna memanggil API yang tidak digunakan lagi. Insight ini tidak dihasilkan oleh konfigurasi objek Kubernetes Anda.
Menemukan cluster yang menggunakan API yang tidak digunakan lagi
Anda dapat menemukan cluster mana yang menggunakan API yang tidak digunakan lagi melalui insight penghentian penggunaan. Insight penghentian penggunaan juga menyediakan informasi seperti klien API mana yang memanggil API yang tidak digunakan lagi di cluster Anda.
Anda juga dapat menggunakan log audit untuk menemukan klien mana yang melakukan panggilan ke API yang tidak digunakan lagi.
Menemukan klien API yang melakukan panggilan tulis ke API yang tidak digunakan lagi
Untuk cluster dengan Google Cloud Observability yang diaktifkan, Anda dapat menggunakan kueri log audit Aktivitas Admin berikut untuk menampilkan penggunaan API yang tidak digunakan lagi oleh agen pengguna yang tidak dikelola oleh Google:
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:")
Ganti DEPRECATED_API_MINOR_VERSION
dengan versi minor yang menghapus API yang tidak digunakan lagi, misalnya 1.22
.
Log audit Aktivitas Admin diaktifkan secara otomatis untuk cluster GKE. Dengan kueri ini, log menampilkan agen pengguna yang melakukan panggilan tulis ke API yang tidak digunakan lagi.
Menemukan klien API yang melakukan panggilan baca ke API yang tidak digunakan lagi
Secara default, log audit hanya menampilkan panggilan tulis ke API yang tidak digunakan lagi. Untuk juga menampilkan panggilan baca ke API yang tidak digunakan lagi, konfigurasi log audit Akses Data.
Ikuti petunjuk untuk Mengonfigurasi log audit Akses Data dengan Konsol Google Cloud. Di Konsol Google Cloud, pilih Kubernetes Engine API. Di tab Log Types pada panel informasi, pilih Admin Read
dan Data Read
.
Dengan mengaktifkan log ini, Anda kini dapat menggunakan kueri asli untuk melihat panggilan baca dan panggilan tulis ke API yang tidak digunakan lagi.
Mengupgrade komponen pihak ketiga
Insight penghentian penggunaan dapat menampilkan hasil untuk agen pihak ketiga yang melakukan panggilan ke API yang tidak digunakan lagi di cluster Anda.
Untuk mengatasi agen pihak ketiga yang memanggil API yang tidak digunakan lagi, sebaiknya lakukan praktik terbaik berikut:
- Hubungi penyedia software pihak ketiga Anda untuk mengetahui apakah mereka memiliki versi yang telah diupdate.
- Upgrade software pihak ketiga ke versi terbarunya. Jika tidak dapat mengupgrade software, Anda harus menguji apakah mengupgrade GKE ke versi tersebut, dan menghapus API yang tidak digunakan lagi, akan merusak layanan Anda.
Sebaiknya lakukan upgrade ini dan upgrade versi GKE pada cluster staging untuk memantau gangguan sebelum Anda mengupgrade cluster produksi.
Mengupdate cluster yang terdampak oleh penghentian penggunaan
Untuk mengupgrade cluster yang terdampak oleh penghentian penggunaan, lakukan langkah-langkah berikut:
- Periksa agen pengguna mana yang menggunakan API yang tidak digunakan lagi di log.
- Update agen pengguna yang menggunakan API yang tidak digunakan lagi agar menggunakan versi API yang didukung.
- Update software pihak ketiga yang memanggil API yang tidak digunakan lagi ke versi terbarunya.
- Upgrade cluster pengujian dan uji aplikasi Anda di lingkungan pengujian sebelum mengupgrade cluster produksi untuk mengurangi risiko gangguan saat API yang tidak digunakan lagi tidak lagi tersedia.
- Jika Anda tidak dapat mengupdate agen pengguna yang terdampak, upgrade cluster pengujian terpisah untuk memeriksa apakah upgrade tersebut menyebabkan gangguan. Jika upgrade itu tidak menyebabkan gangguan, Anda dapat mengupgrade cluster secara manual.
- Setelah Anda mengupdate semua agen pengguna, GKE menunggu hingga tidak ada lagi penggunaan API yang tidak digunakan lagi selama 30 hari, lalu membatalkan pemblokiran upgrade otomatis. Upgrade otomatis akan dilanjutkan sesuai dengan jadwal rilis.
Referensi
Informasi selengkapnya tersedia di dokumentasi OSS Kubernetes:
- Blog Kubernetes: Penghapusan dan Perubahan Besar pada Kubernetes versi 1.25
- Catatan rilis Kubernetes 1.25
- Panduan Migrasi API Kubernetes yang Tidak Digunakan Lagi