Alibaba Cloud Container Service for Kubernetes telah disertifikasi sesuai dengan rilis komunitas. Topik ini menjelaskan perubahan utama dalam rilis ACK Kubernetes 1.34, termasuk pertimbangan upgrade, perubahan utama, fitur baru, fitur dan API yang ditinggalkan, serta feature gate.
Panduan versi komponen
Tabel berikut mencantumkan versi komponen inti dalam kluster ACK.
Core component | Nomor versi |
Kubernetes | 1.34.1-aliyun.1, 1.34.3-aliyun.1 |
etcd | v3.5.21 |
containerd | 2.1.3 |
CoreDNS | v1.11.3.5-5321daf49-aliyun |
CSI | |
CNI | Flannel v0.15.1.23-33d25c1-aliyun |
Terway dan TerwayControlplane adalah v1.15.0 atau lebih baru |
Perubahan utama
Mulai versi 1.34, jika Anda tidak menentukan citra OS saat membuat kelompok node baru, versi container-optimized dari Alibaba Cloud Linux 3 akan digunakan secara default.
Mulai versi 1.34, untuk kluster baru yang menggunakan plugin jaringan Terway dengan DataPath V2 diaktifkan, kontainer kube-proxy tidak lagi berjalan pada node yang menggunakan Terway. DataPath V2 menggunakan eBPF untuk mempercepat akses jaringan dalam mode ENI bersama.
Perubahan ini hanya berlaku untuk kluster baru.
Mulai versi 1.34, parameter
serverTLSBootstrapdan feature gateRotateKubeletServerCertificatediaktifkan secara default saat Anda membuat kelompok node reguler dan terkelola di kluster ACK Pro.Dengan konfigurasi ini diaktifkan, sertifikat sisi server kubelet pada setiap node dalam kelompok node akan berotasi secara otomatis. Konfigurasi ini juga memungkinkan CA kluster untuk memvalidasi sertifikat sisi server kubelet, sehingga meningkatkan keamanan node kluster.
Mulai versi 1.34, sisi server kubelet tidak lagi mendukung paket sandi TLS
TLS_RSA_WITH_AES_256_GCM_SHA384danTLS_RSA_WITH_AES_128_GCM_SHA256. Setelah Anda melakukan upgrade kluster yang ada ke versi 1.34, node baru akan menerapkan perubahan ini secara otomatis.Mulai versi 1.34, menandai sebuah node sebagai
unschedulableselama pendaftaran tidak lagi didukung. Akibatnya, konfigurasi kelompok node untuk menjadikan node unschedulable tidak lagi berlaku. Untuk informasi lebih lanjut, lihat kubelet: remove --register-schedulable flag #122384.Anda dapat menggunakan taints node sebagai alternatif untuk mencegah penjadwalan Pod pada node yang baru terdaftar. Saat mengonfigurasi taints, jangan gunakan
node.kubernetes.io/unschedulablesebagai kunci.
Perubahan fitur
Fitur inti Dynamic Resource Allocation (DRA) telah naik ke General Availability (GA) dan diaktifkan secara default. Dengan DRA, beban kerja dapat meminta resource dengan menentukan properti perangkat yang dibutuhkan. Penjadwal menangani alokasi perangkat dan menempatkan Pod pada node yang dapat mengakses perangkat yang dialokasikan. Selanjutnya, driver perangkat dan kubelet mengonfigurasi perangkat tersebut dan memberikan akses kepada Pod.
Fitur terkait DRA lainnya telah naik ke Beta dan diaktifkan secara default. Fitur-fitur tersebut mencakup dukungan bagi administrator untuk mengakses perangkat yang sedang digunakan dengan izin terbatas untuk pemantauan dan diagnostik. Fitur ini juga mendukung konfigurasi daftar opsional rencana alokasi perangkat yang sesuai pada saat permintaan. Selain itu, Kubelet kini memantau dan melaporkan resource DRA yang dialokasikan ke Pod pada suatu node.
Kubelet mendukung penggunaan kredensial jangka pendek untuk otentikasi ke repositori gambar kontainer. Hal ini menghindari risiko potensial penggunaan kredensial jangka panjang dan meningkatkan keamanan. Untuk informasi lebih lanjut, lihat Service Account Token Integration for Image Pulls Graduates to Beta.
Kebijakan penggantian Pod untuk Jobs telah naik ke GA, yang mengoptimalkan pembuatan Pod pengganti. Secara default, Pod pengganti dibuat segera setelah Pod lama mulai dihentikan, yang dapat menyebabkan konflik sumber daya. Dengan mengonfigurasi bidang
.spec.podReplacementPolicy, Anda dapat menunda pembuatan Pod pengganti hingga Pod lama sepenuhnya dihentikan. Hal ini membantu menghindari konflik sumber daya dan skala keluar node yang tidak perlu.RecoverVolumeExpansionFailuretelah naik ke GA. Jika ekspansi volume gagal karena kapasitas yang diminta dalam PVC terlalu besar, fitur ini memungkinkan Anda memulihkannya dengan mengurangi permintaan kapasitas dalam PVC tersebut.Volume Attributes Classes telah naik ke GA dan diaktifkan secara default. Fitur ini memungkinkan Anda mendefinisikan parameter volume umum dalam objek
VolumeAttributesClass. PVC kemudian dapat mereferensikan objek ini untuk menerapkan parameter tersebut.Jika objek API yang direferensikan oleh Pod statis, seperti Secret, ConfigMap, PVC, atau ServiceAccount, tidak tersedia, kubelet tidak akan menjalankan kontainer-kontainernya. Hal ini mencegah Pod dijalankan tanpa dependensi yang diperlukan dan memasuki kondisi tidak stabil.
Stabilitas dan performa kube-apiserver telah dioptimalkan sebagai berikut:
Permintaan baca kini dilayani dari cache. Hal ini mengurangi permintaan transmisi langsung ke etcd dan menurunkan tekanan memori pada kube-apiserver. Versi 1.31 memperkenalkan dukungan untuk Consistent Reads from Cache, dan versi 1.34 menambahkan dukungan untuk Snapshottable API server cache untuk data historis.
Untuk permintaan
LIST, data dapat dikembalikan sebagai aliran. Hal ini memungkinkan sisi server menggunakan jumlah memori yang konstan dan kecil saat memproses permintaan serta mencegah lonjakan memori di sisi server yang disebabkan oleh klien yang menarik data dalam jumlah besar. Untuk informasi lebih lanjut, lihat Streaming Encoding for LIST Responses.
Versi 1.34.3-aliyun.1 menyelesaikan masalah di mana Pod yang meminta resource menggunakan DRA terjebak dalam status
Terminatingsaat dihapus. Untuk informasi lebih lanjut, lihat #133920.
Fitur
PodLevelResources telah naik ke Beta. Berbeda dengan definisi resource tingkat kontainer tradisional, fitur ini memungkinkan Anda menetapkan total permintaan dan batas resource pada tingkat Pod. Hal ini memastikan bahwa konsumsi resource semua kontainer dalam satu Pod tidak melebihi batas Pod tersebut. Untuk informasi lebih lanjut, lihat Pod Level Resource Specifications.
Fitur ini tidak didukung pada Node Windows.
Secara default, kubectl mendukung pendefinisian preferensi pengguna dalam file
.kuberc. Berbeda dengan filekubeconfigyang berisi kredensial otentikasi, file ini khusus digunakan untuk menyimpan konfigurasi klien yang tidak sensitif. Untuk informasi lebih lanjut, lihat Introduce kuberc.ExternalServiceAccountTokenSignertelah naik ke Beta. Fitur ini memperkenalkan layanan gRPCExternalJWTSigner, yang menggunakan solusi manajemen kunci eksternal untuk menandatangani token ServiceAccount, bukan metode penandatanganan kunci statis lokal.SchedulerAsyncAPICallstelah naik ke Beta dan secara default mengaktifkan panggilan API asinkron di kube-scheduler.Fitur ini menyelesaikan bottleneck performa di kube-scheduler yang disebabkan oleh panggilan API blocking selama siklus penjadwalan. Dengan menangani panggilan tersebut secara asinkron, fitur ini mengurangi latensi penjadwalan, mencegah thread penjadwal diblokir oleh respons API yang lambat, serta memberikan peluang retry lebih cepat untuk Pod yang tidak dapat dijadwalkan. Untuk informasi lebih lanjut, lihat Asynchronous API calls during scheduling.
WindowsGracefulNodeShutdowntelah naik ke Beta dan mendukung graceful shutdown node untuk Node Windows.PreferSameTrafficDistribution telah naik ke Beta. Fitur ini memungkinkan Anda memprioritaskan routing traffic ke titik akhir dalam zona yang sama atau pada node yang sama dengan mengatur bidang
.spec.trafficDistributiondari Service menjadiPreferSameZoneatauPreferSameNode. OpsiPreferClosesebelumnya kini ditinggalkan. Untuk informasi lebih lanjut, lihat Traffic Distribution.Fitur kubeletPSI telah naik ke Beta. Fitur ini memungkinkan kubelet mengekspos metrik Pressure Stall Information (PSI) melalui Summary API dan Prometheus. Untuk informasi lebih lanjut, lihat PSI Metrics for Kubernetes Graduates to Beta.
Kebijakan statis CPU manager kini mendukung opsi
prefer-align-cpus-by-uncorecache. Opsi ini mengoptimalkan performa beban kerja yang berjalan pada prosesor dengan arsitektur uncore cache terpisah. Untuk informasi lebih lanjut, lihat Introducing CPU Manager Static Policy Option for Uncore Cache Alignment.
Tautan referensi
Untuk changelog lengkap Kubernetes 1.34, lihat CHANGELOG-1.34 dan Kubernetes v1.34: Of Wind & Will (O' WaW).