1. 程式人生 > >Kubernetes 1.8火熱出爐:穩定性、安全性與儲存支援能力全面提升

Kubernetes 1.8火熱出爐:穩定性、安全性與儲存支援能力全面提升

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

週三,Kubernetes 1.8釋出了,包含了一些圍繞著穩定性、簡潔性和安全性的更新。

“這次釋出沒有包含各種眼花繚亂的新特性,而重點在對已有特性的增強”,來自谷歌的Kubernetes產品經理Aparna Sinha說。Google起初將Kubernetes作為開源專案釋出,現在程式碼庫則由CNCF(雲原生計算基金會)管理。

Kubernetes是一個開源的容器編排引擎,預定每三個月釋出一次。最新版本的貢獻者中,既包括個人開發者,也包括來自Avi Networks、CoreOS、Google、Heptio、華為、微軟和三星SDS等公司的員工。

根據一家分析公司Remonk的分析報告,全球100強公司中有約54%的公司正在以某種方式使用Kubernetes。據一位CNCF的開發大使和Kuberentes 1.8的功能釋出領頭人Ihor Dvoretskyi 說,市場的主要需求點在於穩定性、簡潔性和安全性。

在新的釋出中:

安全性發面:基於角色的訪問控制(RBAC),這是一個在1.6版本中為beta狀態現已穩定的特性。它能允許叢集的管理者動態地定義角色並通過Kubernetes API來施加訪問的策略。CoreOS的Eric Chiang在一篇部落格(https://coreos.com/blog/kubernetes-1.8-announcement)中提到,它在GA的過程中,並沒有改動核心型別的API。另外的與RBAC相關的特性也正在開發中,包括一些新的決定使用者在系統中能執行哪些動作的API。

通過網路策略過濾下行流量現在處於Beta狀態,這是對已有的Pod上傳流量過濾特性的增強。Kubelet節點中agent的TLS證書輪換在最新版本中處於beta狀態。

穩定性方面:Pod的橫向自動伸縮自定義特性處於beta狀態。Sinha解釋說,“在過去,Kubernetes允許基於CPU利用率來進行向上或者向下伸縮,但是開發者也想能夠根據其他型別的指標來伸縮應用”。

提供這種特性需要依賴於資源指標API和自定義指標API的穩定性。此外,新打造的度量伺服器擁有更高可讀性更加易懂的錯誤輸出,能幫助在問題發生時指示出錯原因和位置。

同時,Workload API處於beta狀態。他們提供了必要的管理Kuberentes上部署的應用的抽象。Chiang解釋了四種類型:

  • DaemonSet用於管理在所有節點、或者是基於使用者指定條件的部分節點上執行Pod的複雜度。

  • ReplicaSet提供了一個基礎的高可用原語,來保證指定數量的Pod副本處於執行狀態。

  • Deployment controller使得可以對Pod和ReplicaSet進行宣告式更新,並提供關鍵功能如金絲雀更新和滾動更新。

  • StatefulSet是一個用來支援需要持久化能力的Pod的機制,它通過給它們賦予一個唯一標識來確保滿足排序和持久卷訪問保證。

Chiang引述了Bootkube,這個專案能啟動高可用自託管叢集,CoreOS在該專案中使用了Workload API。

對於Kubernetes 1.8,這些API已經從theextensions/v1beta1 API組移到了dedicatedapps/v1beta2 API組,這為workload在未來的版本中被提升進GA奠定了基礎。

儲存方面:現在能對臨時儲存設定限定條件,可以指定掛載選項,同時也覆蓋了更多與儲存使用相關的指標。同時引入了flex驅動的部署,該特性現在處於alpha狀態,能允許原始碼樹外(out-of-tree)的卷驅動。

Kubernetes的儲存運作中包含一個儲存驅動和一個儲存外掛框架。在以前,這些驅動必須在Kubernetes的原始碼內編寫並編譯,他們被稱作是entry volume驅動。解耦之後,卷驅動可以在原始碼樹外進行編寫,Sinha說。

簡潔性方面:團隊一年前就通過釋出kubeadm致力讓安裝更加容易。只需兩行命令就能架設好一個Kuebernetes叢集。現在kubeadm命令加入了叢集升級的支援。

除此之外,Sinha說,很多使用者在Kubernetes上執行機器學習、大資料和其他高階計算負載。對他們來說,beta版的cron job會是一個好訊息。在執行一些特別的作業中,擁有排程和計時能力。Cron已經在Swarm中支援,這是一個Docker自有的編排引擎。

同時,團隊已經為支援Spark資料分析框架努力了一年多。現在Kubernetes可以原生地支援Spark。

Custom Resource Definition(CRD,自定義資源定義)特性在1.8版本中仍然處於beta版。CRD能允許對Kubernetes API進行擴充套件,並提供核心中沒有的特性,但在使用者看來就像Kubernetes的頭等公民API一樣。這種轉變需要使用者將Third Party Resources整合到CRD。在1.8中,CRD添加了schema驗證特性,能讓客戶端有更加健壯的體驗。這次更新能讓CRD定義資源在服務端的驗證,而不是目前這種客戶端使用的沒有schema的“值包(bag of values)”。

未來有何期待

640?wx_fmt=png

Sinha說,Alpha的特效能預示未來發展的方向。他們將集中精力於讓一切更加穩定,這些包括:

優先順序和搶佔:你能指定一個特定的Pod優先順序高於其他Pod,這意味著在叢集中資源不足時較低優先順序的Pod可以被犧牲。

節點的自動汙點標記:Taints and tolerations(汙點和包容)是1.6引入的特性。它有很多的使用方式。例如你可以將一個節點專門供某一個特定型別的應用使用,然後說這個節點不能用於排程。在這次釋出中,Kuberetes能自動判斷,相當現於它會說,“OK,這個節點是有汙點的(tainted),因為它好像已經掛掉或者出了什麼錯或者發生了其他什麼狀況;它不應該用於排程”。

卷快照更新:在儲存端,你已經能指定永續性卷的大小,但是現在新增了調整大小的特性。

擴充套件kubectl、命令列介面的能力,來自定義合叢集的互動也是1.8版本中的新功能。

原文連結:https://thenewstack.io/kubernetes-1-8-arrives-improvements-simplicity-stability-security-storage-improvements/

Spring Cloud實戰訓練營

640?wx_fmt=png

本次培訓內容包括:微服務架構及概述、微服務架構專案實戰目標、Spring Boot概述、Spring Cloud簡介與入門、Eureka、Ribbon、Feign、Hystrix、Zuul、Spring Cloud Config、Spring Cloud Sleuth等,點選識別下方二維碼加微信好友瞭解具體培訓內容

640?wx_fmt=jpeg

點選閱讀原文連結即可報名