2020 年Kubernetes 1.18 版本發佈,核心優化

前言

Kubernetes 1.18 發佈了,這是 2020 年首次版本發佈。

此版本包含 38 項功能增強,其中 15 項為穩定版功能、11 項 beta 功能以及 12 項 alpha 版功能。

Kubernetes (通常稱為 K8s) 是來自 Google 雲平臺的開源容器集群管理系統,用於自動部署、擴展和管理容器化(containerized)應用程序。該系統基於 Docker 構建一個容器的調度服務。

Kubernetes 可以自動在一個容器集群中選擇一個工作容器供使用。其核心概念是 Container Pod。詳細的設計思路請參考這裡。

Kubernetes 由 Google 設計並捐贈給 Cloud Native Computing Foundation 使用。它旨在提供“跨主機集群的自動部署、擴展以及運行應用程序容器的平臺”。它支持一系列容器工具,包括 Docker 等。


更新內容


1、Kubernetes 拓撲管理器 beta

拓撲管理器的作用是讓 CPU 與其它設備(例如 SR-IOV-VF)實現 NUMA 對齊,進而讓工作負載運行在優化環境中以降低延遲。在拓撲管理器推出之前,CPU 與設備管理器只能彼此獨立地做出資源分配決策。此版本拓撲管理器已經發展到 beta 版本。

2、Serverside Apply beta 2

beta 2 版本將跟蹤並管理所有新 Kubernetes 對象的字段變更,確保用戶及時瞭解哪些資源在何時進行過更改。

3、使用 IngressClass 擴展 Ingress 並替換不推薦使用的註解

此版本 Ingress 有兩個重要的附加功能:一個新的 pathType 字段和一個新的 IngressClass 資源。pathType 字段允許指定如何匹配路徑。除了默認的 ImplementationSpecific 類型,還有新的 Exact 和 Prefix 路徑類型。

IngressClass 資源用於描述 Kubernetes 集群內的 Ingress 類型。此新資源和字段替換了不推薦使用的 kubernetes.io/ingress.class 註解。

4、SIG-CLI 引入 kubectl alpha debug 命令

SIG-CLI到底需不需要調試功能,一直是個頗具爭議的問題。隨著即席容器[1]的發展,這個問題變得愈發尖銳,而我們也開始考慮利用基於kubectl exec構建的工具為開發人員提供支持。此次新增的kubectl debug命令(目前為alpha版)允許開發人員在集群當中輕鬆調試自己的Pod,進而獲得巨大的便利性增益。這項命令將創建一個即席容器,容器運行在待檢查Pod旁邊,同時附帶有控制檯以執行交互式故障排查。

SIG-CLI 調試程序的能力變得越來越必要,基於 kubectl exec,增加了 kubectl alpha debug 命令(目前為 alpha 階段),使開發人員可以輕鬆地在集群中調試其 Pod。此命令允許創建一個臨時容器,該容器在要檢查的 Pod 旁邊運行,並且還附加到控制檯以進行交互式故障排除。

5、Windows CSI 支持

帶來了用於 Windows 的 CSI 代理,目前處於 alpha 版。CSI 代理使非特權的容器能夠在 Windows 上執行特權存儲操作(預先批准)。現在可以利用 CSI 代理在 Windows 中支持 CSI 驅動。

如何入門?

1、知識圖譜


2、鏈接和備註












容器的優點

敏捷地應用創建和部署:相較於VM增加了容器鏡像創建的效率。持續開發,集成和部署:通過快速的回滾操作(因為鏡像的穩定性)提供可靠的經常的容器鏡像的創建和部署。
開發和運行相分離:在build或者release 的階段(而非部署階段),使得應用和基礎設施解耦。開發,測試和生產環境的持續:在筆記本上可以像在雲中一樣的運行。雲和操作系統版本的可移植性:可以運行在 Ubuntu, RHEL, CoreOS, on-prem, Google Container Engine,和任何其它的運行環境中。應用為中心的管理:提升了虛擬化的層次,從虛擬硬件上運行操作系統的抽象到操作系統中應用邏輯資源的虛擬。松耦合,分佈式,彈性,自由的微服務:應用被打散成更小的,獨立的小碎片並且可以動態地部署和管理——而非是一個在用途單一的龐大機器中運行的一個臃腫堆棧中。資源隔離:可以預測的應用性能。