Container Service for Kubernetes (ACK) secara ketat mematuhi ketentuan Certified Kubernetes Conformance Program. Topik ini mencakup versi komponen, perubahan yang mengganggu (breaking changes), fitur baru, dan perbaikan keamanan dalam Kubernetes 1.31.
Versi komponen
| Komponen | Versi |
|---|---|
| Kubernetes | 1.31.9-aliyun.1 dan 1.31.1-aliyun.1 |
| etcd | v3.5.15 |
| containerd | 1.6.34 |
| CoreDNS | v1.11.3.2-f57ea7ed6-aliyun |
| CSI | csi-plugin dan csi-provisioner diperbarui ke versi terbaru. Lihat catatan rilis csi-plugin dan csi-provisioner. |
| CNI | Flannel v0.15.1.22-20a397e6-aliyun |
| Terway dan TerwayControlplane | 1.10.0 dan versi lebih baru |
Fitur Trunk ENI diaktifkan secara default untuk kluster ACK yang dikelola yang baru dibuat yang menggunakan Terway sebagai plug-in jaringan dan menjalankan Kubernetes 1.31 atau versi lebih baru.
Perubahan yang mengganggu
Perubahan berikut memerlukan tindakan sebelum atau segera setelah melakukan upgrade ke 1.31.
Plug-in volume CephFS dihapus
Plug-in volume CephFS bawaan kubernetes.io/cephfs telah dihapus pada versi 1.31. Gunakan driver CSI CephFS sebagai gantinya.
Jika kluster Anda menggunakan plug-in volume CephFS, redeploy aplikasi Anda untuk menggunakan driver CSI CephFS setelah melakukan upgrade ke 1.31.
Plug-in volume CephRBD dihapus
Plug-in volume CephRBD bawaan kubernetes.io/rbd telah dihapus pada versi 1.31. Gunakan driver CSI RBD sebagai gantinya.
Jika kluster Anda menggunakan plug-in volume CephRBD, redeploy aplikasi Anda untuk menggunakan driver CSI RBD setelah melakukan upgrade ke 1.31.
CSIMigrationPortworx diaktifkan secara default
Feature gate CSIMigrationPortworx diaktifkan secara default, sehingga memigrasikan volume dari plug-in Portworx bawaan lama ke plug-in Portworx CSI.
Jika Anda menggunakan Portworx sebagai solusi penyimpanan, instal dan konfigurasikan plug-in Portworx CSI sebelum melakukan upgrade ke 1.31.
Fitur baru
Penjadwalan workload
MatchLabelKeysInPodAffinity dipromosikan ke beta (diaktifkan secara default)
Untuk mengatasi konflik penjadwalan selama rolling update di mana Pod melanggar aturan affinity dan anti-affinity, tentukan bidang baru matchLabelKeys dan mismatchLabelKeys dalam podAffinity dan podAntiAffinity. Penjadwal menggunakan bidang-bidang ini untuk membedakan Pod lama dari Pod baru selama rollout. Lihat matchLabelKeys dan mismatchLabelKeys.
Penyimpanan
RecursiveReadOnlyMounts dipromosikan ke beta (diaktifkan secara default)
Volume yang dimount ke Pod kini dapat dibuat menjadi read-only secara rekursif. Semua subdirektori dan file di bawah mount tersebut diatur ke mode read-only. Lihat Recursive read-only mounts.
HonorPVReclaimPolicy dipromosikan ke beta (diaktifkan secara default)
Finalizer kini dapat ditambahkan ke PersistentVolume (PV) untuk memastikan bahwa PV dengan kebijakan reclaim Delete hanya dihapus setelah penyimpanan pendukung (backing storage) terkait dihapus. Lihat PersistentVolume deletion protection finalizer.
Workload
JobSuccessPolicy dipromosikan ke beta (diaktifkan secara default)
Kebijakan sukses kini dapat dikonfigurasi untuk Indexed Jobs. Lihat Job success policy.
kubelet tidak lagi me-restart kontainer pada perubahan spec non-image
Jika bidang spec sebuah Pod berubah tetapi bidang image tidak berubah, kubelet tidak akan me-restart kontainer tersebut. Hal ini mencegah restart Pod yang tidak perlu akibat pembaruan konfigurasi non-fungsional.
Keamanan dan otentikasi
ServiceAccountTokenNodeBinding dipromosikan ke beta (diaktifkan secara default)
Token ServiceAccount kini dapat diikat ke node tertentu. Token tersebut menjadi tidak valid jika kedaluwarsa, atau jika node atau ServiceAccount terkait dihapus.
API dan tooling
DisableNodeKubeProxyVersion dipromosikan ke beta (diaktifkan secara default)
Bidang status.nodeInfo.kubeProxyVersion tidak lagi menampilkan versi kube-proxy. Nilai pada bidang ini sebelumnya tidak akurat dan tidak mencerminkan versi kube-proxy yang sebenarnya berjalan di node.
Profil kustom kubectl debug dipromosikan ke beta
kubectl debug kini mendukung konfigurasi profil kustom untuk troubleshooting Pod. Lihat Kubernetes 1.31: Custom Profiling in Kubectl Debug Graduates to Beta.
Streaming kubectl dimigrasikan dari SPDY ke WebSocket
kubectl cp, kubectl attach, kubectl exec, dan kubectl port-forward kini menggunakan WebSocket untuk streaming alih-alih SPDY. WebSocket merupakan protokol streaming default untuk klien Kubernetes termasuk kubectl.
Pembacaan konsisten dari cache dipromosikan ke beta
Server API Kubernetes kini dapat menyajikan pembacaan konsisten dari cache alih-alih mengambil seluruh dataset dari etcd, sehingga meningkatkan efisiensi permintaan List. Lihat Consistent reads from cache.
Validasi CRD
Validasi caBundle diberlakukan
Jika bidang caBundle dalam CustomResourceDefinition (CRD) tidak kosong tetapi berisi nilai yang tidak valid atau tidak berisi sertifikat CA, CRD tersebut akan berhenti melayani permintaan. Setelah caBundle yang valid ditetapkan, pembaruan yang membuatnya menjadi tidak valid atau kosong akan ditolak untuk mencegah gangguan layanan.
Perbaikan keamanan
CVE berikut diperbaiki dalam 1.31.9-aliyun.1: