全部产品
Search
文档中心

Container Service for Kubernetes:(Discontinued) Catatan Rilis Kubernetes 1.26

更新时间:Jul 02, 2025

Container Service for Kubernetes (ACK) secara ketat mematuhi ketentuan Program Sertifikasi Konformitas Kubernetes Bersertifikat. Topik ini menjelaskan perubahan yang dilakukan oleh ACK untuk mendukung Kubernetes 1.26.

Daftar isi

Pembaruan versi

Komponen diperbarui dan dioptimalkan oleh ACK untuk mendukung Kubernetes 1.26.

Komponen utama

Nomor versi

Deskripsi

Kubernetes

1.26.15-aliyun.1 dan 1.26.3-aliyun.1

  • Banyak peningkatan besar dilakukan pada Kubernetes 1.26. Sebelum Anda memperbarui klaster Anda, baca Catatan pembaruan.

  • Banyak API beta telah dihapus di Kubernetes 1.25 dan 1.26. Sebelum Anda memperbarui klaster Anda ke Kubernetes 1.26, periksa apakah pengontrol atau aplikasi yang perlu berinteraksi dengan API beta yang dihapus telah diperbarui untuk menggunakan versi API yang direkomendasikan. Untuk informasi lebih lanjut tentang API yang dihapus, lihat API yang Dihapus.

  • Kubernetes 1.26 tidak lagi mendukung Antarmuka Runtime Kontainer (CRI) v1alpha2 tetapi memerlukan runtime kontainer untuk mendukung CRI v1. Oleh karena itu, pastikan bahwa containerd 1.6 atau yang lebih baru digunakan di Kubernetes 1.26. Sebelum Anda memperbarui klaster Anda ke Kubernetes 1.26, Anda perlu terlebih dahulu memperbarui containerd ke versi 1.6.0 atau yang lebih baru.

  • Pengontrol penerimaan PodSecurityPolicy (PSP) telah dihapus di Kubernetes 1.21 dan dihapus dari Kubernetes 1.25. Pengontrol penerimaan PSP kompleks dan dapat menyebabkan masalah keamanan karena mungkin memberikan izin berlebihan. Untuk informasi lebih lanjut tentang pengganti pengontrol penerimaan PSP, lihat Catatan pembaruan.

  • Secara default, port baca-saja 10255 yang digunakan oleh kubelet untuk mengekspos metrik kontainer tidak lagi terbuka di klaster ACK yang menjalankan Kubernetes 1.26 atau yang lebih baru. Port otentikasi 10250 terbuka dan digunakan oleh kubelet sebagai gantinya. Untuk informasi lebih lanjut, lihat [Perubahan Produk] Buka port otentikasi alih-alih port baca-saja untuk kubelet di klaster ACK yang menjalankan versi Kubernetes sebelum 1.26.

etcd

v3.5.4

Tidak ada

CoreDNS

1.9.3.10-7dfca203-aliyun

Tidak ada

CRI

Containerd 1.6.20

Hanya mendukung Kubernetes 1.24.0 dan yang lebih baru.

CSI

Perbarui csi-plugin dan csi-provisioner ke versi terbaru. Untuk informasi lebih lanjut tentang catatan rilis, lihat csi-plugin dan csi-provisioner.

Tidak ada

CNI

Flannel v0.15.1.22-20a397e6-aliyun

Tidak ada

Terway & TerwayControlplanev1.5.0 +

Tidak ada

NVIDIA Container Runtime

v3.13.0

Hanya Kubernetes 1.26 yang mendukung NVIDIA Container Runtime v3.13.0. Versi Kubernetes lainnya mendukung NVIDIA Container Runtime v3.7.0.

Ingress Controller

v1.6.4-aliyun.1

Tidak ada

Catatan pembaruan

Perubahan utama

  • Banyak API beta telah dihapus di Kubernetes 1.25 dan 1.26. Sebelum memperbarui klaster Anda ke Kubernetes 1.26, pastikan pengontrol atau aplikasi yang berinteraksi dengan API beta tersebut telah diperbarui untuk menggunakan versi API yang direkomendasikan. Untuk informasi lebih lanjut tentang API yang dihapus, lihat API yang Dihapus.

  • Kubernetes 1.26 tidak lagi mendukung CRI v1alpha2 tetapi memerlukan runtime kontainer untuk mendukung CRI v1. Oleh karena itu, Kubernetes 1.26 tidak mendukung containerd 1.5 atau yang lebih lama. Pastikan bahwa containerd 1.6 atau yang lebih baru digunakan di Kubernetes 1.26. Sebelum memperbarui klaster Anda ke Kubernetes 1.26, perbarui terlebih dahulu containerd ke versi 1.6.0 atau yang lebih baru.

  • Pengontrol penerimaan PSP telah dihapus di Kubernetes 1.21 dan sepenuhnya dihilangkan dari Kubernetes 1.25. Pengontrol penerimaan PSP kompleks dan dapat menyebabkan masalah keamanan karena mungkin memberikan izin berlebihan. Untuk informasi lebih lanjut, lihat PodSecurityPolicy: The Historical Context.

    Untuk klaster tempat pengontrol penerimaan PSP dapat digunakan, atur salah satu batasan berikut sebelum memperbarui klaster:

  • Kerentanan CVE berikut diperbaiki di 1.26.15-aliyun.1:

    • CVE-2023-45288

    • CVE-2024-3177

    • CVE-2024-24786

Fitur baru

  • Versi beta dari kontainer sementara digunakan di Kubernetes 1.23 dan versi stabil digunakan di Kubernetes 1.25. Jika pod yang ingin Anda periksa telah crash atau Anda tidak memiliki alat debugging untuk menjalankan kubectl exec, Anda dapat menjalankan kontainer sementara di dalam pod untuk memeriksa status pod dan menjalankan perintah arbitrer. Untuk informasi lebih lanjut, lihat Kontainer Sementara.

  • cgroup v2 di Kubernetes 1.25 mencapai fase Stabil. cgroup v2 adalah versi yang dioptimalkan dari cgroup v1. Untuk informasi lebih lanjut, lihat Tentang cgroup v2.

  • Dukungan untuk Windows di Kubernetes 1.25 terus dioptimalkan. Misalnya, CI unit tests dan conformance tests didukung dan repository baru dapat dibuat untuk kesiapan operasional Windows.

  • Di Kubernetes 1.25, image registry k8s.gcr.io dialihkan ke registry.k8s.io dan permintaan juga dialihkan ke registry.k8s.io. Untuk informasi lebih lanjut, lihat k8s.gcr.io Redirect to registry.k8s.io.

  • Di Kubernetes 1.25, bidang EndPort di kebijakan jaringan mencapai fase General Availability (GA). Jika plugin jaringan Anda mendukung bidang EndPort, Anda dapat menggunakan bidang ini untuk menentukan rentang port saat mengonfigurasi kebijakan jaringan. Jika plugin jaringan Anda tidak mendukung bidang EndPort dan Anda membuat kebijakan jaringan dengan bidang ini, kebijakan tersebut hanya akan diterapkan untuk bidang port tunggal. Untuk informasi lebih lanjut, lihat Network Policies.

  • Di Kubernetes 1.25, isolasi kapasitas penyimpanan sementara lokal mencapai fase GA (rilis resmi). Fitur ini memberikan dukungan untuk isolasi kapasitas penyimpanan sementara lokal antar pod, seperti volume EmptyDir. Pod dapat dibatasi keras dalam konsumsi penyimpanan sementara lokal mereka. Pod akan diusir jika konsumsi penyimpanan sementara lokalnya melebihi batas atas. Untuk informasi lebih lanjut, lihat Isolasi Kapasitas Penyimpanan Sementara Lokal.

  • Di Kubernetes 1.25, volume CSI sementara diperbarui ke versi stabil. Saat volume CSI sementara digunakan, Anda tidak dapat langsung menentukan volume CSI yang berasal dari volume persisten (PV) dan klaim volume persisten (PVC) di Spec pod. Untuk informasi lebih lanjut, lihat Ephemeral Inline CSI volumes.

  • Di Kubernetes 1.25, API alpha1 Key Management Service (KMS) v2 diperkenalkan untuk meningkatkan kinerja dan mengoptimalkan rotasi kunci dan observabilitas. API ini menggantikan AES-CBC dengan AES-GCM, dan menggunakan DEK untuk mengenkripsi data statis (Kubernetes Secrets). Tidak diperlukan operasi tambahan selama proses enkripsi. Data yang dienkripsi dapat didekripsi menggunakan AES-GCM dan AES-CBC. Untuk informasi lebih lanjut, lihat Menggunakan Penyedia KMS untuk enkripsi data.

  • Di Kubernetes 1.25, standar Container Object Storage Interface (COSI) diperkenalkan untuk menstandardisasi penyediaan dan konsumsi penyimpanan objek. COSI berada di fase Alpha.

  • Di Kubernetes 1.25, jika PodHasNetwork di bidang status pod adalah True, runtime sandbox pod diinisialisasi dan dibuat, dan jaringan sandbox dikonfigurasi. Ini karena kubelet mulai menarik gambar untuk meluncurkan kontainer hanya setelah PodHasNetwork diatur ke True. Oleh karena itu, bidang ini dapat digunakan untuk menunjukkan latensi inisialisasi pod, tidak termasuk karakteristik seperti kecepatan penarikan gambar dan beban aplikasi. Anda dapat menggunakan PodHasNetwork untuk secara akurat menghasilkan indikator tingkat layanan (SLI). PodHasNetwork berada di fase Alpha. Jika Anda ingin menggunakan PodHasNetwork, aktifkan gerbang fitur PodHasNetworkCondition pada kubelet. Untuk informasi lebih lanjut, lihat Bagaimana ini berbeda dari kondisi Initialized yang ada yang dilaporkan untuk pod?

  • Di Kubernetes 1.25, bidang minReadySeconds untuk StatefulSets mencapai fase Stabil. Bidang ini memungkinkan setiap pod menunggu periode waktu tertentu untuk memperlambat pembaruan bergulir StatefulSets. Untuk informasi lebih lanjut, lihat Minimum ready seconds.

  • Di Kubernetes 1.25, DaemonSet maxSurge mencapai fase Stabil. maxSurge menentukan jumlah pod tambahan yang dapat dibuat pada node selama pembaruan bergulir DaemonSet. Ini membantu mengurangi downtime DaemonSet semaksimal mungkin. Anda tidak dapat menggunakan maxSurge dan hostPort secara bersamaan di DaemonSets karena dua pod aktif tidak dapat berbagi port yang sama pada node. Untuk informasi lebih lanjut, lihat Perform a Rolling Update on a DaemonSet.

  • Di Kubernetes 1.25, dukungan alpha untuk menjalankan pod dengan namespace pengguna ditambahkan. Di namespace pengguna, Anda dapat memetakan pengguna root di dalam pod ke ID non-nol di luar pod. ID tersebut adalah ID pengguna root dari sudut pandang kontainer dan ID biasa tanpa hak istimewa dari sudut pandang host. Untuk menggunakan fitur ini, Anda perlu mengaktifkan gerbang fitur UserNamespacesStatelessPodsSupport dan memastikan bahwa runtime kontainer mendukung fitur ini. Untuk informasi lebih lanjut, lihat Kubernetes 1.25: alpha support for running Pods with user namespaces.

  • Di Kubernetes 1.25, gerbang fitur RetroactiveDefaultStorageClass ditambahkan untuk mengubah cara StorageClass default dialokasikan ke PVC. Sebelum gerbang fitur ini diaktifkan, StorageClass default hanya dialokasikan ke PVC jika StorageClass dibuat sebelum PVC. Jika tidak, StorageClass PVC tetap dalam keadaan nil. Setelah gerbang fitur ini diaktifkan, Anda tidak perlu lagi menghapus dan membuat ulang PVC tersebut. StorageClass default dapat dialokasikan secara otomatis ke PVC. Gerbang fitur ini akan mencapai fase Beta di Kubernetes 1.26 dan diaktifkan secara default di Kubernetes 1.26.

  • Di Kubernetes 1.25, JobPodFailurePolicy ditambahkan. Fitur ini memungkinkan Anda mengonfigurasi Job untuk menangani gangguan pod berdasarkan kode keluar dan status pod. Fitur ini mencapai fase Beta di Kubernetes 1.26. Anda dapat mendefinisikan bidang podFailurePolicy di Job untuk mengonfigurasi kebijakan kegagalan pod untuk menghindari percobaan ulang pod yang tidak perlu dan mengabaikan pengusiran pod. Untuk informasi lebih lanjut, lihat Menangani kegagalan pod yang dapat dicoba ulang dan yang tidak dapat dicoba ulang dengan Pod failure policy.

  • Di Kubernetes 1.25, masalah bahwa PodTopologySpread tidak dapat menyebar pod secara merata selama pembaruan bergulir diperbaiki. Dukungan Beta untuk bidang minDomains ditambahkan.

  • Di Kubernetes 1.25, kube-proxy dioptimalkan untuk klaster besar. Misalnya, di klaster yang memiliki 1.000 titik akhir, aturan iptables yang tidak digunakan dipertahankan selama periode waktu tertentu. Maksimum periode retensi sama dengan siklus sinkronisasi maksimum aturan iptables. Oleh karena itu, Anda tidak perlu lagi memindai aturan iptables lama setiap kali. Di klaster kecil, aturan iptables yang tidak digunakan segera dihapus.

  • Di Kubernetes 1.26, API alokasi sumber daya dinamis ditambahkan. API ini dapat digunakan untuk meminta dan berbagi sumber daya antar pod atau antar kontainer dalam pod. API ini juga menyediakan parameter untuk Anda menginisialisasi sumber daya. API ini berada di fase Alpha. Untuk menggunakan API ini, Anda perlu mengaktifkan gerbang fitur DynamicResourceAllocation dan grup API resource.k8s.io/v1alpha1, serta memasang driver sumber daya untuk sumber daya yang ingin Anda kelola. Untuk informasi lebih lanjut, lihat Alpha API For Dynamic Resource Allocation.

  • Di Kubernetes 1.26, shutdown node non-graceful mencapai fase Beta. Saat node dimatikan, pod di node tersebut akan macet dalam keadaan Terminating dan VolumeAttachments tidak dapat dihapus. Jika pod dibuat oleh StatefulSet, pod tidak dapat dibuat ulang di node lain karena nama pod duplikat tidak diizinkan. Dibandingkan dengan shutdown node graceful berdasarkan pemantauan shutdown node yang dilakukan oleh kubelet, Anda perlu secara manual menambahkan tanda out-of-service ke node untuk memicu shutdown node non-graceful dan memigrasi pod di node tersebut ke node lain. Setelah node pulih, Anda perlu secara manual menghapus tanda tersebut.

  • Di Kubernetes 1.26, Anda dapat mendelegasikan fsGroup ke driver CSI saat memasang volume ke pod. Fitur ini menyediakan mekanisme bagi driver CSI untuk menerapkan fsGroup alih-alih kubelet untuk mengubah izin pada file dan direktori. Fitur ini transparan bagi pengguna. Jika Anda adalah pengembang driver CSI, lihat Dukungan fsGroup Driver CSI.

  • Di Kubernetes 1.26, gerbang penjadwalan pod ditambahkan untuk memberitahu penjadwal kapan pod siap untuk dijadwalkan. Saat sejumlah besar pod tertunda tidak dapat dijadwalkan karena peristiwa eksternal, kinerja penjadwal terpengaruh secara negatif. Untuk menyelesaikan masalah tersebut, gerbang penjadwalan pod memungkinkan Anda menyatakan bahwa pod yang baru dibuat belum siap untuk dijadwalkan. Jika spec.schedulingGates dikonfigurasikan untuk pod, penjadwal mengabaikan pod tersebut saat menjadwalkan pod. Gerbang ini memerlukan pengontrol eksternal untuk mengonfirmasi kapan pod siap untuk dijadwalkan dan kemudian menghapus gerbang tersebut. Untuk informasi lebih lanjut, lihat Kesiapan Penjadwalan Pod.

  • Di Kubernetes 1.26, manajer CPU mencapai fase GA. Fitur ini telah mencapai fase Beta di Kubernetes 1.10. Manajer CPU adalah bagian dari kubelet dan digunakan untuk mengalokasikan CPU eksklusif ke kontainer. Manajer CPU mendukung tiga kebijakan. Untuk informasi lebih lanjut, lihat Mengontrol Kebijakan Manajemen CPU pada Node.

  • Di Kubernetes 1.26, dukungan alpha untuk sumber data penyimpanan lintas namespace ditambahkan. Fitur ini memungkinkan Anda menentukan sumber data yang termasuk dalam namespace berbeda untuk PVC. Untuk informasi lebih lanjut, lihat Kubernetes v1.26: Alpha support for cross-namespace storage data sources.

  • Di Kubernetes 1.26, Anda dapat menentukan kebijakan .spec.unhealthyPodEvictionPolicy=AlwaysAllow untuk memaksa PodDisruptionBudget selalu mengizinkan pengusiran pod yang tidak sehat. Fitur iniberada di fase Alpha. Untuk menggunakan fitur ini, Anda perlu mengaktifkan gerbang fitur PDBUnhealthyPodEvictionPolicy. Untuk informasi lebih lanjut, lihat Kebijakan Pengusiran Pod Tidak Sehat.

  • Di Kubernetes 1.26, httpGet untuk hook siklus hidup kontainer preStop dan postStart sesuai dengan pengaturan bidang scheme dan headers. Anda dapat mengonfigurasi header kustom dan mengaktifkan HTTPS dengan cara yang sama seperti probe. Jika HTTPS digunakan secara tidak sengaja, pesan kesalahan akan dikembalikan dan sistem beralih ke HTTP tanpa menyebabkan masalah kompatibilitas. Anda dapat menentukan --feature-gates=ConsistentHTTPGetHandlers=false pada kubelet untuk menonaktifkan fitur ini.

  • Di Kubernetes 1.26, API Prioritas dan Keberlanjutan (APF) dapat meminjam kursi dari level prioritas lainnya. Dua bidang ditambahkan ke .spec.limited. Bidang lendablePercent menentukan persentase kursi yang dapat dipinjam oleh level prioritas lain dari level saat ini. Bidang borrowingLimitPercent menentukan jumlah kursi yang dapat dipinjam dari level prioritas lain.

  • Di Kubernetes 1.26, Anda dapat mengatur --concurrent-horizontal-pod-autoscaler-syncs untuk komponen kube-controller-manager untuk menentukan jumlah pekerja yang digunakan oleh Horizontal Pod Autoscaler (HPA) controller.

  • Di Kubernetes 1.26, pemilih label diverifikasi untuk HPA. Saat beberapa HPA menunjuk ke koleksi pod atau Deployment yang sama, HPA tidak berlaku dan acara AmbiguousSelector dihasilkan.

  • Di Kubernetes 1.26, ketika beberapa StorageClasses ditentukan sebagai StorageClass default dengan menambahkan anotasi storageclass.kubernetes.io/is-default-class, sistem memilih StorageClass terbaru alih-alih melempar pengecualian.

Fitur yang Dihapus

  • Driver penyimpanan yang dihapus

    • Di Kubernetes 1.25, plugin penyimpanan in-tree dihapus untuk integrasi penyimpanan. SIG Storage merilis CSI migration untuk memigrasi plugin penyimpanan in-tree ke plugin Container Storage Interface (CSI) out-of-tree di versi Kubernetes sebelumnya. Di Kubernetes 1.25, core CSI migration mencapai fase GA.

    • Di Kubernetes 1.25, plugin penyimpanan GlusterFS dan Portworx in-tree dihapus, dan plugin penyimpanan in-tree Flocker, Quobyte, dan StorageOS dihapus. Driver penyimpanan in-tree vSphere tidak mendukung versi vSphere sebelum 7.0u2.

    • Di Kubernetes 1.26, driver penyimpanan in-tree GlusterFS dihapus dan integrasi penyimpanan in-tree OpenStack (Cinder volumes) yang sudah dihapus (OpenStack) dihapus.

  • Pembersihan kepemilikan rantai iptables

    Kubernetes biasanya membuat rantai iptables untuk memastikan paket dapat mencapai tujuan mereka. Rantai iptables dan nama-namanya adalah implementasi internal Kubernetes dan hanya cocok untuk penggunaan internal. Beberapa komponen bergantung pada rantai iptables tetapi rantai-rantai ini tidak dimaksudkan menjadi bagian dari komponen apa pun di Kubernetes. Untuk informasi lebih lanjut, lihat Rantai IPTables Kubernetes Bukan API.

    Di versi Kubernetes setelah 1.25, kubelet menggunakan gerbang fitur IPTablesCleanup untuk menyelesaikan migrasi secara bertahap. Ini membantu menghindari pembuatan rantai iptables, seperti KUBE-MARK-DROP, KUBE-MARK-MASQ, dan KUBE-POSTROUTING, di tabel NAT.

    Untuk informasi lebih lanjut tentang pembersihan kepemilikan rantai iptables, lihat Pembersihan Kepemilikan Rantai IPTables.

  • Hapus kode manajemen kredensial in-tree

    Di versi Kubernetes setelah 1.26, kode otentikasi identitas bersarang untuk Azure dan Google Cloud dihapus dari client-go dan kubectl. Hal ini dapat diganti dengan menggunakan plugin otentikasi. Untuk informasi lebih lanjut, lihat Plugin Otentikasi.

  • Hapus mode user-space dari kube-proxy

    • Di Kubernetes 1.26, mode userspace dihapus. Mode userspace yang sudah dihapus tidak lagi didukung oleh Linux atau Windows. Pengguna Linux dapat menggunakan iptables atau IPVS, dan pengguna Windows dapat menggunakan mode kernelspace. Kesalahan akan dikembalikan jika Anda menggunakan --mode userspace.

    • Windows winkernel kube-proxy tidak lagi mendukung API HNS v1 Windows.

  • kubectl mendelegasikan flag --prune-whitelist

    Di Kubernetes 1.26, flag --prune-whitelist didelegasikan dan digantikan oleh --prune-allowlist untuk mendukung Inclusive Naming Initiative. Flag yang didelegasikan akan dihapus di versi mendatang.

  • Hapus gerbang fitur DynamicKubeletConfig

    Gerbang fitur DynamicKubeletConfig dihapus. Konfigurasi kubelet node dapat diperbarui secara dinamis dengan memanggil API. Gerbang fitur dihapus dari kubelet di Kubernetes 1.24 dan dihapus dari server API di Kubernetes 1.26. Ini menyederhanakan kode dan meningkatkan stabilitas. Kami merekomendasikan Anda memodifikasi file konfigurasi kubelet dan kemudian memulai ulang kubelet. Untuk informasi lebih lanjut, lihat hapus gerbang fitur DynamicKubeletConfig dari kode.

  • Hapus argumen baris perintah

    • Di Kubernetes 1.25, kubeadm UnversionedKubeletConfigMap mencapai fase GA. Secara default, kube-system atau kubelet-config digunakan untuk menggantikan kube-system atau kubelet-config-x.yy.

    • Di Kubernetes 1.25, kubeadm tidak lagi menambahkan label node-role.kubernetes.io/master:NoSchedule ke node kontrol plane. Label tersebut dihapus saat menggunakan kubeadm upgrade apply.

    • Di Kubernetes 1.25, anotasi Seccomp seccomp.security.alpha.kubernetes.io/pod dan container.seccomp.security.alpha.kubernetes.io tidak lagi didukung. Kami merekomendasikan Anda menggunakan SeccompProfile. Untuk informasi lebih lanjut, lihat Batasi Syscalls Kontainer dengan seccomp.

    • Di Kubernetes 1.25 dan 1.26, beberapa argumen startup kube-controller-manager didelegasikan dan dihapus.

      • Argumen deleting-pods-qps, deleting-pods-burst, dan register-retry-count dihapus.

      • Argumen experimental-cluster-signing-duration dan pod-eviction-timeout didelegasikan dan digantikan oleh cluster-signing-duration.

      • Di Kubernetes 1.27, pod-eviction-timeout dan enable-taint-manager dihapus.

    • Di Kubernetes 1.26, beberapa argumen baris perintah terkait logging dihapus. Argumen-argumen ini didelegasikan di versi sebelumnya.

    • Di Kubernetes 1.26, flag --master-service-namespace didelegasikan. Flag ini tidak digunakan di server API.

    • Di Kubernetes 1.26, subperintah berikut yang tidak digunakan di kubectl run ditandai sebagai didelegasikan dan akan dihapus di versi mendatang: --cascade, --filename, --force, --grace-period, --kustomize, --recursive, --timeout, dan --wait.

API yang Dihapus

Di Kubernetes 1.25 dan 1.26, beberapa API didelegasikan. Untuk informasi lebih lanjut, lihat API yang Didelegasikan.

  • CronJob

    Di versi Kubernetes setelah 1.25, API batch/v1beta1 tidak dapat lagi digunakan untuk membuat CronJob. Anda dapat menggunakan API batch/v1, yang tersedia di Kubernetes 1.21 dan versi berikutnya.

  • EndpointSlice

    Di versi Kubernetes setelah 1.25, API discovery.k8s.io/v1beta1 tidak dapat lagi digunakan untuk membuat EndpointSlice. Anda dapat menggunakan API discovery.k8s.io/v1, yang tersedia di Kubernetes 1.21 dan versi berikutnya.

    Anda perlu memperhatikan perubahan berikut di discovery.k8s.io/v1:

    • Bidang NodeName dari endpoint digunakan untuk menggantikan bidang topology["kubernetes.io/hostname"] yang sudah didelegasikan.

    • Bidang Zone dari endpoint digunakan untuk menggantikan bidang topology["kubernetes.io/zone"] yang sudah didelegasikan.

    • Bidang Topology digantikan oleh bidang deprecatedTopology. Bidang ini tidak tersedia di API v1.

    Penting

    Setelah klaster diperbarui, periksa apakah pesan kesalahan muncul untuk menunjukkan bahwa pod CoreDNS failed to list *v1beta1.EndpointSlice. Jika ya, mulai ulang atau tingkatkan komponen CoreDNS. Untuk informasi lebih lanjut, lihat Mengapa CoreDNS menggunakan API yang sudah didelegasikan?.

  • Event

    Di Kubernetes 1.25, API events.k8s.io/v1beta1 tidak dapat lagi digunakan untuk membuat event. Anda dapat menggunakan API events.k8s.io/v1, yang tersedia di Kubernetes 1.19 dan versi berikutnya.

    Anda perlu memperhatikan perubahan berikut di events.k8s.io/v1:

    • Bidang type hanya dapat diatur ke Normal atau Warning.

    • Bidang involvedObject diubah namanya menjadi regarding.

    • Bidang action, reason, reportingController, dan reportingInstance diperlukan saat Anda membuat event events.k8s.io/v1.

    • Bidang eventTime digunakan untuk menggantikan bidang deprecated firstTimestamp. Bidang firstTimestamp diubah namanya menjadi deprecatedFirstTimestamp dan tidak diizinkan di event events.k8s.io/v1.

    • Bidang series.lastObservedTime digunakan untuk menggantikan bidang deprecated lastTimestamp. Bidang lastTimestamp diubah namanya menjadi deprecatedLastTimestamp dan tidak diizinkan di event events.k8s.io/v1.

    • Bidang series.count digunakan untuk menggantikan bidang deprecated count. Bidang count diubah namanya menjadi deprecatedCount dan tidak diizinkan di event events.k8s.io/v1.

    • Bidang reportingController digunakan untuk menggantikan bidang deprecated source.component. Bidang source.component diubah namanya menjadi deprecatedSource.component dan tidak diizinkan di event events.k8s.io/v1.

    • Bidang reportingInstance digunakan untuk menggantikan bidang deprecated source.host. Bidang source.host diubah namanya menjadi deprecatedSource.host dan tidak diizinkan di event events.k8s.io/v1.

  • PodDisruptionBudget

    Di versi Kubernetes setelah 1.25, API policy/v1beta1 tidak dapat lagi digunakan untuk membuat PodDisruptionBudget. Anda dapat menggunakan API policy/v1, yang tersedia di Kubernetes 1.21 dan versi berikutnya.

    Anda perlu memperhatikan perubahan berikut di policy/v1: Jika spec.selector di PodDisruptionBudgets policy/v1 dibiarkan kosong ({}), semua pod di namespace dipilih. Di PodDisruptionBudgets policy/v1beta1, jika spec.selector dibiarkan kosong, tidak ada pod yang dipilih. Jika Anda tidak menentukan spec.selector, tidak ada pod yang dipilih di kedua versi API.

  • PodSecurityPolicy

    Di versi Kubernetes setelah 1.25, API policy/v1beta1 tidak dapat lagi digunakan untuk membuat PodSecurityPolicy, dan pengontrol penerimaan PSP dihapus. Anda perlu bermigrasi dari PodSecurityPolicy ke Pod Security Admission atau webhook penerimaan pihak ketiga.

    Untuk informasi lebih lanjut tentang migrasi, lihat Migrate from PodSecurityPolicy to the Built-In PodSecurity Admission Controller. Untuk informasi lebih lanjut tentang degradasi, lihat PodSecurityPolicy Deprecation: Past, Present, and Future.

  • RuntimeClass

    Di versi Kubernetes setelah 1.25, API node.k8s.io/v1beta1 tidak dapat lagi digunakan untuk membuat RuntimeClass. Anda dapat menggunakan API node.k8s.io/v1, yang tersedia di Kubernetes 1.20dan versi berikutnya.

  • HorizontalPodAutoscaler

    • Di versi Kubernetes setelah 1.25, API autoscaling/v2beta1 tidak dapat lagi digunakan untuk membuat Horizontal Pod Autoscaler (HPA).

    • Di versi Kubernetes setelah 1.26, API autoscaling/v2beta2 tidak dapat lagi digunakan untuk membuat HPA. Anda dapat menggunakan API autoscaling/v2, yang tersedia di Kubernetes 1.23 dan versi berikutnya.

  • Sumber daya kontrol aliran

    Di versi Kubernetes setelah 1.26, API flowcontrol.apiserver.k8s.io/v1beta1 tidak dapat lagi digunakan untuk membuat FlowSchema atau PriorityLevelConfiguration. API dapat menggunakan flowcontrol.apiserver.k8s.io/v1beta2 di Kubernetes 1.23 dan versi berikutnya. API dapat menggunakan flowcontrol.apiserver.k8s.io/v1beta3 di Kubernetes 1.26 dan versi berikutnya.

Gerbang fitur

Gerbang fitur memiliki tiga fase. Di fase Alpha, gerbang fitur dinonaktifkan secara default. Di fase Beta, gerbang fitur diaktifkan secara default. Di fase GA, gerbang fitur diaktifkan secara default dan tidak dapat dinonaktifkan. Saklar yang digunakan untuk mengaktifkan dan menonaktifkan gerbang fitur akan dihapus di versi mendatang. Untuk informasi lebih lanjut, lihat Gerbang Fitur.

  • Di Kubernetes 1.25, SeccompDefault mencapai fase Beta. Untuk informasi lebih lanjut tentang cara menggunakan SeccompDefault, lihat Batasi Syscalls Kontainer dengan seccomp.

  • Di Kubernetes 1.25, CustomResourceDefinition (CRD) Validation Expression Language mencapai fase Beta dan CustomResourceValidationExpressions diaktifkan secara default. Lebih efisien menggunakan Common Expression Language (CEL) untuk memvalidasi CRD daripada menggunakan webhook. Untuk informasi lebih lanjut, lihat Aturan validasi.

  • Di Kubernetes 1.25, gerbang fitur ServerSideFieldValidation mencapai fase Beta dan diaktifkan secara default. Server API dapat memvalidasi bidang yang tidak dikenal. Oleh karena itu, fitur validasi bidang akan dihapus dari kubectl di versi mendatang. Untuk informasi lebih lanjut, lihat Validasi bidang yang tidak dikenal yang didukung oleh server API.

  • Di Kubernetes 1.25, fitur alpha ContainerCheckpoint ditambahkan dan API Kubelet Checkpoint diaktifkan. Untuk informasi lebih lanjut, lihat Kubelet Checkpoint API.

  • Di Kubernetes 1.25, fitur alpha PodHasNetworkCondition ditambahkan. Fitur ini memungkinkan kubelet menambahkan kondisi PodHasNetwork ke pod. Untuk informasi lebih lanjut, lihat PodHasNetwork.

  • Di Kubernetes 1.25, fitur alpha UserNamespacesStatelessPodsSupport ditambahkan untuk mengaktifkan namespace pengguna untuk pod stateless.

  • Di Kubernetes 1.25, fitur alpha JobPodFailurePolicy ditambahkan. Fitur ini memungkinkan Job menangani gangguan pod berdasarkan kode keluar dan status pod. Fitur ini mencapai fase Beta di Kubernetes 1.26.

  • Di Kubernetes 1.25, fitur alpha MultiCIDRRangeAllocator ditambahkan untuk memungkinkan NodeIPAM mendukung beberapa ClusterCIDRs. --cidr-allocator-type=MultiCIDRRangeAllocator dikonfigurasikan untuk kube-controller-manager untuk memungkinkan pengontrol mendukung beberapa ClusterCIDRs.

  • Di Kubernetes 1.25, fitur StatefulSetMinReadySeconds mencapai fase GA. Fitur ini mendukung bidang minReadySeconds secara default dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.25, fitur CronJobTimeZone mencapai fase GA. Fitur ini diaktifkan secara default untuk mendukung bidang TimeZone dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.25, fitur DaemonSetUpdateSurge mencapai fase GA. Fitur ini diaktifkan secara default untuk mendukung bidang DaemonSet MaxSurge dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.25, fitur IdentifyPodOS mencapai fase GA. Fitur ini diaktifkan secara default untuk mendukung bidang spec.podOS dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.25, fitur CSIInlineVolume mencapai fase GA. Fitur ini diaktifkan secara default untuk mendukung volume CSI inline dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.25, fitur EphemeralContainers mencapai fase GA. Fitur ini diaktifkan secara default untuk mendukung kontainer sementara dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.25, fitur CSINodeExpandSecret ditambahkan. Fitur ini memungkinkan Anda mengirimkan data otentikasi yang disimpan dalam Secrets ke driver CSI saat menambahkan node.

  • Di Kubernetes 1.25, fitur CSIMigration mencapai fase GA. Fitur ini diaktifkan secara default dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.25, fitur CSIMigrationPortworx mencapai fase Beta.

  • Di Kubernetes 1.25, fitur ProbeTerminationGracePeriod masih berada di fase Beta tetapi nilai default berubah menjadi True. Untuk informasi lebih lanjut, lihat Probe-level terminationGracePeriodSeconds.

  • Di Kubernetes 1.26, fitur JobTrackingWithFinalizers mencapai fase GA. Fitur ini diaktifkan secara default untuk melacak kemajuan Job dengan melacak pod Job alih-alih menghitung pod yang tersisa. Untuk informasi lebih lanjut, lihat Pelacakan Job dengan finalizer.

  • Di Kubernetes 1.26, fitur alpha PDBUnhealthyPodEvictionPolicy ditambahkan untuk memungkinkan Anda mengonfigurasi kebijakan pengusiran pod tidak sehat untuk PodDisruptionBudget.

  • Di Kubernetes 1.26, API alokasi sumber daya dinamis didukung. Anda dapat mengelola dan menggunakan sumber daya dengan parameter kustom dan siklus hidup pod independen.

  • Di Kubernetes 1.26, fitur alpha StatefulSetStartOrdinal ditambahkan untuk memungkinkan Anda mengonfigurasi ordinal awal StatefulSet.

  • Di Kubernetes 1.26, fitur ServiceInternalTrafficPolicy mencapai fase GA. Fitur ini memungkinkan Anda menggunakan bidang internalTrafficPolicy untuk menentukan kebijakan lalu lintas internal untuk Layanan. Fitur ini diaktifkan secara default dan tidak dapat dinonaktifkan. Untuk informasi lebih lanjut, lihat Kebijakan Lalu Lintas Internal Layanan.

  • Di Kubernetes 1.26, fitur alpha ValidatingAdmissionPolicy ditambahkan. Ekspresi CEL dapat digunakan untuk mengimplementasikan pengontrol penerimaan yang dapat diperluas.

  • Di Kubernetes 1.26, fitur MixedProtocolLBService mencapai fase GA. Fitur ini memungkinkan penggunaan protokol berbeda pada Layanan LoadBalancer yang sama.

  • Di Kubernetes 1.26, fitur EndpointSliceTerminatingCondition mencapai fase GA. Fitur ini diaktifkan untuk mendukung bidang kondisi Terminating dan Serving dari EndpointSlice dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.26, fitur APIServerIdentity mencapai fase Beta. Secara default, fitur ini diaktifkan di kube-system untuk membuat lease untuk setiap server API aktif.

  • Di Kubernetes 1.26, fitur DelegateFSGroupToCSIDriver mencapai fase GA dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.26, fitur NodeOutOfServiceVolumeDetach mencapai fase Beta dan diaktifkan secara default. Setelah Anda menambahkan tanda node.kubernetes.io/out-of-service untuk menandai node sebagai tidak berfungsi, pod yang tidak mentoleransi tanda tersebut dihapus secara paksa. Operasi pelepasan volume dilakukan untuk pod yang dihentikan di node tersebut.

  • Di Kubernetes 1.26, fitur ServiceIPStaticSubrange mencapai fase GA. Fitur ini mengaktifkan kebijakan alokasi IP Kluster Layanan untuk membagi rentang IP Kluster.

  • Di Kubernetes 1.26, fitur CPUManager dan DevicePlugins mencapai fase GA. Fitur-fitur ini diaktifkan secara default dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.26, fitur alpha ComponentSLIs ditambahkan untuk mengaktifkan titik akhir /metrics/slis pada komponen Kubernetes berikut untuk mengumpulkan metrik pengecekan kesehatan: kubelet, kube-scheduler, kube-proxy, kube-controller-manager, dan cloud-controller-manager.

  • Di Kubernetes 1.26, fitur WindowsHostProcessContainers mencapai fase GA. Fitur ini diaktifkan secara default untuk mendukung kontainer HostProcess Windows.

  • Di Kubernetes 1.26, fitur ExpandedDNSConfig mencapai fase Beta. Fitur ini memungkinkan lebih banyak jalur pencarian DNS dan daftar jalur pencarian DNS yang lebih panjang. Fitur ini memerlukan dukungan runtime kontainer.

  • Di Kubernetes 1.26, fitur LegacyServiceAccountTokenNoAutoGeneration mencapai fase GA. Fitur ini menonaktifkan pembuatan otomatis token ServiceAccount berdasarkan Secrets. Fitur ini diaktifkan secara default dan tidak dapat dinonaktifkan.

  • Di Kubernetes 1.26, fitur ProxyTerminatingEndpoints mencapai fase Beta. Fitur ini diaktifkan secara default untuk memungkinkan kube-proxy menangani endpoint yang sedang terminasi ketika ExternalTrafficPolicy=Local.

  • Di Kubernetes 1.26, fitur alpha LegacyServiceAccountTokenTracking ditambahkan. Secara default, fitur ini dinonaktifkan. Fitur ini menambahkan label kubernetes.io/legacy-token-last-used ke token ServiceAccount yang dibuat berdasarkan Secrets untuk menunjukkan tanggal kedaluwarsa token.

  • Di Kubernetes 1.26, fitur PodDisruptionConditions mencapai fase Beta dan diaktifkan secara default. Anda dapat menambahkan kondisi DisruptionTarget ke pod untuk menunjukkan bahwa pod akan dihapus karena gangguan, dan memeriksa alasan penghentian pod di bidang reason. Untuk informasi lebih lanjut, lihat Kondisi Gangguan Pod.

Peningkatan pada Kubernetes 1.26

Peningkatan Keamanan

ACK telah membatasi lebih lanjut akses ke file-file Kubernetes berikut pada node klaster.

Jalur File

Izin Akses

/etc/kubernetes/admin.conf

600

/etc/kubernetes/kube.conf

600

/etc/kubernetes/controller-manager.conf

600

/etc/kubernetes/kubelet.conf

600

/etc/kubernetes/scheduler.conf

600

/etc/kubernetes/manifests/*.yaml

600

/etc/kubernetes/pki/*.key

600

/etc/kubernetes/pki/*.crt

600

/etc/kubernetes/pki/dashboard/*.crt

600

/etc/kubernetes/pki/etcd/*.pem

600

/var/lib/etcd/cert/*.pem

600

/var/lib/etcd/cert/*.csr

600

/var/lib/kubelet/pki/*.crt

600

/var/lib/kubelet/config.yaml

600

/usr/lib/systemd/system/etcd.service

600

/etc/systemd/system/kubelet.service

600

/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

600

Referensi