今天,星期三,
用於準備本資料的資訊取自
節點數
K8s 叢集節點(Kubelet)方面出現了真正大量值得注意的創新(處於 alpha 版本狀態)。
首先,所謂的 «kubectl debug
,本質上類似於 kubectl exec
:僅代替在容器中運行進程(如 exec
)它在 pod 中啟動一個容器。 例如,此指令會將新容器連接到 pod:
kubectl debug -c debug-shell --image=debian target-pod -- bash
有關臨時容器(及其使用範例)的詳細資訊可以在
NB:從本質上講,甚至從名稱上看,該功能類似於現有的插件
另一項創新—— PodOverhead
PodSpec
新增字段 Overhead *ResourceList
(與中的數據比較 RuntimeClass
,如果使用的話)。
另一個值得注意的創新是 節點拓撲管理器 (節點拓撲管理器),旨在統一微調 Kubernetes 中各個元件的硬體資源分配的方法。 這項措施是由各種現代系統(來自電信、機器學習、金融服務等領域)對高效能並行運算和最大限度地減少營運執行延遲的日益增長的需求所推動的,為此它們使用先進的CPU和硬體加速能力。 到目前為止,Kubernetes 中的此類最佳化已經透過不同的元件(CPU 管理器、裝置管理員、CNI)實現,現在它們將添加一個單一的內部接口,統一方法並簡化新的類似(所謂的拓撲)的連接。感知 - Kubelet 端的組件。 詳細資訊 - 在
拓樸管理器元件圖
下一個功能 - 在容器運作時檢查容器 (StartupProbeEnabled
) 取消(或更確切地說,推遲)任何其他檢查的效果,直到 pod 完成運行為止。 因此,該功能最初被稱為
此外,對 RuntimeClass 的改進在測試版狀態中立即可用,增加了對「異質叢集」的支援。 C
Сеть
Kubernetes 1.16 中首次(alpha 版本)出現的兩個重要網路功能是:
-
支持 雙網路堆疊 - IPv4/IPv6 - 及其在 Pod、節點、服務層面的相應「理解」。 它包括 Pod 之間、從 Pod 到外部服務的 IPv4 到 IPv4 和 IPv6 到 IPv6 互通性、參考實作(在 Bridge CNI、PTP CNI 和 Host-Local IPAM 插件內),以及與運行的 Kubernetes 叢集反向相容僅限IPv4 或IPv6。 實施細節見韓國環保局 .在 pod 清單中顯示兩種類型(IPv4 和 IPv6)的 IP 位址的範例:
kube-master# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE nginx-controller 1/1 Running 0 20m fd00:db8:1::2,192.168.1.3 kube-minion-1 kube-master#
- 端點的新 API -
端點切片 API 。 它解決了現有 Endpoint API 的效能/可擴充性問題,這些問題影響控制平面中的各種元件(apiserver、etcd、endpoints-controller、kube-proxy)。 新的 API 將添加到 Discovery API 群組中,並且能夠為由數千個節點組成的叢集中每個服務上的數萬個後端端點提供服務。 為此,每個服務都映射到 N 個對象EndpointSlice
,每個端點預設不超過100個(該值是可配置的)。 EndpointSlice API 也將為其未來的發展提供機會:支援每個 pod 的多個 IP 位址、端點的新狀態(不僅Ready
иNotReady
),端點的動態子集化。
上一版本提供的版本已達測試版 service.kubernetes.io/load-balancer-cleanup
並附加到每個服務的類型 LoadBalancer
。 刪除此類服務時,它會阻止實際刪除資源,直到完成所有相關平衡器資源的「清理」。
API機械
真正的「穩定里程碑」是在 Kubernetes API 伺服器及其互動領域。 這很大程度上歸功於 轉入穩定狀態者,無需特殊介紹
-
“子資源” 同/status
и/scale
對於自訂資源; -
轉型 CRD 版本,基於外部 webhook; -
最近提出的 (在 K8s 1.15 中)預設值 (預設) 和自動欄位移除 (修剪) 對於自訂資源; -
機會 使用 OpenAPI v3 架構建立和發佈用於在伺服器端驗證 CRD 資源的 OpenAPI 文件。
Kubernetes 管理員早已熟悉的另一個機制:
alpha 版本中唯一重大的創新是 SelfLink
— 表示指定物件並作為其一部分的特殊 URI ObjectMeta
и ListMeta
(即 Kubernetes 中任何物件的一部分)。 他們為什麼要放棄它? 以簡單的方式激勵 SelfLink
將在 Kubernetes 版本 1.20 和最終版本 1.21 中實作。
數據存儲
與先前的版本一樣,儲存區域的主要工作是在該區域中觀察到的
- 第一次(alpha 版本)
出現 Windows 工作節點的 CSI 插件支援:目前的儲存運作方式也會取代 Kubernetes 核心中的樹內插件和 Microsoft 基於 Powershell 的 FlexVolume 外掛;
在 Kubernetes for Windows 中實作 CSI 插件的方案 - 機會
調整 CSI 卷大小 ,早在 K8s 1.12 就引入了,現已發展到 beta 版本; - 透過使用 CSI 建立本地臨時磁碟區的能力,實現了類似的「升級」(從 alpha 到 beta)(
CSI 內聯磁碟區支援 ).
在上一個版本的 Kubernetes 中引入 DataSource
建立新的 PVC)現在也已獲得測試狀態。
調度器
調度方面的兩個顯著變化(均為 alpha 版本):
-
- 機會 使用 Pod 而不是邏輯應用程式單元來「公平分配」負載 (如 Deployment 和 ReplicaSet)並調整此分佈(作為硬要求或軟條件,即優先權)。 該功能將擴展計劃中的 Pod 的現有分發功能,目前該功能受到選項的限制EvenPodsSpreading
PodAffinity
иPodAntiAffinity
,讓管理員在這方面有更精細的控制,這意味著更好的高可用性和優化的資源消耗。 詳細資訊 - 在韓國環保局 . - 使用 最佳適合政策 в RequestedToCapacityRatio 優先權函數 在 Pod 規劃期間,這將允許 申請
裝箱 (「打包在容器中」)適用於基本資源(處理器、記憶體)和擴充資源(例如 GPU)。 有關更多詳細信息,請參閱韓國環保局 .
調度 Pod:在使用最佳適配策略之前(直接透過預設排程器)及其使用(透過排程器擴充功能)
另外,
其他變化
另外,在 Kubernetes 1.16 版本中,您也可以注意到 倡議
此外,還可以注意到以下變化:
- Windows支援開發 с
外貌 適用於該作業系統的 Kubeadm 實用程式(alpha 版本),機會 RunAsUserName
對於 Windows 容器(alpha 版本),改進 群組託管服務帳戶 (gMSA) 支援最高測試版本,支持 掛載/附加 vSphere 磁碟區。 -
回收 API回應中的資料壓縮機制。 以前,HTTP 過濾器用於這些目的,這施加了許多限制,導致預設無法啟用它。 「透明請求壓縮」現在有效:客戶端發送Accept-Encoding: gzip
在標頭中,如果其大小超過 128 KB,它們會收到 GZIP 壓縮的響應。 Go 用戶端自動支援壓縮(發送所需的標頭),因此它們會立即註意到流量的減少。 (其他語言可能需要稍作修改。) -
成為可能 根據外部指標將 HPA 從零 Pod 擴展到零。 如果您基於物件/外部指標進行擴展,那麼當工作負載空閒時,您可以自動擴展到 0 個副本以節省資源。 對於工作執行緒請求 GPU 資源,並且不同類型的空閒工作執行緒的數量超過可用 GPU 數量的情況,此功能應該特別有用。 - 新客戶-
— 用於對物件的「通用」存取。 它旨在輕鬆檢索元資料(即小節k8s.io/client-go/metadata.Client
metadata
)從叢集資源中獲取並使用它們執行垃圾收集和配額操作。 - 建構 Kubernetes
現在你可以 沒有傳統(「內建」樹內)雲端提供者(alpha 版本)。 - 轉到 kubeadm 實用程序
添加 實驗性(alpha 版本)能夠在操作期間應用自訂補丁init
,join
иupgrade
。 了解有關如何使用該標誌的更多信息--experimental-kustomize
,參見韓國環保局 . - apiserver 的新端點 -
, - 允許您匯出有關其準備的資訊。 API 伺服器現在也有一個標誌readyz
--maximum-startup-sequence-duration
,允許您調節其重新啟動。 - 兩 Azure 的功能 宣布穩定:支持
可用區 (可用區)和跨資源組 (RG)。 此外,Azure 還添加了: - AWS 現在有
支持 適用於 Windows 上的 EBS 和最佳化 EC2 API 呼叫DescribeInstances
. - Kubeadm 現已獨立
遷移 升級CoreDNS版本時的CoreDNS配置。 - 二進位檔案 等 在對應的Docker映像中
已經完成了 world-executable,它允許您運行此映像而無需 root 權限。 另外,etcd 遷移鏡像停止 etcd2 版本支援。 - В
集群自動縮放器 1.16.0 改用 Distroless 作為基礎鏡像,提高了效能,並增加了新的雲端供應商(DigitalOcean、Magnum、Packet)。 - 使用/依賴軟體的更新:Go 1.12.9、etcd 3.3.15、CoreDNS 1.6.2。
聚苯乙烯
另請閱讀我們的博客:
- «
Kubernetes 1.15:主要創新概述 “; - «
Kubernetes 1.14:主要創新概述 “; - «
Kubernetes 1.13:主要創新概述 “; - «
Kubernetes 1.12:主要創新概述 “。
來源: www.habr.com