歡迎光臨
每天分享高質量文章

Kubernetes 1.14發佈:對Windows節點的生產級支持、Kubectl更新與持久本地捲通用版本已全面到來

今天,我們高興地宣佈Kubernetes 1.14版本的正式亮相,這亦是我們在2019年當中進行的首次發佈!
Kubernetes 1.14版本由31項增強功能組成,具體包括:10項穩定版功能,12項beta測試功能,以及7項全新功能。此次版本的核心主題在於可擴展性,以及在Kubernetes上支持更多工作負載。本輪共有三項主要功能迎來通用版本,另有一項重要安全功能步入beta測試階段。
與此前發佈的各個Kubernetes版本相比,這一次進入穩定階段的增強功能數量達到了歷史新高。對於用戶與運營人員而言,這無疑是我們踐行承諾、支持使用期望的一大重要里程碑。此外,1.14版本當中還迎來了多項值得關註的Pod與RBAC增強功能,我們將在後文中“其它值得關註的功能”章節中對此做出討論。
下麵,讓我們深入瞭解此版本中的各大主要功能:


對Windows節點的生產級支持

在此之前,Kubernetes當中的Windows節點一直處於beta測試階段,旨在允許眾多用戶以實驗性方式體驗Kubernetes for Windows容器的實際價值。如今,Kubernetes開始正式支持將Windows節點添加為工作節點並部署Windows容器,從而確保龐大的Windows應用程式生態系統得以利用我們平臺提供的強大功能。這意味著以往在Windows應用程式與Linux應用程式層面投入大量資金的企業不必再尋求獨立的協調器管理自身工作負載,而能夠不再受到具體操作系統型別的影響提升整體部署的運營效率。
本次Kubernetes為Windows容器帶來的核心功能特性包括:
  • 支持將Windows Server 2019引入工作節點與容器

  • 支持採用Azure-CNI、 OVN- Kubernetes以及Flannel的樹外網絡

  • 改進了對Pod、服務型別、工作負載控制器以及指標/配額的支持能力,以便與Linux容器的自有功能實現更為緊密的匹配

值得關註的Kubectl更新

新的Kubectl說明文件與徽標
Kubectl的說明文件經過完全重寫,其重點在於利用宣告性Resource Config實現資源管理。這份文件目前以獨立站點的形式發佈,採用電子書格式,併在k8s.io文件中提供對應鏈接(具體請訪問 https://kubectl.docs.kubernetes.io)。
您也將在新的文件站點中看到新的kubectl徽標與吉祥物(音為kubee-cuddle)設計外觀。
Kustomize集成
Kustomize的宣告性Resource Config創作功能現在可以通過-k標記(適用於apply及get等命令)以及Kustomize子命令在kubectl中獲取。Kustomize旨在幫助用戶創作及復用包含Kubernetes各原生概念的Resource Config。用戶現在能夠利用kubectl apply -k dir/將擁有kustomization.yaml的目錄適用於集群。此外,用戶也可以將定製化Resource Config發送至stdout,而無需通過kubectl kustomize dir/加以應用。這些新的功能被記錄在新的說明文件當中,具體請參閱:https://kubect.docs.kubernetes.io。
我們還將繼續通過Kubernetes的kustomize repo對Kustomize子命令進行開發。最新的Kustomize功能將以獨立的Kustomize二進制檔案(發佈至kustomize repo)的形式更為頻率地發佈,且在每一輪Kubernetes發佈之前在kubectl中得以更新。
kubectl插件機制逐步趨於穩定
kubectl插件機制允許開發人員將自己的定製化kubectl子命令以獨立二進制檔案的形式發佈出來。這些成果將可幫助kubectl與附加porcelain(例如添加set-ns命令)實現更多新的高級功能。
各插件必須採用kubectl-作為命名前綴,並儲存在用戶的$PATH當中。在通用版本中,插件機制已經迎來大幅簡化,目前其整體效果類似於Git插件系統。
持久本地捲迎來通用版本

這項功能正逐漸穩定,允許用戶將本地連接儲存作為持久捲來源。考慮到實際性能與成本要求,分佈式檔案系統與資料庫往往成為持久性本地儲存的主要用例。與雲服務供應商相比較,本地SSD一般可提供超越遠程磁盤的性能水平。而與裸機方案相比,除了性能之外,本地儲存通常成本更低,亦是配置分佈式檔案系統的一項必要條件。
PID限制正轉向beta測試階段

行程ID(簡稱PID)屬於Linux主機上的一種基本資源。毫無疑問,我們無法接受在未出現任何其它資源限制的情況下,因為行程ID不足而影響任務運行,甚至導致主機穩定性降低。管理員需要相關機制以確保用戶Pod中的PID不會被耗盡,否則各類主機守護程式(包括運行時與kubelet等)都將受到影響。此外,管理員還需要確保在各Pod之間限制PID,從而保證其不致影響到運行在節點上的其它工作負載。
在目前的beta功能中,管理員可以對每個Pod中的PID數量進行預定義,從而實現Pod與Pod間的PID隔離。此外,管理員還可以通過node allocatable為用戶Pod保留大量可供分配的PID,即以alpha測試功能的方式實現類似的Pod與Pod間PID隔離。我們計劃在下一版本當中將此項功能轉為beta測試版。


更多其它值得關註的功能

Pod優先級與搶占機制使得Kubernetes調度程式能夠首先調度更為重要的Pod,從而在集群資源不足時刪除不太重要的Pod,最終為意義更重大的Pod保留運行空間。具體重要性由優先級機制負責指定。
Pod Readiness Gates能夠為Pod的就緒情況提供外部反饋擴展點。
強化預設的RBAC的clusterrolebingdings發現能力,其移除了原本預設可通過未授權訪問的API集發現功能,旨在提升CRD隱私性以及預設集群的總體安全水平。


推出時間

目前Kubernetes 1.14已可通過GitHub[1]進行下載。要開始使用Kubernetes,我們建議您首先查看各交互式教程[2]。您也可以利用kubeadm[3]輕鬆安裝本次發佈的1.14版本。
相關鏈接:
  • https://github.com/kubernetes/kubernetes/releases/tag/v1.14.0

  • https://kubernetes.io/docs/tutorials/

  • https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

原文鏈接:https://kubernetes.io/blog/2019/03/25/kubernetes-1-14-release-announcement/

Kubernetes入門與進階實戰培訓

Kubernetes入門與進階實戰培訓將於2019年4月19日在北京開課,3天時間帶你系統學習Kubernetes,學習效果不好可以繼續學習。本次培訓包括:Docker基礎、容器技術、Docker鏡像、資料共享與持久化、Docker三駕馬車、Docker實踐、Kubernetes基礎、Pod基礎與進階、常用物件操作、服務發現、Helm、Kubernetes核心組件原理分析、Kubernetes服務質量保證、調度詳解與應用場景、網絡、基於Kubernetes的CI/CD、基於Kubernetes的配置管理等,點擊下麵圖片查看具體詳情。