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

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的配置管理等,點選下麵圖片檢視具體詳情。