日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

ACK發(fā)布Kubernetes 1.26版本說明

更新時(shí)間:

阿里云容器服務(wù)Kubernetes版(ACK)嚴(yán)格遵循社區(qū)一致性認(rèn)證。本文介紹ACK發(fā)布Kubernetes 1.26版本所做的變更說明。

索引

版本升級(jí)說明

ACK針對(duì)Kubernetes 1.26版本提供組件的升級(jí)和優(yōu)化。

核心組件

版本號(hào)

升級(jí)注意事項(xiàng)

Kubernetes

1.26.15-aliyun.1、1.26.3-aliyun.1

  • Kubernetes 1.26版本做了大量?jī)?yōu)化,升級(jí)前請(qǐng)仔細(xì)閱讀版本解讀

  • Kubernetes 1.25和Kubernetes 1.26版本棄用了大量Beta版本的API,在使用新版本集群之前,需要先檢查與Beta版本API交互的控制器或應(yīng)用是否已經(jīng)改造升級(jí)成使用推薦版本API。關(guān)于廢棄API信息,請(qǐng)參見廢棄的API信息

  • Kubernetes 1.26版本,將不支持CRI v1alpha2,且容器運(yùn)行時(shí)必須支持CRI v1,因此Kubernetes 1.26最低要求使用Containerd 1.6。升級(jí)集群時(shí),需先將Containerd升級(jí)到1.6.0及以上版本后,才能將節(jié)點(diǎn)升級(jí)到Kubernetes 1.26。

  • Kubernetes在1.21版本中棄用PodSecurityPolicy,在Kubernetes 1.25版本中徹底移除。PodSecurityPolicy使用方式復(fù)雜,容易授權(quán)比預(yù)期更大的權(quán)限,存在嚴(yán)重的可用性問題。請(qǐng)參見版本解讀使用新的方案代替PodSecurityPolicy。

  • 1.26及以上版本的ACK集群不再默認(rèn)開放kubelet容器監(jiān)控只讀端口(10255),統(tǒng)一使用鑒權(quán)安全端口(10250)。更多信息,請(qǐng)參見【產(chǎn)品變更】遷移低版本ACK集群監(jiān)控端口至鑒權(quán)端口

etcd

v3.5.4

CoreDNS

1.9.3.10-7dfca203-aliyun

CRI

Containerd 1.6.20

僅支持Kubernetes 1.24.0及以上版本。

CSI

升級(jí)至組件當(dāng)前支持的最新版本。詳細(xì)信息,請(qǐng)參見組件變更記錄csi-plugincsi-provisioner

CNI

Flannel v0.15.1.22-20a397e6-aliyun

Terway & TerwayControlplanev1.5.0 +

NVIDIA Container Runtime

v3.13.0

僅Kubernetes 1.26支持v3.13.0,其余版本仍然使用v3.7.0。

Ingress Controller

v1.6.4-aliyun.1

版本解讀

重大變化

  • Kubernetes 1.25和Kubernetes 1.26版本棄用了大量測(cè)試版本的API,在使用新版本集群之前,需要先檢查與測(cè)試版本API交互的控制器或應(yīng)用是否已經(jīng)改造升級(jí)成使用正式版本API的控制器或應(yīng)用。更多信息,請(qǐng)參見廢棄的API信息

  • Kubernetes 1.26版本將不支持CRI v1alpha2,且要求容器運(yùn)行時(shí)必須支持CRI v1,因此Kubernetes 1.26不支持Containerd 1.5及更早的版本,最低要求使用Containerd 1.6。升級(jí)集群時(shí),需先將Containerd升級(jí)到1.6.0及以上版本后,才能將節(jié)點(diǎn)升級(jí)到Kubernetes 1.26。

  • Kubernetes 1.21版本棄用了PodSecurityPolicy,在Kubernetes 1.25版本中徹底移除,是因?yàn)镻odSecurityPolicy使用方式復(fù)雜,容易授權(quán)比預(yù)期更大的權(quán)限,存在嚴(yán)重的可用性問題。詳細(xì)信息,請(qǐng)參見 PodSecurityPolicy 歷史背景

    對(duì)于已經(jīng)在使用PodSecurityPolicy功能的集群,請(qǐng)使用以下任意一種方式執(zhí)行限制后,再將集群升級(jí)到更高版本。

  • 在1.26.15-aliyun.1版本中修復(fù)了以下CVE漏洞:

    • CVE-2023-45288

    • CVE-2024-3177

    • CVE-2024-24786

新增功能

  • 臨時(shí)容器在Kubernetes 1.23中為測(cè)試版本,在Kubernetes 1.25版本成為Stable版本。當(dāng)需要檢查一個(gè)已經(jīng)崩潰或者缺乏調(diào)試工具不能使用kubectl exec的容器時(shí),支持在現(xiàn)有Pod中運(yùn)行臨時(shí)容器來檢查其狀態(tài)并運(yùn)行任意命令。更多信息,請(qǐng)參見臨時(shí)容器

  • 在Kubernetes 1.25版本,Kubernetes對(duì)cgroups v2的支持進(jìn)入Stable階段,cgroups v2相較于cgroups v1做出了諸多改進(jìn)。更多信息,請(qǐng)參見 cgroups v2文檔

  • 在Kubernetes 1.25版本,繼續(xù)優(yōu)化Kubernetes對(duì)Windows系統(tǒng)的支持,例如,支持單元測(cè)試一致性測(cè)試為Windows Operational Readiness創(chuàng)建新的倉庫

  • 在Kubernetes 1.25版本,容器鏡像倉庫k8s.gcr.io遷移到registry.k8s.io,流量也將重定向到registry.k8s.io。更多信息,請(qǐng)參見k8s.gcr.io Redirect to registry.k8s.io

  • 在Kubernetes 1.25版本,網(wǎng)絡(luò)策略中的EndPort字段處于GA階段。如果網(wǎng)絡(luò)策略提供程序支持EndPort字段,可以在編寫NetworkPolicy時(shí)使用該字段指定一個(gè)端口范圍;如果網(wǎng)絡(luò)策略提供程序不支持EndPort,則只會(huì)創(chuàng)建出單端口的網(wǎng)絡(luò)策略。更多信息,請(qǐng)參見網(wǎng)絡(luò)策略

  • 在Kubernetes 1.25版本,本地臨時(shí)容器存儲(chǔ)容量隔離迎來GA(正式發(fā)布)版本, 它提供了對(duì)Pod之間本地臨時(shí)存儲(chǔ)容量隔離的支持,例如EmptyDir, 因此,如果一個(gè)Pod對(duì)本地臨時(shí)存儲(chǔ)容量的消耗超過該限制,就可以通過驅(qū)逐Pod來硬性限制其對(duì)共享資源的消耗。更多信息,請(qǐng)參見本地臨時(shí)容器存儲(chǔ)容量隔離

  • 在Kubernetes 1.25版本,CSI臨時(shí)數(shù)據(jù)卷升級(jí)為穩(wěn)定版本,在臨時(shí)使用的情況下,CSI臨時(shí)數(shù)據(jù)卷不允許通過PV/PVC在Pod里直接指定CSI數(shù)據(jù)卷。更多信息,請(qǐng)參見CSI臨時(shí)數(shù)據(jù)卷

  • 在Kubernetes 1.25版本,引入KMS v2 alpha1 API以提升性能,實(shí)現(xiàn)輪替與可觀察性改進(jìn)。 此API使用AES-GCM替代了AES-CBC,通過DEK實(shí)現(xiàn)靜態(tài)數(shù)據(jù)加密(Kubernetes Secrets),此過程中無需您額外操作,且支持通過AES-GCM和AES-CBC進(jìn)行讀取。 更多信息,請(qǐng)參考使用 KMS provider進(jìn)行數(shù)據(jù)加密指南

  • 在Kubernetes 1.25版本,Kubernetes對(duì)使用對(duì)象存儲(chǔ)制定了一個(gè)新的標(biāo)準(zhǔn)接口,即容器對(duì)象存儲(chǔ)接口(COSI),旨在標(biāo)準(zhǔn)化對(duì)象存儲(chǔ)的使用,目前尚處于alpha(內(nèi)測(cè))階段。

  • 在Kubernetes 1.25版本,如果在Pod的status字段中將PodHasNetwork狀態(tài)設(shè)置為True,表示Pod運(yùn)行時(shí)沙箱被成功初始化創(chuàng)建,并已配置了網(wǎng)絡(luò)。因?yàn)镻odHasNetwork設(shè)置為True后Kubelet才開始拉取鏡像啟動(dòng)容器,所以這個(gè)字段可以用于反應(yīng)Pod初始化延遲的指標(biāo)(不包含拉取鏡像快慢和應(yīng)用負(fù)載等特征),利用PodHasNetwork可以準(zhǔn)確生成服務(wù)水平指標(biāo)(SLI)。由于PodHasNetwork尚處于內(nèi)測(cè)階段,如需使用需要在Kubelet上啟動(dòng)PodHasNetworkCondition特性門控。更多信息,請(qǐng)參見關(guān)于PodHasNetwork和Initialized區(qū)別

  • 在Kubernetes 1.25版本,StatefulSet的minReadySeconds進(jìn)入穩(wěn)定階段,允許每個(gè)Pod等待一段預(yù)期時(shí)間來減緩StatefulSet的滾動(dòng)上線。更多信息,請(qǐng)參見minReadySeconds

  • 在Kubernetes 1.25版本中,DaemonSet的maxSurge進(jìn)入穩(wěn)定階段,允許DaemonSet工作負(fù)載在滾動(dòng)上線期間在一個(gè)節(jié)點(diǎn)上運(yùn)行同一 Pod的多個(gè)實(shí)例,有助于將DaemonSet的停機(jī)時(shí)間降到最低。DaemonSet不允許maxSurge和hostPort同時(shí)使用,因?yàn)閮蓚€(gè)活躍的Pod無法共享同一節(jié)點(diǎn)的相同端口。更多信息,請(qǐng)參見DaemonSet工作負(fù)載滾動(dòng)上線

  • 在Kubernetes 1.25版本, 對(duì)使用user namespace運(yùn)行Pod提供alpha支持,將Pod內(nèi)的root用戶映射到容器外的非零ID,使得從容器角度看是root身份運(yùn)行,而從主機(jī)角度看是常規(guī)的非特權(quán)用戶。目前尚處于內(nèi)測(cè)階段,需要開啟特性門控UserNamespacesStatelessPodsSupport, 且要求容器運(yùn)行時(shí)必須能夠支持此功能。更多信息,請(qǐng)參見對(duì)使用user namespace運(yùn)行Pod提供alpha支持

  • 在Kubernetes 1.25版本,新增一個(gè)特性門控RetroactiveDefaultStorageClass更改默認(rèn)StorageClass被分配到PersistentVolumeClaim的方式。原本需要先創(chuàng)建StorageClass再創(chuàng)建PVC才會(huì)分配默認(rèn)StorageClass,否則PVC的StorageClass會(huì)一直為nil,啟用此特性后,未分配StorageClass的PVC不需要?jiǎng)h除重建就可以自動(dòng)更新分配默認(rèn)的StorageClass。該特性在1.26進(jìn)入Beta階段,默認(rèn)開啟此功能。

  • 在Kubernetes 1.25版本,新增了JobPodFailurePolicy特性,允許配置Job根據(jù)容器退出碼和Pod狀況來指定Pod失效的處理方法,該特性在1.26進(jìn)入Beta階段。在Job定義podFailurePolicy字段配置Pod失效策略,為了避免不必要的Pod重試和忽略Pod驅(qū)逐。更多信息,請(qǐng)參見Pod失效策略

  • 在Kubernetes 1.25版本,修復(fù)PodTopologySpread功能在滾動(dòng)更新期間出現(xiàn)Pod分布不均,不符合約束的情況。minDomains字段處于Beta版本。

  • 在Kubernetes 1.25版本,kube-proxy對(duì)于規(guī)模較大的集群提升了性能。例如集群有1000個(gè)Endpoints,不使用的Iptables規(guī)則會(huì)保留一段時(shí)間,保留的最長(zhǎng)時(shí)間為Iptables規(guī)則的最大同步周期,因此不必每次同步都掃描舊的規(guī)則。對(duì)于較小規(guī)模的集群,不使用的Iptables規(guī)則仍然會(huì)立即刪除。

  • 在Kubernetes 1.26版本,新增動(dòng)態(tài)資源分配功能,用于Pod之間和Pod內(nèi)部容器之間請(qǐng)求和共享資源,支持用戶提供參數(shù)初始化資源。該功能尚處于alpha階段,需要啟用DynamicResourceAllocation特性門控和resource.k8s.io/v1alpha1 API組,需要為要管理的特定資源安裝驅(qū)動(dòng)程序。更多信息,請(qǐng)參見Alpha API For Dynamic Resource Allocation

  • 在Kubernetes 1.26版本,節(jié)點(diǎn)非體面關(guān)閉進(jìn)入Beta階段。當(dāng)節(jié)點(diǎn)故障時(shí),故障節(jié)點(diǎn)上的Pod會(huì)一直處于Terminating(停止)狀態(tài),也無法刪除VolumeAttachments。如果是StatefulSet類型的Pod,因?yàn)镻od不允許同名,所以也不會(huì)在新節(jié)點(diǎn)上啟動(dòng)Pod。相比Kubelet檢測(cè)節(jié)點(diǎn)關(guān)閉事件對(duì)節(jié)點(diǎn)體面關(guān)閉,節(jié)點(diǎn)非體面關(guān)閉要求手動(dòng)給Node添加out-of-service污點(diǎn)觸發(fā),將Pod移動(dòng)到新的運(yùn)行節(jié)點(diǎn),待節(jié)點(diǎn)恢復(fù)后還須手動(dòng)移除污點(diǎn)。

  • 在Kubernetes 1.26版本,支持在掛載時(shí)將Pod fsGroup傳遞給CSI驅(qū)動(dòng)程序,取代Kubelet去更改卷中文件和目錄的權(quán)限,此功能對(duì)用戶基本透明,如果您是CSI驅(qū)動(dòng)程序開發(fā)者,請(qǐng)參見CSI 驅(qū)動(dòng)程序 fsGroup 支持

  • 在Kubernetes 1.26版本,新增Pod調(diào)度門控功能,負(fù)責(zé)通知調(diào)度器何時(shí)可以開始調(diào)度Pod。當(dāng)大量Pod因?yàn)橥獠渴录枞麑?dǎo)致長(zhǎng)時(shí)間無法被調(diào)度的時(shí)候,會(huì)影響調(diào)度器的性能,調(diào)度門控允許聲明新創(chuàng)建的Pod尚未準(zhǔn)備好進(jìn)行調(diào)度來解決這個(gè)問題。當(dāng)Pod設(shè)置spec.schedulingGates時(shí),調(diào)取程序會(huì)忽略該P(yáng)od,避免進(jìn)行不必要的調(diào)度嘗試。此功能需要一個(gè)外部的控制器負(fù)責(zé)確定Pod何時(shí)可以調(diào)度并清理門控。更多信息,請(qǐng)參見Pod調(diào)度門控

  • 在Kubernetes 1.26版本,CPU Manager達(dá)到GA狀態(tài),此功能早在Kubernetes v1.10就已經(jīng)是Beta階段,它屬于Kubelet的一部分,負(fù)責(zé)實(shí)現(xiàn)給容器分配獨(dú)占CPU。CPU Manager支持三個(gè)不同的策略選項(xiàng)。更多信息,請(qǐng)參見控制節(jié)點(diǎn)上的 CPU 管理策略

  • 在Kubernetes 1.26版本,對(duì)跨名字空間存儲(chǔ)數(shù)據(jù)源的Alpha提供支持,允許在源數(shù)據(jù)屬于不同的名字空間時(shí),為PersistentVolumeClaim指定數(shù)據(jù)源。更多信息,請(qǐng)參見跨名字空間存儲(chǔ)數(shù)據(jù)源

  • 在Kubernetes 1.26版本,允許PodDisruptionBudget配置不健康Pod的驅(qū)逐策略,通過設(shè)置.spec.unhealthyPodEvictionPolicy=AlwaysAllow來驅(qū)逐不健康Pod的行為不受PDB的干擾。目前處于Alpha階段,使用該功能需要啟用PDBUnhealthyPodEvictionPolicy特性門控。更多信息,請(qǐng)參見不健康Pod的驅(qū)逐策略

  • 在Kubernetes 1.26版本中,容器preStop和postStart生命周期函數(shù)httpGet遵循schemeheaders字段配置,可以與探針行為保持一致,設(shè)定自定義的Headers和使用HTTPS。如果本應(yīng)該使用HTTP而使用了HTTPS,會(huì)出現(xiàn)錯(cuò)誤提示,并在與之前保持邏輯兼容的同時(shí)自動(dòng)回退使用HTTP。您可以通過Kubelet設(shè)定--feature-gates=ConsistentHTTPGetHandlers=false關(guān)閉該擴(kuò)展功能。

  • 在Kubernetes 1.26版本,APF(API Priority and Fairness)支持從其他優(yōu)先級(jí)借用一些席位,.spec.limited新增兩個(gè)字段,其中lendablePercent標(biāo)識(shí)可租借出去的百分比,borrowingLimitPercent標(biāo)識(shí)可以從其他優(yōu)先級(jí)級(jí)別中借多少資源。

  • 在Kubernetes 1.26版本,kube-controller-manager組件支持設(shè)置--concurrent-horizontal-pod-autoscaler-syncs來設(shè)定HPA(Horizontal Pod Autoscaler)控制器的Workers數(shù)。

  • 在Kubernetes 1.26版本,為HPA增加一個(gè)標(biāo)簽選擇器校驗(yàn),當(dāng)多個(gè)HPA指向同一個(gè)Pod集或者同一個(gè)部署,這些HPA將不起作用,并提示事件AmbiguousSelector。

  • 在Kubernetes 1.26版本,當(dāng)多個(gè)StorageClass被設(shè)置為默認(rèn)值(通過storageclass.kubernetes.io/is-default-classAnnotation設(shè)置),會(huì)選擇最新的一個(gè)StorageClass作為默認(rèn)值,而不是拋出異常。

棄用功能

  • 存儲(chǔ)驅(qū)動(dòng)的棄用和移除

    • 在Kubernetes 1.25版本,針對(duì)存儲(chǔ)集成移除in-tree卷插件,CSI遷移是SIG Storage在之前多個(gè)版本中做出的持續(xù)努力,目標(biāo)是將in-tree卷插件代碼轉(zhuǎn)移到out-of-tree的CSI (容器存儲(chǔ)接口)驅(qū)動(dòng)程序。 在Kubernetes 1.25版本,核心CSI遷移為穩(wěn)定版。

    • 在Kubernetes 1.25版本,棄用GlusterFS Portworx in-tree卷插件,移除 FlockerQuobyteStorageOS in-tree卷插件。In-tree vSphere 卷驅(qū)動(dòng)將不支持任何早于7.0u2的vSphere版本。

    • 在Kubernetes 1.26版本,移除GlusterFS in-tree驅(qū)動(dòng),移除已棄用的 OpenStack in-tree存儲(chǔ)集成(Cinder卷類型)。

  • 清理iptables鏈的所有權(quán)

    Kubernetes通常創(chuàng)建Iptables鏈來確保這些網(wǎng)絡(luò)數(shù)據(jù)包到達(dá), 這些Iptables鏈及其名稱屬于Kubernetes內(nèi)部實(shí)現(xiàn)的細(xì)節(jié),僅供內(nèi)部使用場(chǎng)景,目前有些組件依賴于這些內(nèi)部實(shí)現(xiàn)細(xì)節(jié),Kubernetes總體上不希望支持某些工具依賴這些內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。詳細(xì)信息,請(qǐng)參見Kubernetes 的IPtables鏈不是API

    在Kubernetes 1.25版本后,Kubelet通過IPTablesCleanup特性門控分階段完成遷移,是為了不在NAT表中創(chuàng)建Iptables鏈,例如KUBE-MARK-DROP、KUBE-MARK-MASQ、KUBE-POSTROUTING。

    關(guān)于清理IPTables鏈所有權(quán)的信息,請(qǐng)參見清理IPTables鏈的所有權(quán)

  • 移除樹內(nèi)憑證管理代碼

    在Kubernetes 1.26版本后,原本內(nèi)嵌的特定供應(yīng)商Azure和Google Cloud身份驗(yàn)證代碼將從client-go和kubectl中移除,可以選擇使用身份驗(yàn)證插件機(jī)制替代。更多信息,請(qǐng)參見身份驗(yàn)證插件機(jī)制

  • kube-proxy移除部分

    • 在Kubernetes 1.26版本,Userspace代理模式已被移除,已棄用的Userspace代理模式不再受Linux或Windows支持。Linux用戶應(yīng)使用Iptables或IPVS,Windows用戶應(yīng)使用Kernelspace,現(xiàn)在使用--mode userspace會(huì)失敗。

    • Windows winkernel kube-proxy不再支持Windows HNS v1 APIs。

  • Kubectl棄用--prune-whitelist標(biāo)志

    在Kubernetes 1.26版本,為了支持 Inclusive Naming Initiative--prune-whitelist標(biāo)志將被棄用,并替換為--prune-allowlist,該標(biāo)志在未來將徹底移除。

  • 移除動(dòng)態(tài)Kubelet配置

    DynamicKubeletConfig特性門控移除,通過API動(dòng)態(tài)更新節(jié)點(diǎn)上的Kubelet配置。在Kubernetes 1.24版本中從Kubelet移除相關(guān)代碼,在Kubernetes 1.26版本從APIServer移除相關(guān)代碼,移除該邏輯有助于簡(jiǎn)化代碼提升可靠性,推薦方式是修改Kubelet配置文件然后重啟Kubelet。更多信息,請(qǐng)參見在Kubernetes 1.26版本從APIServer移除相關(guān)代碼

  • 移除命令行參數(shù)

    • 在Kubernetes 1.25版本, kubeadm UnversionedKubeletConfigMap已經(jīng)GA,默認(rèn)使用kube-system或kubelet-config代替kube-system或kubelet-config-x.yy。

    • 在Kubernetes 1.25版本,kubeadm不會(huì)再給controlplane節(jié)點(diǎn)打上node-role.kubernetes.io/master:NoSchedule標(biāo)簽,且使用kubeadm upgrade apply的時(shí)候還會(huì)移除這個(gè)標(biāo)簽。

    • 在Kubernetes 1.25版本,不再支持Seccomp annotations seccomp.security.alpha.kubernetes.io/podcontainer.seccomp.security.alpha.kubernetes.io,建議使用SeccompProfile 代替。更多信息,請(qǐng)參見使用 seccomp 限制容器的系統(tǒng)調(diào)用

    • 在Kubernetes 1.25和Kubernetes 1.26版本,kube-controller-manager廢棄和移除部分啟動(dòng)參數(shù)。

      • 移除了deleting-pods-qps、deleting-pods-burst、register-retry-count。

      • 廢棄了experimental-cluster-signing-duration和pod-eviction-timeout,使用cluster-signing-duration替代。

      • 在Kubernetes 1.27版本,pod-eviction-timeout和enable-taint-manager將一起被移除。

    • 在Kubernetes 1.26版本,將移除一些與日志相關(guān)的命令行參數(shù),這些參數(shù)在之前的版本已被棄用

    • 在Kubernetes 1.26版本,正式標(biāo)記棄用 --master-service-namespace 命令行參數(shù),它對(duì)APIServer沒有任何效果。

    • 在Kubernetes 1.26版本,kubectl run未使用的幾個(gè)子命令將被標(biāo)記為棄用,并在未來某個(gè)版本移除,包括--cascade--filename--force--grace-period--kustomize--recursive--timeout--wait等這些子命令。

廢棄的API信息

在Kubernetes 1.25和Kubernetes 1.26版本廢棄了部分API,如下所示。更多信息,請(qǐng)參見已廢棄API

  • CronJob

    在Kubernetes 1.25版本后,開始不再提供batch/v1beta1 API版本的CronJob(定時(shí)任務(wù)),但可以使用batch/v1 API版本,此API從Kubernetes 1.21版本開始可用。

  • EndpointSlice

    在Kubernetes 1.25版本后,開始不再提供discovery.k8s.io/v1beta1 API版本的EndpointSlice(端點(diǎn)切片),但可以使用discovery.k8s.io/v1 API版本,此API從Kubernetes 1.21版本開始可用。

    discovery.k8s.io/v1中值得注意的變更如下所示。

    • 使用每個(gè)Endpoint的NodeName字段,而不是已被棄用的topology["kubernetes.io/hostname"]字段。

    • 使用每個(gè)Endpoint的Zone字段,而不是已被棄用的topology["kubernetes.io/zone"]字段。

    • Topology字段被替換為deprecatedTopology字段,并且在API的v1版本中不可寫入。

    重要

    集群升級(jí)后,請(qǐng)檢查CoreDNS Pod是否出現(xiàn)failed to list *v1beta1.EndpointSlice報(bào)錯(cuò)。如有,請(qǐng)立即重啟或升級(jí)CoreDNS組件。更多信息,請(qǐng)參見為什么CoreDNS正在使用廢棄的API?

  • Event

    在Kubernetes 1.25版本后,開始不再提供events.k8s.io/v1beta1 API版本的Event,但可以使用events.k8s.io/v1 API版本,此API從Kubernetes v1.19版本開始可用。

    events.k8s.io/v1中值得注意的變更如下所示。

    • type字段只能設(shè)置為Normal或Warning。

    • involvedObject字段被更名為regarding。

    • 在創(chuàng)建新的events.k8s.io/v1版本Event時(shí),action、reason、reportingController和reportingInstance都是必需的字段。

    • 使用eventTime字段而不是已被棄用的firstTimestamp字段。firstTimestamp字段已被更名為deprecatedFirstTimestamp,且不允許出現(xiàn)在新的events.k8s.io/v1 Event對(duì)象中。

    • 使用series.lastObservedTime字段而不是已被棄用的lastTimestamp字段。lastTimestamp字段已被更名為deprecatedLastTimestamp,并且不允許出現(xiàn)在新的events.k8s.io/v1 Event對(duì)象中。

    • 使用series.count字段而不是已被棄用的count字段。count字段已被更名為deprecatedCount,且不允許出現(xiàn)在新的events.k8s.io/v1 Event對(duì)象中。

    • 使用reportingController字段而不是已被棄用的source.component字段。source.component字段已被更名為 deprecatedSource.component,且不允許出現(xiàn)在新的events.k8s.io/v1 Event對(duì)象中。

    • 使用reportingInstance字段而不是已被棄用的source.host字段。 source.host字段已被更名為deprecatedSource.host,且不允許出現(xiàn)在新的events.k8s.io/v1 Event對(duì)象中。

  • PodDisruptionBudget

    在Kubernetes 1.25版本后,開始不再提供policy/v1beta1 API版本的PodDisruptionBudget(Pod中斷預(yù)算),但可以使用policy/v1 API版本,此API從Kubernetes 1.21版本開始可用。

    policy/v1中值得注意的變更是:在policy/v1版本的PodDisruptionBudget中將spec.selector設(shè)置為空({})時(shí),會(huì)選擇名字空間中的所有 Pods,即在policy/v1beta1版本中,空的spec.selector不會(huì)選擇任何Pods。如果spec.selector未設(shè)置,則在兩個(gè)API版本下都不會(huì)選擇任何 Pods。

  • PodSecurityPolicy

    在Kubernetes 1.25版本后,開始不再提供policy/v1beta1 API版本中的PodSecurityPolicy(Pod安全策略),并且PodSecurityPolicy準(zhǔn)入控制器也會(huì)被刪除,請(qǐng)將PodSecurityPolicy遷移到Pod Security Admission或第三方準(zhǔn)入Webhook。

    有關(guān)遷移指南的更多信息,請(qǐng)參見從PodSecurityPolicy遷移到內(nèi)置PodSecurity準(zhǔn)入控制器。 有關(guān)棄用的更多信息,請(qǐng)參見PodSecurityPolicy棄用:過去、現(xiàn)在和未來

  • RuntimeClass

    在Kubernetes 1.25版本后,開始不再提供node.k8s.io/v1beta1 API版本中的RuntimeClass(運(yùn)行時(shí)類),但可以使用node.k8s.io/v1 API版本,此API從Kubernetes 1.20版本開始可用。

  • HorizontalPodAutoscaler

    • 在Kubernetes 1.25版本后,開始不再提供autoscaling/v2beta1 API版本的HorizontalPodAutoscaler(Pod水平自動(dòng)伸縮)。

    • 在Kubernetes 1.26版本后,開始不再提供autoscaling/v2beta2 API版本的HorizontalPodAutoscaler,但可以使用autoscaling/v2 API版本, 此API從Kubernetes 1.23版本開始可用。

  • Flow control resources

    在Kubernetes 1.26版本后,開始不再提供flowcontrol.apiserver.k8s.io/v1beta1 API版本的FlowSchema和PriorityLevelConfiguration,但此API從Kubernetes 1.23版本開始,可以使用flowcontrol.apiserver.k8s.io/v1beta2;從Kubernetes 1.26版本開始,可以使用flowcontrol.apiserver.k8s.io/v1beta3。

特性門控

關(guān)于特性門控一般有三個(gè)階段,Alpha階段默認(rèn)禁用、Beta階段一般默認(rèn)啟用、GA階段將一直默認(rèn)啟用,且不能禁用(會(huì)在后續(xù)版本中刪除這個(gè)開關(guān)功能),以下列舉部分主要變化。更多信息,請(qǐng)參見Feature Gates

  • 在Kubernetes 1.25版本,SeccompDefault升級(jí)為Beta狀態(tài)。關(guān)于如何使用SeccompDefault,請(qǐng)參見使用seccomp限制容器的系統(tǒng)調(diào)用

  • 在Kubernetes 1.25版本,CRD驗(yàn)證表達(dá)式語言升級(jí)為Beta狀態(tài),CustomResourceValidationExpressions默認(rèn)啟用。使用通用表達(dá)式語言(CEL)驗(yàn)證自定義資源比使用Webhook更加方便高效。更多信息,請(qǐng)參見驗(yàn)證規(guī)則指導(dǎo)

  • 在Kubernetes 1.25版本,ServerSideFieldValidation特性門控已升級(jí)為Beta狀態(tài),默認(rèn)開啟ServerSideFieldValidation。APIServer支持對(duì)未知字段的驗(yàn)證,使得后續(xù)考慮移除Kubectl上的該功能。更多信息,請(qǐng)參見APIServer支持對(duì)未知字段的驗(yàn)證

  • 在Kubernetes 1.25版本,新增ContainerCheckpoint Alpha特效,啟動(dòng)Kubelet Checkpoint API。更多信息,請(qǐng)參見Kubelet Checkpoint API

  • 在Kubernetes 1.25版本,新增PodHasNetworkCondition Alpha特性,使得Kubelet能給對(duì)Pod標(biāo)記PodHasNetwork的狀況。更多信息,請(qǐng)參見PodHasNetwork

  • 在Kubernetes 1.25版本,新增UserNamespacesStatelessPodsSupport Alpha特性,為無狀態(tài)的Pod啟用用戶名字空間的支持。

  • 在Kubernetes 1.25版本,新增JobPodFailurePolicy Alpha特性,允許配置Job根據(jù)容器退出碼和Pod狀況來指定Pod失效的處理方法,該特性在Kubernetes 1.26版本進(jìn)入Beta階段。

  • 在Kubernetes 1.25版本,新增了MultiCIDRRangeAllocator Alpha特性,啟動(dòng)NodeIPAM支持多個(gè)ClusterCIDRs,kube-controller-manager通過配置--cidr-allocator-type=MultiCIDRRangeAllocator來啟動(dòng)控制器支持。

  • 在Kubernetes 1.25版本中,StatefulSetMinReadySeconds進(jìn)入GA狀態(tài),StatefulSet默認(rèn)支持minReadySeconds字段,且不能禁用。

  • 在Kubernetes 1.25版本,CronJobTimeZone進(jìn)入Beta階段,默認(rèn)啟用CronJob可使用TimeZone字段,且不能禁用。

  • 在Kubernetes 1.25版本,DaemonSetUpdateSurge進(jìn)入GA階段,默認(rèn)可使用DaemonSet MaxSurge字段,且不能禁用。

  • 在Kubernetes 1.25版本,IdentifyPodOS進(jìn)入GA階段,默認(rèn)啟用spec.podOS字段,且不能禁用。

  • 在Kubernetes 1.25版本,CSIInlineVolume進(jìn)入GA階段,默認(rèn)啟用支持CSI內(nèi)聯(lián)卷支持,且不能禁用。

  • 在Kubernetes 1.25版本,EphemeralContainers進(jìn)入GA階段,默認(rèn)啟用支持臨時(shí)容器,且不能禁用。

  • 在Kubernetes 1.25版本,新增CSINodeExpandSecret特性,允許在添加節(jié)點(diǎn)時(shí)將Secret身份驗(yàn)證數(shù)據(jù)傳遞到CSI驅(qū)動(dòng)以供后者使用。

  • 在Kubernetes 1.25版本,CSIMigration進(jìn)入GA階段,默認(rèn)啟用該特性,不能禁用。

  • 在Kubernetes 1.25版本,CSIMigrationPortworx進(jìn)入Beta階段。

  • 在Kubernetes 1.25版本,ProbeTerminationGracePeriod依然處于Beta階段, 但是默認(rèn)值變?yōu)門rue。更多信息,請(qǐng)參見探針層面的terminationGracePeriodSeconds

  • 在Kubernetes 1.26版本,JobTrackingWithFinalizers處于GA階段,默認(rèn)啟動(dòng)Job完成情況追蹤代替計(jì)算剩余Pod來判定Job完成情況。更多信息,請(qǐng)參見使用Finalizers追蹤Job

  • 在Kubernetes 1.26版本,新增了PDBUnhealthyPodEvictionPolicy Alpha特性,支持PodDisruptionBudget指定不健康的Pod驅(qū)逐策略。

  • 在Kubernetes 1.26版本,啟動(dòng)動(dòng)態(tài)資源分配API支持,對(duì)具有自定義參數(shù)和獨(dú)立于Pod生命周期的資源,提供管理和使用的支持。

  • 在Kubernetes 1.26版本,新增StatefulSetStartOrdinal Alpha特性,支持配置StatefulSet啟始序號(hào)。

  • 在Kubernetes 1.26版本,ServiceInternalTrafficPolicy處于GA階段,允許Service使用internalTrafficPolicy字段配置服務(wù)內(nèi)部流量策略。默認(rèn)啟用該特性,不能禁用。更多信息,請(qǐng)參見服務(wù)內(nèi)部流量策略

  • 在Kubernetes 1.26版本,新增ValidatingAdmissionPolicy Alpha特性,通過CEL表達(dá)式實(shí)現(xiàn)可擴(kuò)展的準(zhǔn)入控制器。

  • 在Kubernetes 1.26版本,MixedProtocolLBService處于GA階段,允許在同一LoadBalancer類型的Service實(shí)例中使用不同的協(xié)議。

  • 在Kubernetes 1.26版本,EndpointSliceTerminatingCondition處于GA階段,允許使用EndpointSlice的Terminating和Serving狀況字段,不能禁用。

  • 在Kubernetes 1.26版本,APIServerIdentity進(jìn)入Beta階段,默認(rèn)啟用在kube-system下,為每個(gè)活躍的APIServer創(chuàng)建Lease。

  • 在Kubernetes 1.26版本,DelegateFSGroupToCSIDriver處于GA階段,不能禁用。

  • 在Kubernetes 1.26版本,NodeOutOfServiceVolumeDetach進(jìn)入Beta階段,默認(rèn)啟用該特性。當(dāng)使用node.kubernetes.io/out-of-service污點(diǎn)將節(jié)點(diǎn)標(biāo)記為停止服務(wù)時(shí),不能容忍該污點(diǎn)的Pod將被強(qiáng)制刪除,并且該在節(jié)點(diǎn)上被終止的Pod將立即進(jìn)行卷分離操作。

  • 在Kubernetes 1.26版本,ServiceIPStaticSubrange處于GA階段,啟用服務(wù)ClusterIP分配策略,從而細(xì)分ClusterIP的范圍。

  • 在Kubernetes 1.26版本,CPUManager和DevicePlugins處于GA階段,默認(rèn)啟用該特性,不能禁用。

  • 在Kubernetes 1.26版本,新增ComponentSLIs Alpha特性,在kubelet、kube-scheduler、kube-proxy、kube-controller-manager、cloud-controller-manager等Kubernetes組件上啟用/metrics/slis端點(diǎn),從而允許抓取健康檢查指標(biāo)。

  • 在Kubernetes 1.26版本,WindowsHostProcessContainers處于GA階段,默認(rèn)啟用對(duì)Windows HostProcess容器的支持。

  • 在Kubernetes 1.26版本,ExpandedDNSConfig進(jìn)入Beta階段,允許使用更多的DNS搜索域和搜索域列表,需要運(yùn)行時(shí)支持。

  • 在Kubernetes 1.26版本,LegacyServiceAccountTokenNoAutoGeneration處于GA階段,停止基于Secret自動(dòng)生成服務(wù)賬號(hào)令牌。默認(rèn)啟用該特性,不能禁用。

  • 在Kubernetes 1.26版本,ProxyTerminatingEndpoints進(jìn)入Beta階段,默認(rèn)啟用該特性,當(dāng)ExternalTrafficPolicy=Local時(shí), 允許kube-proxy來處理終止過程中的端點(diǎn)。

  • 在Kubernetes 1.26版本,新增LegacyServiceAccountTokenTracking Alpha特性,默認(rèn)關(guān)閉該特性,Secret serviceaccount token添加一個(gè)標(biāo)簽kubernetes.io/legacy-token-last-used顯示到期時(shí)間。

  • 在Kubernetes 1.26版本,PodDisruptionConditions特性進(jìn)入Beta階段且默認(rèn)啟用。您可以為Pod Status添加一個(gè)DisruptionTarget Condition,表明Pod因?yàn)榘l(fā)生干擾而被刪除,并在reason字段中進(jìn)一步查詢Pod終止的原因。更多信息,請(qǐng)參見Pod disruption conditions

ACK對(duì)Kubernetes 1.26版本的增強(qiáng)

安全增強(qiáng)

ACK進(jìn)一步加固了節(jié)點(diǎn)上下列Kubernetes相關(guān)敏感文件的訪問權(quán)限。

文件路徑

加固后的訪問權(quán)限

/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

參考鏈接