API yang tidak digunakan lagi di Kubernetes 1.25


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 ke policy/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 atau events.k8s.io/v1.
  • Lihat tabel berikut yang menjelaskan perubahan penting dalam API versi GA:

    Kolom Perubahan
    type Dibatasi ke Normal dan Warning.
    involvedObject Diganti namanya menjadi regarding.
    action, reason, reportingController, dan reportingInstance Kolom ini sekarang wajib ada saat membuat Events.
    firstTimestamp Diganti namanya menjadi deprecatedFirstTimestamp dan tidak lagi diizinkan dalam Events baru. Sebagai gantinya, gunakan eventTime.
    lastTimestamp Diganti namanya menjadi deprecatedLastTimestamp dan tidak lagi diizinkan dalam Events baru. Sebagai gantinya, gunakan series.lastObservedTime.
    count Diganti namanya menjadi deprecatedCount dan tidak lagi diizinkan dalam Events baru. Sebagai gantinya, gunakan series.count.
    source.component Diganti namanya menjadi deprecatedSource.component dan tidak lagi diizinkan dalam Events baru. Sebagai gantinya, gunakan reportingController.
    source.host Diganti namanya menjadi deprecatedSource.host dan tidak lagi diizinkan dalam Events baru. Sebagai gantinya, gunakan reportingInstance.

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:

  1. Hubungi penyedia software pihak ketiga Anda untuk mengetahui apakah mereka memiliki versi yang telah diupdate.
  2. 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:

  1. Periksa agen pengguna mana yang menggunakan API yang tidak digunakan lagi di log.
  2. Update agen pengguna yang menggunakan API yang tidak digunakan lagi agar menggunakan versi API yang didukung.
  3. Update software pihak ketiga yang memanggil API yang tidak digunakan lagi ke versi terbarunya.
  4. 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.
  5. 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.
  6. 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: