Container Service for Kubernetes (ACK) secara ketat mematuhi ketentuan Program Sertifikasi Kesesuaian Kubernetes. Topik ini menjelaskan perubahan utama dalam Kubernetes 1.33 yang dirilis oleh ACK, termasuk catatan peningkatan, perubahan besar, fitur baru, fitur dan API yang ditinggalkan, serta gerbang fitur.
Versi komponen
Berikut adalah versi komponen utama yang didukung oleh kluster ACK.
Komponen Utama | Versi |
Kubernetes | 1.33.1-aliyun.1 dan 1.33.3-aliyun.1 |
etcd | 3.5.21 |
containerd | 2.1.1 |
CoreDNS | 1.11.3.5-5321daf49-aliyun |
CSI | Perbarui csi-plugin dan csi-provisioner ke versi terbaru. Untuk informasi lebih lanjut tentang catatan rilis, lihat csi-plugin dan csi-provisioner. |
CNI | Flannel v0.15.1.22-20a397e6-aliyun |
Terway dan TerwayControlplane v1.14.0 dan yang lebih baru |
Pertimbangan peningkatan
Pod yang dibuat dengan versi ≤1.20 yang belum pernah di-restart atau diperbarui akan di-restart saat kluster ditingkatkan ke v1.33.
Perubahan besar
Mulai dari Kubernetes 1.33, ACK menggunakan containerd 2.1 secara default. Untuk kluster yang ada, ACK meningkatkan runtime kontainer ke containerd 2.1 selama peningkatan node. Untuk informasi lebih lanjut, lihat Pengenalan containerd 2.1.
Mulai dari Kubernetes 1.33, Kluster ACK yang Dikelola yang baru dibuat memiliki versi terbaru ack-ram-authenticator yang diinstal secara default. Untuk informasi lebih lanjut, lihat [Pengumuman Produk] Instalasi Default ack-ram-authenticator untuk Kluster ACK yang Dikelola v1.33 dan yang Lebih Baru.
Perubahan fitur
Ubah Ukuran Pod Secara Langsung mencapai beta dan diaktifkan secara default. Fitur ini memungkinkan modifikasi dinamis konfigurasi sumber daya CPU dan memori kontainer tanpa me-restart pod.
kubectl memungkinkan Anda menyesuaikan sub-sumber daya tertentu dari sumber daya dengan menggunakan perintah
--subresources. Sebagai contoh, Anda dapat menyesuaikan ukuran sumber daya pod secara dinamis dengan menggunakankubectl edit pod <pod-name> --subresource resize. Sub-sumber daya yang didukung dalam Kubernetes 1.33 meliputistatus,scale, danresize.EndpointSlices TopologyAwareHints mencapai GA. Anotasi beta
service.kubernetes.io/topology-modetelah ditinggalkan. Kami merekomendasikan Anda menggunakan bidangspec.trafficDistributionuntuk mendefinisikan kebijakan topologi. Sebagai contoh, dengan mengaturtrafficDistributionmenjadiPreferClose, trafik dapat diprioritaskan ke titik akhir di zona yang sama dengan klien. Untuk informasi lebih lanjut, lihat Distribusi Trafik.Bidang
.status.resizedari pod telah ditinggalkan dan tidak lagi mendukung pengaturan. Dua bidang kondisi baru ditambahkan:PodResizeInProgressdanPodResizePending.DisableNodeKubeProxyVersion diaktifkan secara default dan tidak dapat dinonaktifkan. kubelet tidak mengatur bidang
status.kubeProxyVersiondari node.Bidang
.spec.serviceNamedari StatefulSets menjadi opsional, dan pemeriksaan validitas bidangnya diperkuat untuk mematuhi validasi standar DNS1123. Jika bidang.spec.serviceNamedari StatefulSet yang ada gagal validasi, pod baru tidak dapat dibuat, dan bidang tersebut perlu dihapus secara manual. Pembaruan ini memindahkan validasi DNS dari fase pembuatan pod ke fase konfigurasi sumber daya StatefulSet, mengurangi percobaan gagal dari kontroler StatefulSet.Plug-in volume Git-Repo dinonaktifkan secara default. Jika Anda ingin mempertahankannya, Anda dapat mengaktifkan gerbang fitur
GitRepoVolumeDriversecara manual.Dalam 1.33.3-aliyun.1, CVE-2025-4563 telah diperbaiki.
Fitur
Kontainer Sidecar mencapai GA dan diaktifkan secara default. Kontainer sidecar, sebagai jenis kontainer init khusus, dapat berjalan sepanjang siklus hidup pod dengan menggunakan
restartPolicy: Alwaysdan mendukung konfigurasi probe.OrderedNamespaceDeletion mencapai beta. Fitur ini mengoptimalkan proses pelepasan sumber daya namespace. Saat namespace dihapus, pod beban kerja dihapus terlebih dahulu, diikuti oleh NetworkPolicy, sumber daya penyimpanan, dan dependensi lainnya. Ini menghindari risiko pod tetap ada setelah sumber daya keamanan penting dihapus.
SupplementalGroupsPolicy mencapai beta dan diaktifkan secara default. Kontrol SupplementalGroups halus untuk pod dapat dikonfigurasi oleh bidang
.spec.securityContext.supplementalGroupsPolicy. Ini mencapai kontrol yang lebih halus atas izin akses volume. Untuk informasi lebih lanjut, lihat Konfigurasikan Kontrol SupplementalGroups Halus untuk Pod.MultiCIDRServiceAllocator mencapai GA dan diaktifkan secara default. Ini memperkenalkan ServiceCIDR dan sumber daya IPAddress untuk mencatat alokasi ClusterIP Layanan dan mendukung peningkatan rentang yang dapat dialokasikan dari ClusterIP secara dinamis melalui ServiceCIDR.
JobBackoffLimitPerIndex mencapai GA. Ini memungkinkan Anda menentukan jumlah maksimum percobaan ulang pod untuk setiap indeks dalam pekerjaan berindeks.
JobSuccessPolicy mencapai GA. Ini memungkinkan Anda mengonfigurasi kebijakan sukses pekerjaan kustom. Sebagai contoh, Anda dapat menentukan apakah pekerjaan selesai dengan menentukan apakah indeks tertentu berhasil dan jumlah indeks yang berhasil. Untuk informasi lebih lanjut, lihat Kebijakan Sukses Job Mencapai GA.
ImageVolume mencapai beta dan diaktifkan secara default. Ini memungkinkan Anda menggunakan sumber volume
imagedalam pod untuk memasang gambar kontainer sebagai volume read-only.UserNamespacesSupport mencapai beta dan diaktifkan secara default. Ini memungkinkan pod menggunakan namespace pengguna Linux untuk meningkatkan keamanan kontainer. Kemampuan ini tidak memengaruhi pod yang ada. Jika Anda ingin menggunakannya, Anda dapat secara manual menentukan
pod.spec.hostUsers. Untuk informasi lebih lanjut, lihat User Namespaces Diaktifkan Secara Default.RelaxedDNSSearchValidation mencapai beta dan diaktifkan secara default. Ini memungkinkan Anda menggunakan karakter khusus seperti
.dan_dalam bidang.spec.dnsConfig.searchesdari pod. Ini meningkatkan fleksibilitas konfigurasi DNS.kube-apiserver menonaktifkan mekanisme WatchList secara default dan mengadopsi mekanisme encoding streaming (termasuk StreamingCollectionEncodingToJSON dan StreamingCollectionEncodingToProtobuf). Peningkatan ini mengoptimalkan kinerja operasi List dengan melakukan streaming permintaan daftar sumber daya berskala besar. Untuk permintaan List yang berisi banyak sumber daya, ini dapat secara efektif mengurangi penggunaan memori dan meningkatkan stabilitas sistem. Untuk informasi lebih lanjut, lihat Respons Daftar Streaming.
kube-controller-manager tidak lagi secara aktif mengaktifkan fitur WatchListClient.
CPUManagerPolicyOptions mencapai GA dan diaktifkan secara default. Kebijakan alokasi sumber daya CPU Manager dapat dimodifikasi:
Saat pod memerlukan CPU eksklusif, itu memaksa penyelarasan SMT untuk memastikan bahwa CPU yang dialokasikan sepenuhnya menempati inti fisik lengkap. Untuk informasi lebih lanjut, lihat ekstensi cpu manager untuk menolak beban kerja yang tidak sesuai SMT.
Saat sumber daya CPU perlu dialokasikan di seluruh node Non-Uniform Memory Access (NUMA), itu dapat memastikan bahwa sumber daya CPU didistribusikan secara merata di seluruh node NUMA. Untuk informasi lebih lanjut, lihat Tambahkan opsi kebijakan CPUManager untuk mendistribusikan CPU di seluruh node NUMA alih-alih mengemasnya.
MatchLabelKeysInPodAffinity mencapai GA dan diaktifkan secara default. Ini menambahkan
matchLabelKeysdanmismatchLabelKeysdalam aturan afinitas pod untuk kontrol yang lebih presisi atas koeksistensi pod.NodeInclusionPolicyInPodTopologySpread mencapai GA dan diaktifkan secara default. Anda dapat menggunakan bidang
nodeAffinityPolicydannodeTaintsPolicydalam batasan penyebaran topologi pod untuk menyaring node yang dapat dijadwalkan secara dinamis.nodeAffinityPolicy: Secara default,nodeAffinityPolicydiatur ke Honor. Hanya node yang cocok dengan bidangnodeSelectorataunodeAffinitydari pod yang disertakan dalam perhitungan distribusi.nodeTaintsPolicy: Secara default,nodeTaintsPolicydiatur ke Ignore.nodeAffinitydannodeSelectordiabaikan, dan semua node disertakan dalam perhitungan distribusi topologi.
HonorPVReclaimPolicy mencapai GA dan diaktifkan secara default. Ini memastikan bahwa saat bidang
reclaimPolicydari volume persisten (PV) diatur keDelete, sumber daya penyimpanan dasar dihapus secara ketat sesuai dengan kebijakan terlepas dari urutan penghapusan PV atau klaim volume persisten (PVC). Ini menghindari kebocoran sumber daya penyimpanan.ProcMountType mencapai beta. Ini memungkinkan Anda mengonfigurasi tipe mount kustom untuk sistem file /proc dalam kontainer dengan menggunakan bidang
securityContext.procMountdari pod untuk menyesuaikan akses ke sistem file /proc. Ini meningkatkan keamanan dan isolasi pod. Fitur ini cocok untuk skenario yang memerlukan menjalankan kontainer tanpa hak istimewa dalam namespace pengguna, meningkatkan kompatibilitas dan fleksibilitas dengan melonggarkan batasan pada /proc.PodLifecycleSleepActionAllowZero mencapai beta. Ini memungkinkan Anda mengatur waktu tunggu untuk operasi
sleepdalampreStop(callback siklus hidup kontainer) menjadi 0.Anda dapat menggunakan
ResourceQuotauntuk membatasi jumlah PVC yang terkait dengan kelas atribut volume tertentu.Optimasi Kinerja Scheduler:
Fitur SchedulerPopFromBackoffQ ditambahkan dan diaktifkan secara default, yang mengoptimalkan logika pemrosesan antrian penjadwalan dengan memungkinkan pod diambil langsung dari backoffQ saat activeQ kosong. Ini secara signifikan mengurangi latensi penjadwalan pod.
SchedulerAsyncPreemption mencapai beta dan diaktifkan secara default. Ini memungkinkan Anda mengubah penjadwalan preemptive menjadi eksekusi asinkron. Operasi preemption mahal, dan eksekusi asinkron dapat secara efektif mengurangi latensi penjadwalan.
Kinerja penjadwalan untuk pod yang menggunakan batasan penyebaran topologi dioptimalkan.
API yang Ditinggalkan
Kubernetes 1.33 menggunakan containerd 2.1 secara default, dan containerd 2.1 tidak lagi mendukung API CRI v1alpha2. Jika Anda bergantung pada versi API ini, Anda harus beralih ke versi API CRI v1 untuk memastikan kompatibilitas.
Versi v1 dari API Endpoints secara resmi ditinggalkan. Kami merekomendasikan Anda menggunakan API EndpointsSlice. API EndpointSlice stabil sejak versi 1.21 dan memperkenalkan fitur seperti dukungan jaringan dual-stack. Namun, versi v1 dari API Endpoints dihapus pada saat ini. Untuk informasi lebih lanjut, lihat Melanjutkan Transisi dari Endpoints ke EndpointSlices.
Grup API apidiscovery.k8s.io/v2beta1 dinonaktifkan. API ini digunakan oleh klien untuk menanyakan informasi tentang semua sumber daya API yang terdaftar dalam kluster. Kami merekomendasikan Anda bermigrasi ke versi v2 yang stabil. Klien lama dapat secara otomatis menggunakan API versi v1 yang tidak digabungkan untuk penemuan layanan melalui mekanisme fallback, dan klien tidak akan segera melaporkan kesalahan. Namun, jika klien tidak diadaptasi ke versi v2, data yang tidak digabungkan memerlukan beberapa panggilan API untuk mendapatkan informasi lengkap, yang dapat mengakibatkan peningkatan volume permintaan dan latensi.
Referensi
Untuk informasi lebih lanjut tentang catatan rilis lengkap Kubernetes 1.33, lihat CHANGELOG-1.33 dan Kubernetes v1.33: Octarine.