Categories
程式開發

Kubernetes v1.18 重磅發布 | 新版本五大核心主體 & 主要變化解讀


K8sMeetup 中國社區第一時間整理了 v1.18 的亮點內容,為大家詳細介紹此版本的主要功能。

美國時間 3 月 25 日,Kubernetes v1.18 正式發布,這是 2020 年的第一個新版本。

Kubernetes v1.18 包含 38 個增強功能:其中 15 個增強功能已趨於穩定,11 個 beta,12 個進入 alpha。

根據博客介紹,Kubernetes v1.18 是一個“完美”的版本。為了改善用戶體驗, 開發團隊圍繞 beta 和穩定功能改進進行了大量工作,同時也不忘開發更多新功能進一步豐富用戶體驗。

在這個版本中,我們可以發現進入 alpha、beta 和穩定的增強功能數量非常平均,這體現了社區在提高 Kubernetes 可靠性以及繼續擴展現有功能方面所做的巨大努力。

Major Themes

新版本主要圍繞以下主題:

Kubernetes 拓撲管理器進入 beta

在 1.18 版本中,可讓 Service 實現就近轉發,而不是所有 Endpoints 等概率轉發的 Kubernetes 拓撲管理器已經正式進入 beta。

在引入拓撲管理器之前,CPU 和設備管理器通常會做出彼此獨立的資源分配決策,這可能會出現分配不合理的情況,進而導致關鍵應用程序因網絡延時增加而出現性能下降。現在,拓撲管理器支持 CPU 和設備(如 SR-IOV VFs)之間的 NUMA 對齊,使工作負載能在專門針對低延遲進行了優化的環境中運行。

Serverside Apply 二度 beta

早在1.16 版本中,Server-side Apply 就已經升級為beta,當開發人員kubectl apply 時,它可以確保不同組件更安全、更可靠地同時更改同一資源,避免因不同個體之間互相篡改字段導致集群出故障。

在 1.18 版本中,這一功能再次進入 beta,這次它可以跟踪和管理所有新 Kubernetes 對象的字段更改,方便開發者知道什麼更改了資源以及何時發生了更改,方便更好地管控。

有關 Ingress 的改動

在 Kubernetes v1.18 中,Ingress 有兩個重要補充:一個新的 pathType 字段和一個新的 IngressClass 資源。

其中,pathType 字段允許指定匹配路徑的方式,除了默認的 ImplementationSpecific 類型之外,還有新的 Exact 路徑類型和 Prefix 路徑類型。

IngressClass 資源則用於描述 Kubernetes 集群中的 Ingress 類型。通過使用一個新的 IngressClassName 字段,Ingress 可以指定與它們相關聯的類。當前上述新資源和字段已替換 kubernetes.io/ingress.class 註釋。

SIG-CLI 迎來 kubectl debug 命令

在相當長的一段時間內,SIG-CLI 一直在爭論是否需要調試實用程序。隨著短生命週期容器(ephemeral containers)的發展,在 1.18 版本中,開發者現在可以通過使用構建在 kubectl exec 上的工具實現這一想法。

新版本引入 kubectl debug(alpha),它允許開發人員輕鬆地在集群中調試 Pod。同時,該命令也允許創建一個短生命週期容器,它在要檢查的 Pod 旁運行,還可以附到控制台進行交互式故障排除。

引入 Windows CSI 支持(alpha)

隨著 Kubernetes v1.18 的發布,Windows CSI 代理的 alpha 版本也即將發布。 CSI 代理允許非特權(預先批准的)容器在 Windows 上執行特權存儲操作。現在,用 CSI 代理在 Windows 中支持 CSI 驅動程序已經可行。

其他重要更新

以下是 1.18 版本中其他值得關注的變化。

以下特性已步入穩定

  • 基於污點的驅逐

  • kubectl diff

  • CSI 塊存儲支持

  • API Server dry run

  • 在 CSI call 中傳遞 Pod 信息

  • 支持 Out-of-Tree vSphere 雲提供商

  • 支持針對 Windows 工作負載的 GMSA

  • 跳過 non-attachable CSI 的 attach

  • PVC 克隆

  • 將 kubectl 軟件包代碼移至暫存

  • Windows 的 RunAsUserName

  • 適用於服務和端點的 AppProtocol

  • 擴展 Hugepage 功能

  • 客戶端簽名重構,以標準化選項和上下文處理

  • 節點本地 DNS 緩存

其他主要變化

  • #752 EndpointSlice API:新的 Endpoint API,以最終替代當前的 core/v1 Endpoints API;

  • #1020 將 kubectl 軟件包代碼移至暫存:最終目標是將 kubectl 拆分到一個單獨的存儲庫中;

  • #1513 CertificateSigningRequest API:alpha 發布目標 v1.4,beta 版本目標 v1.6,穩定發布目標 v1.19;

  • #1539 擴展 Hugepage 功能:相關增強功能包括隔離 Hugepage 容器和支持多種大小的 Hugepage;

  • #1601 客戶端簽名重構,以標準化選項和上下文處理:向客戶端界面添加上下文和缺失的選項。

發布 logo

此次,開發團隊也發布了一個新版本 release logo,它以 CERN 的大型強子對撞機(LHC)為主題。
Kubernetes v1.18 重磅發布 | 新版本五大核心主體 & 主要變化解讀 1

LHC 是世界上最大、功能最強大的粒子加速器,它是世界各地科學家合作的結果,旨在促進科學的發展。與之類似,Kubernetes 作為一個備受矚目的開源項目,聚集了來自數百個組織的數千名貢獻者——所有人都朝著全方面改進云計算這個相同的目標努力!

該 logo 名為“A Quarky”,意在提醒每位開源貢獻者和開發者,非常規的想法也可以帶來巨大變化,對開放性保持開放態度將有助於我們進行創新。

小結

Kubernetes 是當前最大的開源軟件項目之一,從數字上看,Kubernetes v1.18 共計收到 3412 次 commits,相較 Kubernetes v1.17 的 3289 次有所提升。如果用 NLP(自然語言處理)對這些 commits 的關鍵信息進行統計,可以發現 deprecations、metrics、node 和 kubectl 是這個版本的主要關注點。

Kubernetes v1.18 重磅發布 | 新版本五大核心主體 & 主要變化解讀 2

本文只簡單介紹了 Kubernetes v1.18 中的一些重要增強功能,以及企業用戶和個人開發者可能會比較關注的新功能。關於新版本的更多內容,請查看官方文檔。

本文轉載自才雲 Caicloud公眾號。

原文鏈接:https://mp.weixin.qq.com/s/ANYrS8mnP64l_xp6WLHUKw