All Products
Search
Document Center

Container Service for Kubernetes:(Tidak Dilanjutkan) Catatan Rilis ACK untuk Kubernetes 1.28

Last Updated:Jun 18, 2026

ACK telah tersertifikasi sesuai standar Kubernetes. Topik ini merangkum patch, fitur, API yang ditinggalkan, serta perubahan feature gate untuk ACK pada Kubernetes 1.27 dan 1.28.

Changelog upstream: CHANGELOG-1.27, CHANGELOG-1.28.

Penting

Sebelum melakukan upgrade ke Kubernetes 1.28, tinjau perubahan breaking berikut:

  • Plugin volume CephFS in-tree dihapus: Plugin volume CephFS in-tree telah dihapus pada versi 1.28. Kluster yang menggunakan driver in-tree akan mengalami gangguan setelah upgrade. Lakukan migrasi ke driver CSI CephFS sebelum upgrade dan evaluasi risiko terkait kompatibilitas, stabilitas, atau performa.

  • Migrasi CSI Ceph RBD tidak lagi memungkinkan: Migrasi volume Ceph RBD (kubernetes.io/rbd) ke driver CSI out-of-tree tidak lagi dimungkinkan di Kubernetes 1.28 dan akan sepenuhnya dihapus pada rilis mendatang. Selesaikan migrasi sebelum penghapusan tersebut.

  • Feature gate IPv6DualStack dihapus: Feature gate IPv6DualStack telah dihapus di Kubernetes 1.27. Jika Anda mengatur ini secara manual dalam konfigurasi kluster, hapus pengaturan tersebut sebelum upgrade.

  • Flag endpoint kubelet dipindahkan ke file konfigurasi: Flag --container-runtime-endpoint dan --image-service-endpoint tidak dapat lagi diberikan sebagai argumen baris perintah kubelet. Pindahkan pengaturan ini ke file konfigurasi kubelet sebelum upgrade.

Versi komponen

Versi komponen inti untuk kluster ACK pada Kubernetes 1.28.

Komponen inti Versi
Kubernetes 1.28.15-aliyun.1, 1.28.9-aliyun.1, dan 1.28.3-aliyun.1
etcd v3.5.9
CoreDNS v1.9.3.10-7dfca203-aliyun
CRI containerd 1.6.20
CSI Upgrade ke versi terbaru yang didukung. Changelog: csi-plugin, csi-provisioner.
CNI Flannel v0.15.1.22-20a397e6-aliyun
CNI (Terway) Terway dan TerwayControlplane v1.5.0 dan versi lebih baru
NVIDIA Container Runtime v3.13.0
Ingress Controller v1.8.0-aliyun.1

Patch keamanan

Versi CVE yang diperbaiki
1.28.15-aliyun.1 CVE-2024-10220
1.28.9-aliyun.1 CVE-2023-45288, CVE-2024-3177, CVE-2024-24786

Fitur baru

Kubernetes 1.28

Pematian node tidak mulus (GA)

Ketika sebuah node mati secara tak terduga—misalnya karena gangguan listrik—Kubernetes secara otomatis menjadwalkan ulang Pod StatefulSet dengan nama yang sama di node lain, mencegah gangguan layanan. Fitur ini kini telah mencapai GA.

Penugasan StorageClass default retroaktif (GA)

Sebelumnya, PVC tanpa storageClassName tetap berstatus Pending selamanya jika tidak ada StorageClass default. Kubernetes kini menetapkan StorageClass default yang dibuat belakangan kepada PVC yang belum terikat dan tidak memiliki storageClassName. Fitur ini kini telah mencapai GA.

Performa penjadwal

Logika retry penjadwal mengurangi upaya penjadwalan yang tidak valid, sehingga meningkatkan performa. Jika kluster Anda menggunakan plugin penjadwal kustom, perbarui plugin tersebut agar sesuai dengan framework penjadwalan baru. Lihat Perubahan framework penjadwalan.

Penanganan kegagalan Job

Dua feature gate Alpha baru meningkatkan cara Job yang gagal ditangani:

  • `JobPodReplacementPolicy`: Pod pengganti hanya dibuat ketika pod asli mencapai fase Failed (status.phase: Failed), bukan saat memiliki deletionTimestamp. Hal ini mencegah dua pod secara bersamaan menempati indeks yang sama dan mengonsumsi sumber daya node.

  • `JobBackoffLimitPerIndex`: Tetapkan .spec.backoffLimitPerIndex pada Indexed Job untuk membatasi jumlah percobaan ulang per indeks, alih-alih menghitung semua kegagalan terhadap satu .spec.backoffLimit bersama. Indeks yang terus-menerus gagal tidak lagi menyebabkan seluruh Job gagal.

Peringatan Tugas Terindeks Besar

Jika sebuah Job memiliki completion di atas 100.000 dan parallelism di atas 10.000 dengan banyak kegagalan pod, Kubernetes menampilkan peringatan—status terminasi mungkin tidak dapat dilacak secara andal pada skala tersebut.

Penyempurnaan validasi CRD

Field reason dan fieldPath ditambahkan ke aturan validasi CRD. Ketika ekspresi CEL gagal, server API mengembalikan kode reason dan path field yang gagal. Lihat CRD Validation Expression Language.

Pencocokan webhook dengan ekspresi CEL

matchConditions webhook kini mendukung ekspresi CEL (maksimal 64 per webhook), memberikan kontrol detail halus terhadap permintaan mana yang memicu webhook tanpa memerlukan admission controller penuh. Lihat Matching requests: matchConditions.

ValidatingAdmissionPolicy (Beta)

ValidatingAdmissionPolicy menyediakan alternatif deklaratif dalam kluster terhadap validating admission webhook. Tulis ekspresi CEL langsung dalam objek kebijakan; server API mengevaluasinya pada setiap permintaan yang cocok—tanpa infrastruktur webhook. Lihat ValidatingAdmissionPolicy.

Resize status field of PVC has been replaced

Field .status.resizeStatus pada PVC diganti dengan .status.allocatedResourceStatus, sebuah map yang melacak status resize setiap resource secara independen. Perbarui semua tool yang membaca .status.resizeStatus. Lihat PersistentVolumeClaimStatus.

Label indeks Pod untuk Indexed Job dan StatefulSet

Pod dari Indexed Job dan StatefulSet kini menyertakan indeks ordinal mereka sebagai label, mempermudah pemilihan pod berdasarkan posisi.

Flag konkurensi Kube Controller Manager

Dua flag baru mengontrol konkurensi controller:

  • --concurrent-cron-job-syncs: Menetapkan jumlah worker rekonsiliasi CronJob yang berjalan secara konkuren.

  • --concurrent-job-syncs: Menetapkan jumlah worker rekonsiliasi Job yang berjalan secara konkuren.

Lihat --concurrent-cron-job-syncs dan --concurrent-job-syncs.

Optimisasi server API

  • Penggunaan memori GetList berkurang: Permintaan daftar yang dilayani dari cache menggunakan lebih sedikit memori. Lihat Data uji GetList.

  • Perbaikan pembersihan endpoint: Memperbaiki bug di mana endpoint Service Kubernetes tidak dihapus saat hanya tersisa satu replika server API selama shutdown yang mulus.

  • Agregasi malas OpenAPI v2: Controller OpenAPI v2 kini hanya mengumpulkan informasi CRD saat diminta, mengurangi beban CPU dan memori ketika tidak ada klien yang mengakses endpoint tersebut. Hal ini mempercepat waktu instalasi untuk jumlah CRD yang besar, tetapi mungkin memperlambat permintaan pertama. Migrasikan klien ke OpenAPI v3.

  • ConsistentListFromCache (Alpha): Feature gate ConsistentListFromCache memungkinkan server API melayani permintaan LIST dari watch cache dengan jaminan konsistensi, mengurangi beban etcd.

  • Metrik pemantauan tambahan: Lebih banyak metrik tersedia melalui endpoint metrik.

Kubernetes 1.27

Status terminasi Pod diperbaiki

  • Pod yang dihapus saat berstatus Pending kini diatur menjadi Failed.

  • Pod yang dihapus saat berstatus Running diatur menjadi Succeeded atau Failed berdasarkan kode keluar kontainer.

Ini memperbaiki bug di mana pod dengan kebijakan kegagalan bisa terjebak di status Pending. Jika sebuah pod memiliki RestartPolicy=Always, pod tersebut mungkin menunjukkan status Succeeded setelah dihapus—tinjau controller Anda jika hal ini relevan. Lihat Setel status terminasi untuk pod yang tidak memerlukan restart.

ReadWriteOncePod untuk PersistentVolumes (Beta)

ReadWriteOncePod membatasi volume hanya untuk satu pod—lebih restriktif daripada ReadWriteOnce, yang memungkinkan beberapa pod pada node yang sama. Lihat Single Pod Access Mode for PersistentVolumes naik ke Beta.

Batasan penyebaran topologi Pod (Beta)

Beberapa opsi batasan penyebaran topologi kini berstatus Beta dan diaktifkan secara default: minDomains (domain memenuhi syarat minimum), nodeTaintsPolicy (menghitung node yang memiliki taint), nodeAffinityPolicy (menghitung node yang dikecualikan oleh afinitas), dan whenUnsatisfiable (perilaku saat batasan tidak dapat dipenuhi). Lihat Kebijakan penyebaran topologi pod yang lebih detail halus.

Validasi field sisi server (GA)

Server API kini memvalidasi field resource di sisi server. kubectl secara otomatis menggunakan mode Strict dan melewati validasi sisi klien, mengembalikan error jika server menolak suatu field. Lihat Server Side Field Validation and OpenAPI V3 move to GA.

OpenAPI v3 (GA)

OpenAPI v3, yang diperkenalkan di Kubernetes 1.23, kini telah mencapai GA. Lihat Server-side field validation and OpenAPI v3 move to GA.

Tipe metrik HPA ContainerResource (Beta)

HPA kini mendukung tipe metrik ContainerResource, melakukan scaling berdasarkan penggunaan resource kontainer individual alih-alih rata-rata pod. Ini memperbaiki masalah umum di mana sidecar dengan penggunaan rendah menurunkan rata-rata di bawah ambang batas, mencegah scale-out meskipun kontainer aplikasi kehabisan resource. Lihat Container resource metrics.

Penyempurnaan StatefulSet (Beta)

Dua fitur StatefulSet mencapai Beta:

  • `StatefulSetStartOrdinal`: Mulai ordinal pod dari angka selain nol menggunakan field ordinals.start.

  • `StatefulSetAutoDeletePVC`: Kontrol apakah StatefulSet menghapus PVC yang dibuat dari volumeClaimTemplate saat pod dihapus atau StatefulSet diskalakan turun.

Scaling vertikal pod in-place (Alpha)

InPlacePodVerticalScaling (Alpha, dinonaktifkan secara default) memungkinkan Anda mengubah requests dan limits CPU serta memori untuk kontainer yang sedang berjalan tanpa me-restart pod. Lihat Ubah ukuran resource CPU dan memori yang dialokasikan ke kontainer.

Penarikan gambar paralel

Tetapkan serializeImagePulls: false dalam konfigurasi kubelet untuk menarik gambar secara paralel. Gunakan maxParallelImagePulls (ditambahkan di 1.27) untuk membatasi jumlah maksimum penarikan konkuren dan menghindari saturasi lebar pita jaringan atau I/O disk. Lihat Serial and parallel image pulls.

Snapshot grup volume (Alpha)

API snapshot grup volume memungkinkan Anda membuat snapshot konsisten crash dari beberapa PersistentVolume sekaligus. Lihat Memperkenalkan API untuk snapshot grup volume.

Fitur dan API yang ditinggalkan

Kubernetes 1.28

Fitur yang Ditinggalkan Dampak Tindakan yang Diperlukan
Plugin volume CephFS in-tree Kode dihapus di 1.28. Workload yang menggunakan driver in-tree akan rusak. Migrasikan ke driver CSI CephFS sebelum upgrade.
Migrasi CSI Ceph RBD Migrasi volume Ceph RBD ke driver CSI out-of-tree tidak lagi dimungkinkan di 1.28 dan akan sepenuhnya dihapus pada rilis mendatang. Selesaikan migrasi sebelum penghapusan.
Plugin volume RBD (kubernetes.io/rbd) Ditinggalkan; akan dihapus pada rilis mendatang. Beralihlah ke driver CSI CephFS.
Key Management Service (KMS) v1 Ditinggalkan. Gunakan KMSv2. Untuk terus menggunakan KMSv1 sementara, atur --feature-gates=KMSv1=true. Lihat Tandai KMS v1beta1 sebagai deprecated.
Flag KCM --volume-host-cidr-denylist dan --volume-host-allow-local-loopback Ditinggalkan; akan dihapus pada rilis mendatang. Hapus flag ini dari konfigurasi Kube Controller Manager Anda.
Flag kubelet --azure-container-registry-config Ditinggalkan; akan dihapus pada rilis mendatang. Gunakan image-credential-provider-config dan --image-credential-provider-bin-dir sebagai gantinya.
Kelompok node Windows Pembuatan kelompok node Windows tidak lagi didukung. Gunakan kelompok node Alibaba Cloud Linux 3 atau ContainerOS 3.1. Lihat Buat dan kelola kelompok node.

Kubernetes 1.27

Fitur yang Ditinggalkan Dampak Tindakan yang Diperlukan
Plugin penyimpanan AWS EBS in-tree Digantikan oleh plugin CSI out-of-tree. Lihat cloud-provider-aws.
Field spec.externalID pada Node Ditinggalkan; klien yang memperbarui field ini akan menerima peringatan. Berhenti memperbarui spec.externalID.
Anotasi seccomp Alpha (seccomp.security.alpha.kubernetes.io/pod, container.seccomp.security.alpha.kubernetes.io) Dihapus di v1.27. Workload yang bergantung pada anotasi ini diam-diam kehilangan pengaturan seccomp. Gunakan field securityContext.seccompProfile sebagai gantinya.
Flag KCM --pod-eviction-timeout dan --enable-taint-manager Dihapus di 1.27. Hapus flag ini dari konfigurasi Kube Controller Manager Anda.
Flag kubelet --container-runtime Dihapus di 1.27 (ditinggalkan sejak 1.24). Tidak perlu tindakan; nilai default remote tetap dipertahankan.
Flag kubelet --container-runtime-endpoint dan --image-service-endpoint (sebagai flag CLI) Tidak dapat lagi diatur sebagai flag baris perintah. Pindahkan ke file konfigurasi kubelet.
SecurityContextDeny admission controller Ditinggalkan; akan dihapus pada rilis mendatang. Migrasikan ke Pod Security Admission atau validating webhook.

API yang ditinggalkan

API storage.k8s.io/v1beta1 CSIStorageCapacity ditinggalkan di 1.24 dan dihapus di 1.27. Gunakan storage.k8s.io/v1 (tersedia sejak 1.24). Lihat Storage Capacity Constraints for Pod Scheduling KEP.

Perubahan feature gate

Feature gate menentukan tingkat kematangan fitur Kubernetes:

  • Alpha: Dinonaktifkan secara default. Bersifat eksperimental dan dapat berubah.

  • Beta: Diaktifkan secara default. Cukup stabil untuk sebagian besar kluster.

  • GA (Generally Available): Selalu diaktifkan. Feature gate dihapus.

Dinaikkan ke GA

Feature gate berikut telah mencapai GA dan diaktifkan secara permanen. Gate tersebut dihapus.

Di Kubernetes 1.28:

Feature gate Fungsinya
NodeOutOfServiceVolumeDetach Ketika node.kubernetes.io/out-of-service ditambahkan ke sebuah node, pod yang tidak mentolerir kondisi tersebut dihapus secara paksa dan volumenya segera dilepas, memungkinkan pemulihan cepat di node lain.
IPTablesOwnershipCleanup Kubernetes tidak lagi membuat rantai iptables KUBE-MARK-DROP dan KUBE-MARK-MASQ.
ProbeTerminationGracePeriod Mengaktifkan terminationGracePeriodSeconds tingkat probe untuk menggantikan periode tenggang tingkat pod pada probe liveness dan startup.
DelegateFSGroupToCSIDriver, DevicePlugins, KubeletCredentialProviders, MixedProtocolLBService, ServiceInternalTrafficPolicy, ServiceIPStaticSubrange, EndpointSliceTerminatingCondition Berbagai fitur stabil kini selalu diaktifkan. Feature gate dihapus.

Di Kubernetes 1.27:

Feature gate Fungsinya
ExpandCSIVolumes, ExpandInUsePersistentVolumes, ExpandPersistentVolumes Ekspansi volume untuk volume CSI, PV yang sedang digunakan, dan PV secara umum. Ketiganya kini selalu diaktifkan.
CSIInlineVolume Volume CSI inline dalam spesifikasi pod. GA sejak 1.25, dihapus di 1.27.
EphemeralContainers Kontainer debug ephemeral. GA sejak 1.25, feature gate dihapus.
LocalStorageCapacityIsolation Batas ketat penggunaan emptyDir per pod; kubelet menghapus pod yang melebihi batas tersebut. GA sejak 1.25, dihapus di 1.27.
NetworkPolicyEndPort endPort dalam aturan NetworkPolicy untuk menentukan range port. GA sejak 1.25, dihapus di 1.27.
StatefulSetMinReadySeconds minReadySeconds pada StatefulSet. GA sejak 1.25, dihapus di 1.27.
DaemonSetUpdateSurge maxSurge pada rolling update DaemonSet. GA sejak 1.25, dihapus.
IdentifyPodOS os pada pod untuk menentukan sistem operasi. GA sejak 1.25, dihapus.
CSIMigration Migrasi in-tree ke CSI out-of-tree mencapai GA di v1.25. Feature gate selalu diaktifkan dan dihapus.

Dinaikkan ke Beta (diaktifkan secara default)

Di Kubernetes 1.28:

Feature gate Fungsinya
AdmissionWebhookMatchCondition Ekspresi CEL dalam matchConditions webhook. Maksimal 64 kondisi per webhook.

Di Kubernetes 1.27:

Feature gate Fungsinya
StatefulSetStartOrdinal Mulai ordinal pod StatefulSet dari angka bukan nol.
StatefulSetAutoDeletePVC Kontrol penghapusan PVC otomatis saat pod StatefulSet dihapus.
ReadWriteOncePod ReadWriteOncePod sebagai mode akses untuk PersistentVolumes.

Baru dalam Alpha (dinonaktifkan secara default)

Di Kubernetes 1.28:

Feature gate Fungsinya
UnknownVersionInteroperabilityProxy Mengarahkan permintaan ke server API yang tepat saat beberapa versi server API berjalan bersamaan dalam kluster. Lihat Mixed version proxy.
ConsistentListFromCache Memungkinkan server API menggunakan watch cache untuk melayani permintaan LIST dengan jaminan konsistensi.

Di Kubernetes 1.27:

Feature gate Fungsinya
NodeLogQuery Kueri log node dengan kubectl setelah mengatur enableSystemLogHandler: true dan enableSystemLogQuery: true dalam konfigurasi kubelet.
ServiceNodePortStaticSubrange Membagi rentang NodePort menjadi dua bagian. Alokasi dinamis menggunakan bagian atas; bagian bawah dicadangkan untuk alokasi statis, mengurangi konflik port. Lihat Hindari tabrakan saat menetapkan port untuk Service NodePort.
InPlacePodVerticalScaling Ubah ukuran CPU dan memori kontainer tanpa me-restart pod.

Dihapus (tidak perlu dikonfigurasi lagi)

Di Kubernetes 1.27:

Feature gate IPv6DualStack telah dihapus setelah mencapai GA di v1.23. Jika Anda mengatur ini secara manual dalam konfigurasi kluster, hapus pengaturan tersebut sebelum upgrade.