1.36 版本資訊與更新操作
檢視 IBM Cloud® Kubernetes Service 的版本 1.36 的相關資訊。 有關 Kubernetes 專案版本 1.36 的更多資訊,請參閱 Kubernetes 的變更日誌。
IBM Cloud Kubernetes Service 此產品是根據 CNCF Kubernetes 軟體符合性認證計畫,針對 1.36 版本所頒發的「Kubernetes」認證產品。 Kubernetes® 是「Linux 基金會」在美國及其他國家的註冊商標,並依據「Linux 基金會」授予的授權而使用。
發行時程表
下表列出了 IBM Cloud® Kubernetes Service 的 1.36 版本預期的發布時程。 您可以將此資訊用於規劃用途,例如估算該版本可能停止支援的大致時間。
標示劍號 (†) 的日期是暫訂的,得隨時變更。
| 版本 | 是否支援? | 發表日期 | 不支援日期 |
|---|---|---|---|
| 1.36 | 是 | 2026年6月26日 | 2027年8月1日 † |
準備更新
若要查看更新叢集時可能影響已部署應用程式的完整變更清單,請參閱版本 1.36 的《叢集更新說明》( 社群版 Kubernetes 變更紀錄 )及《叢集更新影響說明》( IBM 版本變更紀錄 )。 您也可以參閱 Kubernetes 中的實用警告。
- Kubernetes API 伺服器與 Konnectivity 隧道透過 443 埠提供服務
-
Kubernetes API 伺服器與 Konnectivity 隧道現已改為透過標準的 HTTPS 443 埠提供服務,而非使用動態指派的節點埠(例如,
20000–32767範圍內的埠)。 流量是透過基於主機名的路由方式導向至正確的後端服務,這正是為何儘管所有服務皆共用 443 號埠,但每個函式仍擁有專屬的主機名。 這項變更讓您能更輕鬆地從限制性網路環境連線至您的叢集,因為您不再需要透過防火牆和出站控制機制來允許非標準埠號的通訊。 您的叢集透過其私有及公開服務端點,公開了兩個專為此目的設計的主機名稱:<cluster>.api.<region-domain>— Kubernetes API 伺服器端點<cluster>.tunnel.<region-domain>— 用於控制平面與工作節點之間通訊的 Konnectivity 隧道端點
此功能自 IKS 1.36 版本起,可在以下區域使用:蒙特婁 (
ca-mon)、清奈 (in-che) 及孟買 (in-mum)。其他區域的支援功能即將推出。若您更新了使用公開服務端點的叢集,那些仍引用公開服務端點 URL 的 kubeconfig 檔案將持續使用舊的埠號,這會導致
kubectl指令因連線超時而失敗。 為避免此情況,您可以執行ibmcloud ks cluster config來下載一個新的 kubeconfig,或者手動將現有 kubeconfig 中的端口更新為 443。- 新叢集: 無需採取任何行動。 新建立的叢集會使用 443 埠作為終端點,而您下載的 kubeconfig 檔案已預設使用 443 埠。
- 僅使用私有服務端點的已更新叢集: 無需立即採取任何行動。 升級後,針對舊版 NodePort 的現有連線仍可正常運作。 您下載的新 kubeconfig 會使用 443 埠的端點。
- 自訂網路規則: 請更新任何明確引用舊版高號控制平面埠的防火牆、安全群組或出站允許清單規則,改為允許透過 443 埠發送出站 HTTPS 請求。 任何曾將先前編號較高的埠固定住的規則,均可移除。
- 基於 IP 的允許清單: 公共服務端點的 DNS 記錄現在會解析至 Akamai IP Protect (IPP) 前端 IP 位址,而非先前的負載平衡器 (NLB) IP 位址。 若您的防火牆或出站規則允許根據目的 IP 位址將流量傳送至您的叢集,請將其更新為使用最新的 Akamai IPP IP 範圍。
- 目前已限制以匿名方式存取 Kubernetes API 伺服器
-
目前,對 Kubernetes API 伺服器的匿名存取已限制為僅限於狀態檢查端點(
/healthz、/readyz、/livez、/livez/ping)。所有其他端點均需進行身份驗證(例如:/version)。此舉可降低因意外的 RBAC 設定錯誤而導致的風險,此類錯誤可能授予對system:anonymous或system:unauthenticated的存取權限。 - Kubernetes 儀表板已停用
-
開源的「Kubernetes」儀表板現已停用並歸檔。 當您升級至 1.36 時,Kubernetes 儀表板將不再安裝於新建的叢集上,並會從舊版叢集中移除。 「Headlamp」擴充套件 可作為 Kubernetes 介面的替代方案。
- NVIDIA GPU 驅動程式不再自動安裝
-
自 Kubernetes 版本 1.36 起,IBM Cloud Kubernetes Service 將不再在 GPU 工作節點上自動安裝 NVIDIA 的 GPU 驅動程式。 您必須自行安裝並管理 GPU 驅動程式,才能執行 GPU 工作負載。 如需更多資訊,請參閱 《 遷移至自管理型 GPU 驅動程式 》。
叢集自動擴展功能目前尚不支援版本 1.36。 若已安裝自動擴展器,請勿將叢集更新至 1.36 版本。
在主節點之前更新
請檢視以下您在更新 Kubernetes 主伺服器之前必須進行的變更。
| 類型 | 說明 |
|---|---|
| 已移除: 內建的 Portworx 卷插程 | 在 Kubernetes 1.36 中,已移除內建的 Portworx 卷插程,從而完成向 Portworx CSI 驅動程式的遷移。 CSIMigrationPortworx 功能閘門(自 1.33 起已標記為 GA 並鎖定)以及 alpha 版本的 InTreePluginPortworxUnregister 功能閘門亦已移除,且所有樹內 Portworx 卷操作均已重定向至 CSI。 在進行更新之前,請確認已安裝「
Portworx」CSI 驅動程式,並確保您的 StorageClass、PersistentVolume 及 PersistentVolumeClaim 資源均已引用該 CSI 驅動程式。 更新後,仍依賴 in-tree 外掛程式的叢集將無法再存取 Portworx 上的儲存卷。 |
| 變更: 更嚴格的 IP 和 CIDR 驗證 | API 伺服器中,StrictIPCIDRValidation 功能閘門預設為啟用狀態。 儲存 IP 或 CIDR 值的 API 欄位,不再接受開頭帶有多餘零的位址(例如 010.000.000.005 而非 10.0.0.5 ),也不再接受主機位元含糊不清的 CIDR 值(例如 192.168.0.5/24 而非 192.168.0.0/24 或 192.168.0.5/32 )。 請針對 Service、NetworkPolicy 及 EndpointSlice 等資源,審核您的清單與工具,並在更新前修正任何非標準的 IP 或 CIDR 值。 主伺服器更新後,任何試圖建立或更新具有無效值物件的請求都將被拒絕。 |
| 變更: 重新命名控制平面指標 | volume_operation_total_errors 指標(kube-controller-manager)已更名為 volume_operation_errors_total,而 etcd_bookmark_counts 指標則更名為 etcd_bookmark_total。 如果您使用的是引用舊指標名稱的自訂監控儀表板或警示規則,請將其更新為新名稱,以確保在控制平面更新後,您的監控功能仍能正常運作。 |
已移除: git-repo 音量外掛程式 |
git-repo 音量外掛程式預設為停用狀態,且無法重新啟用; GitRepoVolumeDriver 功能閘門現已不再產生任何效果。 自 1.33 版本起,此卷型在 IBM Cloud Kubernetes Service 中已不再受支援。 若仍有任何工作負載仍在使用 gitRepo 卷,請將其遷移至 emptyDir 卷,該卷由 init 容器所建立,該容器會透過 git 來克隆該儲存庫。 如需更多資訊,請參閱《 移除樹狀結構中的 gitRepo 卷驅動程式 》。 |
在主節點之後更新
請檢視以下您在更新 Kubernetes 主伺服器後必須進行的變更。
| 類型 | 說明 |
|---|---|
已廢棄: 服務 .spec.externalIPs |
Service 資源中的 .spec.externalIPs 欄位已宣告為過時,當設定此欄位時,API 伺服器現在會回傳過時警告。 請規劃停止使用 externalIPs``,並改為透過 LoadBalancer 服務或 Ingress 來路由外部流量。 如需更多資訊,請參閱「外部 IP 位址」。 |
已變更: 預設的「kubectl debug」設定檔 |
kubectl debug 的預設設定檔已從 legacy 變更為 general。 如果您有依賴於「 legacy 」設定檔行為的腳本或執行手冊,請明確傳入 --profile=legacy 。 legacy 配置檔預計將在 Kubernetes 中移除 1.39。 如需更多資訊,請參閱「
除錯正在執行的 Pod」。 |
變更: client-go 資訊提供者事件的排序(AtomicFIFO ) |
client-go 的 AtomicFIFO 功能閘門預設為啟用狀態。 在呼叫各項目對應的 OnAdd、OnUpdate 及 OnDelete 處理程序之前,Informer 儲存體現已全面更新至一致的資源版本;此外,Informer 的重新同步處理流程亦略有變更,這可能會導致處理程序的呼叫時機出現可觀察到的差異。 測試嵌入 client-go 的自訂控制器與運算子。
若您觀察到效能退步的情況,在進行調整期間,可於您自己的控制器二進位檔中,將 AtomicFIFO 客戶端 Go 功能閘門暫時設定為 false 。 |
變更: 對 CustomResourceDefinition 的數值驗證更為嚴格 |
CustomResourceDefinition (CRD) 驗證功能現已嚴格執行,當在模式中設定 int32、int64、float 及 double 這些數值格式時,將嚴格檢查其數值範圍。 現有物件若已包含超出範圍的值,將透過驗證漸進機制予以保留;但新值或更新後的值必須落在範圍內。 檢視使用這些數值格式的自訂資源。 |
| 已廢棄: 憑證外掛程式的白名單欄位 | 在客戶端憑證外掛程式的允許清單中,AllowlistEntry.Name 欄位已重新命名為 AllowlistEntry.Command。 若您已設定憑證外掛程式的白名單(例如,透過 kuberc 進行設定),請更新您的設定以使用新的欄位名稱。 |
已廢棄: 直接存取 metav1.FieldsV1.Raw |
直接存取 metav1.FieldsV1 的 Raw 欄位已不再建議使用。 任何用於建立或讀取 FieldsV1 的程式碼(例如,檢查受管理欄位的控制器或工具),應遷移至新的 NewFieldsV1(string)、 GetRawBytes()、 GetRawString()``
及 SetRawBytes() 存取方法。 |
| 需採取的行動: 自訂排程器 PreBind 外掛程式 | 排程器框架現已支援並行執行 PreBind 外掛程式。 若您維護自訂排程器外掛程式,請將其更新為在 PreBindPreFlight 方法中傳回 PreBindPreFlightResult ;傳回 nil 將維持現有的順序執行行為,而外掛程式若要啟用並行執行,則需傳回 AllowParallel:
true``。 此操作僅適用於執行自訂排程器外掛程式的叢集。 |
| 待處理事項: DRA 驅動程式的細粒度 RBAC | 當啟用「DRAResourceClaimGranularStatusAuthorization」功能閘( 1.36 中的測試版)時,動態資源分配(DRA)驅動程式和控制器需要細粒度的 RBAC 權限,才能更新「ResourceClaim」狀態。 排程器與控制器需安裝 update 或 patch (位於 resourceclaims/binding ),而 DRA 驅動程式則需安裝 associated-node:update 或 arbitrary-node:update (位於 resourceclaims/driver ),其安裝範圍受其特定 resourceNames 所限制。 若您正在執行 DRA 驅動程式,請更新其 RBAC。 此操作僅適用於使用 DRA 的叢集。 |