1. 程式人生 > >Kubernetes1.4版本介紹_Kubernetes中文社群

Kubernetes1.4版本介紹_Kubernetes中文社群

Kubernetes1.4主要新特性:

  • 建立kubernetes叢集只需要兩條命令
  • 增強了對有狀態應用的支援
  • 增加了叢集聯盟API
  • 支援容器安全控制
  • 增強包括排程在內的Kubernetes基礎架構
  • 通過Kubernetes DashBoard UI已經可以實現90%的命令列操作

20161012104929

兩條命令建立叢集

為了啟動Kubernetes,使用者需要提供計算節點、安裝Kubernetes和啟動叢集。使用者都渴望一種簡易、可移植的方法,在任何雲(公有云、私有云或裸金屬)上部署Kubernetes叢集。為此:

  • Kubernetes 1.4引入了kubeadm命令,它將叢集啟動簡化為兩條命令,不需要再使用複雜的kube-up指令碼。一旦Kubernetes被安裝,kubeadm init啟動master節點,而kubeadm join可以將節點併入叢集。
  • 安裝過程的流水線化,通過打包Kubernetes和它的依賴,對於Linux主要發行版本,包括Ubuntu Xenial和Red Hat的使用者可以使用熟悉的apt-get和yum來安裝Kubernetes。
  • 附加部署,例如對於一個overlay網路, 使用daemonset方式可以將操作簡化為一條命令。
  • 簡化這個使用的是新的認證API,它使用kubelet TLS bootstrap,和新的API發現。

增強了對有狀態應用的支援

當雲原生應用被構建並執行在容器裡時,更普遍的的批處理、資料庫和KV儲存等有狀態的應用需要額外的特性來相容容器。在Kubernetes 1.4裡,我們引入了一系列特性來簡化這些應用的部署,包括:

  • ScheduledJob alpha版,使用者可以按正常間隔執行批處理任務。
  • Init-Container beta版,強調了在啟動主容器前執行一個或多個容器,例如啟動資料庫或多層應用前的序列化依賴
  • 動態PVC升級到beta版。這個特性允許叢集管理員暴露多個儲存提供者,並且允許使用者通過一個新的儲存API來選擇使用哪個儲存提供者。
  • Curated和預測試Helm Charts,對於公共的有狀態應用,例如MariaDB、MySQL和Jenkins,使用Helm Package Manager版本2的一條命令就可使用Curated和Helm Charts。

增加了叢集聯盟API

我們全球的使用者共同希望的是在劃分了的區域和雲上能夠構建應用,為此我們提供了:

  • 聯邦ReplicaSets Beta版,副本集現在可以在叢集中的全部或者部分,跨區域、跨雲建立副本。整個聯邦副本統計和相對叢集權重/副本統計會被持續地保持一致,通過聯邦ReplicaSet控制器來保證你在每個區域/雲上都擁有這些Pods。
  • 聯邦Services beta版,並且secrets,events和namespaces也同樣被新增到聯邦API中。
  • 聯邦Ingress Alpha版,由GCP啟動,使用者可以建立一個L7的全域性負載均衡器,通過VIP負載部署在GCP中跨叢集聯邦的服務。通過GCP的聯邦Ingress,外部客戶端通過一個單獨IP地址訪問,請求會被髮送至聯邦中最近的可用叢集中。

支援容器安全控制

多租戶叢集的管理員需要能夠提供不同的租戶、基礎設施元件和系統的終端使用者之間的許可權集合。因而提供了下面的支援:

  • Pod安全策略,它是一種新的物件,使叢集管理員來控制Pod/Containers安全上下文的建立和驗證,管理員可以聯合service accounts,groups和擁有一些限制的使用者來定義一個安全上下文。
  • 添加了AppArmor支援,使管理員能夠執行一個更安全的部署,提供了更好的審計和系統監控。使用者可以通過在AppArmor的配置檔案中設定一個簡單的欄位就可完成容器的配置。

增強包括排程在內的Kubernetes基礎架構

我們持續的為基於Kubernetes的使用者和生態圈增加排程器、儲存和客戶端的能力。包括:

  • Scheduler,引入了pod間親緣性和反親緣性 Alpha版本,使用者能夠定製Kubernetes如何組合或分配Pods,還有,叢集附加元件的優先排程能力,例如DNS、Heapster和Kube Dashboard。
  • Disruption SLOs,Pod中斷預算被引入來限制在任意時刻被叢集刪除pod帶來的影響,例如節點升級。
  • 儲存,新的卷外掛,適用於Quobyte和Azure Data Disk的被新增。
  • 客戶端:Swagger 2.0支援新增,支援非Go的客戶端。

通過Kubernetes DashBoard UI已經可以實現90%的命令列操作

最後,一個匹配了90%的Dashboard UI可以提供方便的管理。

對於一個完全的更新列表,我們可以參見Github上的release note。除了Kubernetes開發帶來的深刻印象外,更重要的是社群的貢獻者。不僅對於1.4版本來說十分重要,在以後會更加重要。