Halaman ini memberikan informasi tentang penghentian penggunaan dan penghapusan versi Ingress API beta dalam rilis open source Kubernetes 1.22. GKE membuat pengecualian
untuk cluster yang dibuat pada versi 1.21 atau yang lebih lama, agar dapat terus menggunakan
API tersebut hingga diupgrade ke versi 1.23 guna mendapatkan waktu tambahan untuk bermigrasi. Anda harus memigrasikan cluster
ke Ingress
API v1 sebelum versi 1.22 mencapai akhir siklus proses (EOL).
Ingress beta API yang tidak digunakan lagi dan dihapus di Kubernetes versi 1.22 adalah API beta sebelumnya yang telah beralih dari Beta (v1beta1
) ke GA (v1
). GA API memberikan jaminan kompatibilitas jangka panjang dan harus digunakan sebagai pengganti API beta yang tidak digunakan lagi.
Semua objek yang ada dapat diakses menggunakan API GA.
Ingress (tersedia hingga 1.23 untuk cluster yang dibuat pada versi 1.21 atau yang lebih lama)
API versi Beta (extensions/v1beta1
dan networking.k8s.io/v1beta1
) dari Ingress
tidak digunakan lagi untuk cluster GKE yang menjalankan versi 1.22 atau yang lebih baru jika cluster dibuat pada versi 1.22 atau yang lebih baru.
Namun, untuk cluster yang dibuat di GKE versi 1.21 atau yang lebih lama yang kemudian diupgrade ke versi 1.22 pada patch versi 1.22.7-gke.300 atau yang lebih baru, Anda masih dapat menggunakan API versi Beta sampai cluster diupgrade ke versi 1.23. Ini adalah pengecualian satu kali untuk cluster lama yang dimaksudkan untuk memberi Anda kesempatan memigrasikan cluster agar tidak menggunakan versi API ini, yang telah dihapus dari Kubernetes open source pada versi 1.22.
Semua cluster yang menjalankan GKE versi 1.23 dan yang lebih baru tidak akan lagi menggunakan API Ingress
versi beta yang telah dihentikan. Manifes yang menggunakan versi API tersebut tidak dapat lagi diterapkan. Objek yang sebelumnya dipertahankan akan tetap berfungsi serta dapat dilihat dan diupdate menggunakan API versi baru, sebelum dan setelah upgrade ke 1.23.
- Migrasikan manifes dan klien API untuk menggunakan versi API networking.k8s.io/v1.
Lihat tabel berikut yang menjelaskan perubahan penting dalam API versi GA:
Kolom Perubahan spec.backend
Diganti namanya menjadi spec.defaultBackend
.backend serviceName
Diganti namanya menjadi service.name
.servicePort
Kolom servicePort
backend numerik diganti namanya menjadiservice.port.number
. KolomservicePort
backend string diganti namanya menjadiservice.port.name
.pathType
Sekarang wajib ada untuk setiap jalur yang ditentukan. Nilainya dapat: Prefix
,Exact
, atauImplementationSpecific
. Untuk mencocokkan dengan perilakuv1beta1
yang tidak ditentukan, gunakanImplementationSpecific
.
Manifes berikut menjelaskan Ingress yang sama di v1
dan v1beta1
:
Manifes v1beta1
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: example
spec:
backend:
serviceName: default-backend
servicePort: 80
rules:
- http:
paths:
- path: /testpath
backend:
serviceName: test
servicePort: 80
Manifes v1
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example
spec:
defaultBackend:
service:
name: default-backend
port:
number: 80
rules:
- http:
paths:
- path: /testpath
pathType: ImplementationSpecific
backend:
service:
name: test
port:
number: 80
Anda dapat menggunakan kueri berikut untuk cluster dengan kemampuan observasi Google Cloud yang diaktifkan guna mengidentifikasi klien yang mengakses Ingress v1beta1
API:
resource.type="k8s_cluster"
resource.labels.cluster_name="$CLUSTER_NAME"
protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@")
protoPayload.request.apiVersion=("extensions/v1beta1" OR "networking.k8s.io/v1beta1")
protoPayload.request.kind="Ingress"
NOT ("kube-system")
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 insight ini, coba langkah-langkah 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.
Persiapan untuk mengupgrade ke versi 1.23
Anda tidak perlu menghapus dan membuat ulang objek API apa pun. Semua objek API yang dipertahankan dan yang ada sudah dapat dibaca dan diupdate menggunakan versi API yang baru. Namun, sebaiknya Anda memigrasikan klien dan manifes sebelum mengupgrade ke Kubernetes 1.23. Pelajari lebih lanjut di bagian "Petunjuk" pada Panduan Migrasi API Kubernetes yang Tidak Digunakan Lagi.
Anda dapat melihat insight dan rekomendasi penghentian penggunaan untuk menentukan apakah cluster Anda menggunakan fitur atau API Kubernetes yang tidak digunakan lagi. Cari insight dan rekomendasi tentang penggunaan Ingress beta API
dengan subjenis DEPRECATION_K8S_1_22_V1BETA1_API
.
Insight penghentian penggunaan didasarkan pada panggilan API teramati ke API yang tidak digunakan lagi oleh agen pengguna, bukan konfigurasi objek Kubernetes Anda.
Mengupdate cluster yang terdampak oleh penghentian penggunaan
Untuk mengupgrade cluster yang terdampak oleh penghentian penggunaan, lakukan langkah-langkah berikut:
- Periksa agen pengguna yang menggunakan API yang tidak digunakan lagi di insight penghentian penggunaan atau 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.
- 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.
- 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.
Referensi
Informasi selengkapnya tersedia di dokumentasi OSS Kubernetes:
- Blog Kubernetes: Penghapusan API untuk Kubernetes versi 1.22
- Catatan rilis Kubernetes 1.22
- Panduan Migrasi API Kubernetes yang Tidak Digunakan Lagi