Kubernetes 1.27發佈 新功能介紹

Kubenetes .27發佈,新主題命名爲Chill Vibes,這個版本包含60個增強功能。這些增強功能中有8個正在Alph版本,29個正在升級到Bet版本,3個正在升級到穩定版本。下面一起來看下Kubenetes .27主要新增功能有哪些。

Kubenetes .27主要功能介紹:

、凍結 k8s.gc.io鏡像倉庫

用 egisty.k8s.io 替換舊的鏡像倉庫 k8s.gc.io,後者已經普遍可用了幾個月。Kubenetes 項目創建並運行 egisty.k8s.io 鏡像倉庫,完全由社區控制。這意味着舊的鏡像倉庫 k8s.gc.io 將被凍結,並且不會再發布 Kubenetes 和相關子項目的鏡像到舊的鏡像倉庫。

2、SeccompDefult 升級到穩定版

要使用默認的 seccomp 配置文件,您需在每個要使用它的節點上使用 Rseccomp-defult 命令行標誌運行 kubelet。如果啓用,kubelet 將默認使用 RuntimeDefult seccomp 配置文件,該配置文件由容器運行時定義,而不是使用 Unconfined 模式。默認配置文件旨在提供強大的安全默認值,同時保留工作負載的功能。容器運行時及其發佈版本之間的默認配置文件可能不同。

您可以在相關的Kubenetes增強提案(KEP)中找到有關可能的升級和降級策略的詳細信息

3、Jobs 可變調度指令 GA

這是在Kubenetes .22 中引入的,開始是作爲測試版,現在已經穩定了。在大多數情況下,並行作業會希望 Pod 在約束條件下運行,例如所有 Pod 在同一區域內,或者所有 Pod 都在 GPU model x 或 y 上運行,而不是混合運行。 suspend 字段是實現這些語義的第一步。 suspend 允許自定義隊列控制器決定何時啓動作業。但是,一旦作業被取消掛起,自定義隊列控制器就無法影響作業的 Pod 實際放置位置。

該功能特性允許在作業開始之前更新 Jobs 的調度指令,這使得自定義隊列控制器能夠影響 Pod 的放置,同時將實際的 pod-to-node 的分配卸載給 kube-schedule。這僅適用於以前從未恢復過的已掛起 Jobs。

4、DownwdAPIHugePges 升級爲穩定版

在 Kubenetes .20 中,對 equests.hugepges-<pgesize> 和 limits.hugepges-<pgesize> 的支持被添加到 downwd API 中,以便與其他資源如 CPU、內存等一致。這個功能在這個版本中畢業,升級到到穩定版。

5、Pod 調度測試階段

創建後,Pods 可以進行調度了。Kubenetes 調度器會盡力找到節點來放置所有待定的 Pods。然而,在實際情況中,一些 Pods 可能會長時間處於缺少必要資源的狀態。這些 Pod 實際上是以不必要的方式攪亂了調度器(以及下游集成器,如 Cluste Autoscle)。

通過指定 / 刪除 Pod 的 .spec.schedulingGtes ,可以控制 Pod 何時可以被考慮進行調度。

6、通過 Kubenetes API 訪問 Node 日誌

該功能幫助集羣管理員通過允許他們查詢服務日誌來調試運行在節點上的服務的問題。要使用此功能,請確保在該節點上啓用了 NodeLogQuey ,且 kubelet 配置選項 enbleSystemLogHndle 和 enbleSystemLogQuey 均設置爲 tue。在 Linux 上,我們假定服務日誌可通過 jounld 獲得。在 Windows 上,我們假定服務日誌可在應用程序日誌提供程序中獲得。您還可以從 Linux 和 Windows 上的 //log/ 和 C:\\\\log 目錄中獲取日誌。

7、RedWiteOncePod PesistentVolume 測試階段

Kubenetes .22 引入了一種新的訪問模式 RedWiteOncePod,用於 PesistentVolumes(PV)和 PesistentVolumeClims(PVC)。此訪問模式使你能夠將卷訪問限製爲集羣中的單個 Pod,確保僅有一箇 Pod 可以同時寫入該卷。這對於需要對存儲進行 single-wite 的有狀態工作負載特別有用。

RedWiteOncePod bet 增加了對使用 RedWiteOncePod PVC 的 Pod 的調度程序搶佔支持。調度程序搶佔允許更高優先級的 Pod 搶佔低優先級的 Pod。

8、滾動升級後遵循 PodTopologySped

mtchLbelKeys 是一箇 Pod 標籤鍵的列表。這些鍵用於從 Pod 標籤中查找值。這些鍵值標籤與 lbelSelecto 進行 AND 運算,以選擇現有 Pod 組,計算傳入 Pod 的分佈。在 Pod 標籤中不存在的鍵將被忽略。空列表表示僅匹配 lbelSelecto 。

使用 mtchLbelKeys ,用戶無需在不同版本之間更新 pod.spec 。控制器只需爲不同版本的同一 lbel 鍵設置不同的值。調度程序將根據 mtchLbelKeys 自動假定這些值。

9、使用掛載加速 SELinux 卷重新標記

在此版本中,應用於 Pod 使用的卷的 SELinux 標籤的方式將升級爲 bet 版本。該功能通過掛載具有正確 SELinux 標籤的捲來加快容器啓動速度,而不是遞歸更改捲上的每個文件。支持 SELinux 的 Linux 內核允許在第一次掛載卷的時候使用 -o context= 掛載選項在整個捲上設置 SELinux 標籤,從而使所有文件在恆定時間內分配給定標籤,而無需遞歸地遍歷整個卷。

0、VolumeMnge 重構測試階段

這是一箇卷管理器重構,允許 kubelet 在啓動期間填充有關現有卷如何掛載的其他信息。一般來說,這使得卷清理更加穩健。如果在節點上啓用 NewVolumeMngeReconstuction,你將在 kubelet 啓動期間獲得已掛載卷的增強發現功能。

在 Kubenetes .25 之前,kubelet 在啓動期間發現已掛載的卷時使用了不同的默認行爲。如果你禁用此功能(默認情況下啓用),則選擇傳統的發現行爲。