Alibaba CloudContainer Compute Service (ACS) adalah layanan Kubernetes yang sepenuhnya sesuai standar. Dokumen ini menjelaskan perubahan utama dalam Kubernetes 1.30, termasuk pertimbangan upgrade, perubahan besar, fitur baru, fitur dan API yang ditinggalkan, serta feature gate.
Versi komponen
Tabel berikut mencantumkan versi yang didukung untuk komponen utama dalam kluster Alibaba Cloud Container Compute Service (ACS).
Komponen utama | Versi |
Kubernetes | 1.30.1-aliyunacs.1 |
etcd | v3.5.9 |
containerd | 1.6.28 |
CoreDNS | v1.9.3.10-7dfca203-aliyun |
CSI | v1.30.1-98960d8-aliyun |
CNI | Flannel v0.15.1.22-20a397e6-aliyun |
Terway dan TerwayControlplane v1.9.0 atau lebih baru Catatan Mulai dari v1.30, NetworkPolicy pada kluster baru diimplementasikan menggunakan eBPF. Upgrade kluster atau komponennya tidak mengubah perilaku yang sudah ada. Untuk informasi selengkapnya, lihat Gunakan kebijakan jaringan di kluster ACS. |
Fitur baru
Pada Kubernetes 1.29
Panggilan balik PreStop memperkenalkan mode sleep, yang menjeda kontainer selama periode waktu tertentu sebelum terminasi. Jeda ini memberikan waktu bagi operasi tertunda atau permintaan jaringan untuk diselesaikan. Untuk informasi selengkapnya, lihat KEP-3960: Introducing Sleep Action for PreStop Hook.
SidecarContainers kini berada dalam tahap Beta dan diaktifkan secara default. Fitur ini memungkinkan Anda mengatur
restartPolicydari init container menjadiAlways, sehingga mengubahnya menjadi kontainer sidecar yang dapat dimulai, dihentikan, atau dimulai ulang secara independen tanpa memengaruhi kontainer aplikasi utama atau init container lainnya. Untuk informasi selengkapnya, lihat Sidecar Containers.Jenis resource ServiceCIDR yang baru memungkinkan konfigurasi dinamis rentang ClusterIP layanan. Fitur ini berada dalam tahap Alpha dan dinonaktifkan secara default. Untuk informasi lebih lanjut tentang memperluas jumlah IP yang tersedia untuk layanan secara dinamis, lihat KEP-1880: Multiple Service CIDRs.
PVC (Persistent Volume Claims) dan Kontainer awalnya menggunakan struct ResourceRequirements yang sama untuk menentukan
requestsdanlimits. Hal ini menyebabkan API PVC berubah setiap kali structresourcesKontainer dimodifikasi, misalnya dengan penambahan bidangclaims. Oleh karena itu, PVC dialihkan ke struct VolumeResourceRequirements terpisah yang hanya berisirequestsdanlimits, serta mengecualikan bidangclaims. Untuk informasi selengkapnya, lihat Volume resource requirements.Fitur
PodReadyToStartContainersberada dalam tahap Beta dan diaktifkan secara default. Fitur ini menunjukkan bahwa sandbox Pod telah dibuat dan jaringannya telah dikonfigurasi. Artinya, runtime kontainer siap dan membantu kubelet menentukan status Pod. Untuk informasi selengkapnya, lihat Pod conditions.PodAffinity dan PodAntiAffinity kini mendukung
matchLabelKeysdanmismatchLabelKeysuntuk mengatasi masalah di mana penjadwal tidak dapat membedakan antara Pod lama dan baru selama rolling update Penyebaran, yang dapat menyebabkan hasil penjadwalan tidak sesuai ekspektasi afinitas dan anti-afinitas. Saat Anda mengonfigurasimatchLabelKeysuntuk PodAffinity, Penyebaran akan menambahkan labelpod-template-hashke Set Replika. Hal ini memberikan string hash yang sesuai untuk setiap Pod dalam Penyebaran, sehingga penjadwal hanya mengevaluasi Pod dengan nilaipod-template-hashyang sama, memudahkan pembedaan Pod dari batch pembaruan yang sama. Untuk informasi selengkapnya, lihat KEP-3633.Selain resource API inti Kubernetes, pemeriksaan tipe untuk
ValidatingAdmissionPolicykini juga mendukung CRD dan ekstensi API. Hal ini membantu memastikan keandalan kebijakan dan kebenaran konfigurasi kluster. Untuk informasi selengkapnya, lihat type-checking.Feature gate
UserNamespacesPodSecurityStandardsyang baru mengintegrasikan user namespace dengan Pod Security Standards. Saat diaktifkan, fitur ini memungkinkan kontainer berjalan sebagai pengguna non-root atau ID pengguna tertentu dalam konteks keamanan Pod. Feature gate ini berada dalam tahap Alpha dan dinonaktifkan secara default, serta mungkin tetap dinonaktifkan pada rilis mendatang. Untuk informasi selengkapnya, lihat KEP-127: Update PSS based on feature gate.Untuk objek node, feature gate
DisableNodeKubeProxyVersionyang baru menghentikan penggunaan bidangstatus.nodeInfo.kubeProxyVersion. Artinya, pengaturan bidangkubeProxyVersionuntuk node dinonaktifkan di Kubernetes. Kubelet tidak selalu dapat mengidentifikasi versi kube-proxy secara akurat, sehingga bidang ini tidak selalu tepat. Feature gate ini saat ini berada dalam tahap Alpha dan dinonaktifkan (false) secara default.Feature gate
JobBackoffLimitPerIndexdipromosikan ke tahap Beta dan diaktifkan secara default. Fitur ini memungkinkan Anda menentukan jumlah maksimum percobaan ulang untuk setiap indeks dalam pekerjaan terindeks. Untuk informasi lebih lanjut tentang pekerjaan terindeks, lihat Gunakan Indexed Job untuk Pemrosesan Paralel dengan Penugasan Kerja Statis.
Pada Kubernetes 1.30
Feature gate
ImageMaximumGCAgememungkinkankubeletmengonfigurasi usia maksimum gambar yang tidak digunakan sebelum dikumpulkan oleh mekanisme garbage collection. Jika gambar tidak digunakan lebih lama dari usia yang ditentukan, mekanisme garbage collection dapat membersihkannya. Nilai default-nya adalah"0s", yang berarti tidak ada batas waktu. Feature gate ini masuk tahap Alpha pada v1.29 dan dipromosikan ke Beta pada v1.30.Kubelet menambahkan metrik pemantauan baru
image_pull_duration_secondsuntuk melacak durasi pengambilan gambar. Untuk informasi selengkapnya, lihat Daftar Metrik Alpha Kubernetes.Feature gate LegacyServiceAccountTokenCleanUp dipromosikan ke GA dan diaktifkan secara default. Jika Secret yang dihasilkan otomatis dan terkait dengan ServiceAccount tidak digunakan selama periode tertentu (satu tahun secara default) dan tidak dimount oleh Pod apa pun, kube-controller-manager akan menambahkan label
kubernetes.io/legacy-token-invalid-sinceke Secret tersebut dengan tanggal saat ini sebagai nilainya, sehingga menandai Secret tersebut sebagai tidak valid. Jika Secret tetap tidak digunakan selama periode tertentu (satu tahun secara default) setelah ditandai tidak valid, Secret tersebut akan dibersihkan secara otomatis oleh kube-controller-manager. Untuk Secret yang telah ditandai tidak valid tetapi belum dihapus secara otomatis, Anda dapat menghapus labelkubernetes.io/legacy-token-invalid-sinceagar kembali valid. Untuk informasi selengkapnya, lihat Pembersihan token ServiceAccount legacy yang dihasilkan otomatis dan Pembersih token ServiceAccount legacy.Pada v1.30, jika flag
--nodeport-addressesuntuk kube-proxy tidak diatur (yang merupakan nilai default), pembaruan terhadap Layanan NodePort hanya akan memengaruhi alamat IP primer node, bukan semua alamat IP-nya. Untuk informasi selengkapnya, lihat #122724.Untuk mencegah konflik konfigurasi dan masalah keamanan, URL Issuer OIDC tidak boleh sama dengan URL Issuer ServiceAccount API server. Untuk informasi selengkapnya, lihat #123561.
Feature gate LoadBalancerIPMode menambahkan bidang
.status.loadBalancer.ingress.ipModeke Layanan bertipe LoadBalancer. Bidang ini menentukan perilaku penerusan IP load balancer. Anda hanya dapat menentukan bidang ini ketika bidang.status.loadBalancer.ingress.ipjuga ditentukan. Feature gate LoadBalancerIPMode kini berada dalam tahap Beta. Untuk informasi selengkapnya, lihat Menentukan IPMode status load balancer dan Load Balancer IP Mode untuk Layanan.Horizontal Pod Autoscaling (HPA) berdasarkan metrik
ContainerResourcedipromosikan ke Stable pada v1.30. Fitur ini memungkinkan HPA melakukan scaling berdasarkan penggunaan sumber daya kontainer individual dalam sebuah Pod, bukan hanya penggunaan sumber daya keseluruhan Pod. Hal ini mempermudah konfigurasi ambang batas scaling untuk kontainer yang paling penting dalam sebuah Pod. Untuk informasi selengkapnya, lihat Metrik sumber daya kontainer.Feature gate AdmissionWebhookMatchConditions telah lulus ke General Availability (GA). Fitur ini diaktifkan secara default dan tidak dapat dinonaktifkan. Feature gate ini memungkinkan admission webhook dicocokkan berdasarkan kondisi tertentu, sehingga memberikan kontrol lebih detail terhadap kondisi pemicunya. Untuk informasi selengkapnya, lihat Dynamic Admission Control.
Feature gate
JobSuccessPolicyditambahkan, yang memungkinkan Anda menyatakan bahwa suatu Pekerjaan berhasil diselesaikan berdasarkan sekumpulan Pod yang berhasil. Dalam kebijakan keberhasilan, Anda dapat menentukan bahwa Pekerjaan selesai berdasarkan indeks tertentu (misalnya, indeks Pod x, y, dan z) atau jumlah Pod yang berhasil dari sekumpulan indeks (misalnya, tiga Pod). Feature gate ini berada dalam tahap Alpha. Untuk informasi selengkapnya, lihat Kebijakan keberhasilan/penyelesaian Pekerjaan.Feature gate RelaxedEnvironmentVariableValidation ditambahkan untuk mengizinkan penggunaan sebagian besar karakter ASCII yang dapat dicetak dalam variabel lingkungan (semua karakter dari 32 hingga 126, kecuali
=). Feature gate ini berada dalam tahap Alpha dan dinonaktifkan secara default. Untuk informasi selengkapnya, lihat #123385.Feature gate
CustomResourceFieldSelectorsditambahkan. Anda dapat menggunakan feature gate ini untuk mengonfigurasiselectableFieldsuntuk CRD. Hal ini memungkinkan Anda menggunakan Field Selectors untuk memfilter permintaan List, Watch, dan DeleteCollection, sehingga mempermudah pencarian atau pengelolaan resource CRD yang memenuhi kriteria tertentu. Feature gate ini berada dalam tahap Alpha dan dinonaktifkan secara default. Untuk informasi selengkapnya, lihat Custom Resource Field Selectors.Feature gate CRDValidationRatcheting memperkenalkan pembaruan. Ketika validasi baru ditambahkan ke CRD, resource yang sudah ada mungkin menjadi tidak valid. Namun, API Server tidak akan memblokir pembaruan terhadap resource tersebut selama bagian yang gagal validasi tidak dimodifikasi. Perubahan ini mencegah gangguan terhadap resource dan pengguna yang sudah ada. Hal ini membantu proses validasi saat migrasi CRD untuk menggunakan skema OpenAPI v3 dan memungkinkan Anda memperbarui aturan validasi secara aman. Feature gate ini berada dalam tahap Beta dan diaktifkan secara default. Untuk informasi selengkapnya, lihat CRD Validation ratcheting.
Downward API menggunakan bidang
status.hostIPsuntuk mendukung dual stack, yang mendukung IPv4 dan IPv6. Alamat IP pertama dalam daftarstatus.hostIPsselalu sama denganstatus.hostIP. Untuk informasi selengkapnya, lihat Downward API.Feature gate NodeLogQuery memungkinkan Anda mengkueri log layanan node menggunakan endpoint
/logs. Feature gate ini dipromosikan ke Beta dan dinonaktifkan secara default. Untuk informasi selengkapnya, lihat Log Query.
Fitur yang ditinggalkan
Pada Kubernetes 1.29
CronJob tidak lagi mendukung pengaturan
CRON_TZatauTZdalam.spec.schedule. Gunakan bidang.spec.timeZonesebagai gantinya. Bidang ini telah tersedia sejak v1.25. Untuk informasi selengkapnya, lihat Batasan CronJob.API networking/v1alpha1 ClusterCIDR yang kontroversial telah dihapus. API ini berada dalam tahap Alpha. Untuk informasi selengkapnya, lihat ClusterCIDR v1alpha1.
Pada Kubernetes 1.30
Parameter
--prune-whitelisttelah dihapus dari perintah kubectl apply. Gunakan--prune-allowlistsebagai gantinya. Untuk informasi selengkapnya, lihat --prune.Plugin admission SecurityContextDeny telah ditinggalkan sejak v1.27 dan dihapus dari kode pada v1.30. Gunakan plugin admission PodSecurity sebagai gantinya. Plugin admission PodSecurity menjadi stabil pada v1.25 dan diaktifkan secara default. Untuk informasi selengkapnya, lihat PodSecurity.
API yang ditinggalkan
Versi API flowcontrol.apiserver.k8s.io/v1beta2 untuk FlowSchema dan PriorityLevelConfiguration telah ditinggalkan pada v1.29. Migrasikan ke versi API flowcontrol.apiserver.k8s.io/v1 (tersedia sejak v1.29) atau versi API flowcontrol.apiserver.k8s.io/v1beta3 (tersedia sejak v1.26).
Perubahan penting dalam
flowcontrol.apiserver.k8s.io/v1meliputi:Bidang
spec.limited.assuredConcurrencySharesPriorityLevelConfiguration telah diganti namanya menjadispec.limited.nominalConcurrencyShares, yang bernilai default 30 hanya jika tidak ditentukan, dan nilai eksplisit 0 tidak diubah menjadi 30.Perubahan penting dalam
flowcontrol.apiserver.k8s.io/v1beta3meliputi:Bidang
spec.limited.assuredConcurrencySharesPriorityLevelConfiguration telah diganti namanya menjadispec.limited.nominalConcurrencyShares.
Feature gates
Untuk informasi selengkapnya tentang feature gate Kubernetes, termasuk dukungan versi dan deskripsi, lihat Feature Gates.
Feature gate biasanya memiliki tiga tahap:
Alpha: Dinonaktifkan secara default.
Beta: Biasanya diaktifkan secara default.
GA: Fitur selalu diaktifkan dan tidak dapat dinonaktifkan lagi. Toggle feature gate dihapus.
Referensi
Untuk changelog lengkap Kubernetes 1.29 dan 1.30, lihat CHANGELOG-1.29 dan CHANGELOG-1.30.