Kubernetes 1.3已經發布,改進了集群上下擴展、跨集群聯合服務、本地開發工具,支持CoreOS的rkt容器格式,為支持新興的OCI鏡像格式和CNI網絡標準奠定了基礎,并包含尚處于alpha階段的“PetSet”特性,為實現有狀態應用程序提供支持。
據Kubernetes官方博客介紹,該版本包含的特性主要是為了實現兩個用戶愿望:一個是跨集群、區域和云邊界部署服務;另一個是在容器中運行更為多樣化的工作負載,包括有狀態服務。為此,Kubernetes 1.3有能力在多個公有云和本地私有云及數據中心之間架起橋梁,而且還集成了有狀態服務的alpha支持,比如鍵-值存儲和數據庫。
Kubernetes 1.3還包含若干其他新特性。
提升規模和自動化——允許用戶根據應用程序需求自動向上和向下擴展他們的服務。Kubernetes 1.3簡化了集群的自動向上和向下擴展,并且將每個集群的最大節點數量提升了到了原來的兩倍。 跨集群聯合服務——服務可以跨一個或多個(可能是遠程的)集群,并且集群內外采用了一致的訪問方式。據Kubernetes官方博客介紹,跨集群的服務有“更高的可用性,提供了地理分布,使混合云和多云場景成為可能”。Kubernetes 1.3引入了跨集群的服務發現,讓容器和外部客戶端可以采用一致的方法確定服務,不管它們是部分地運行在其他集群中,還是完全地運行在其他集群中。 有狀態應用程序的alpha支持——受“寵物vs牛”這個類比的啟發,Kubernetes API新增了一個“PetSet”對象。借助以下新特性,它讓操作者可以將應用程序視為寵物:多次重啟也不會變化的永久性主機名; 自動為每個容器配置永久性磁盤,可以在容器生命周期結束后繼續存在; 組內唯一標識,允許群集和群首選舉; 初始化容器,對啟動集群應用程序至關重要。簡化本地開發——Kubernetes 1.3引入了Minikube,只要一條命令,開發人員就可以在筆記本上啟動一個本地Kubernetes集群,而且與一個完整Kubernetes集群的API兼容。運行Minikube需要使用一個虛擬機,比如VirtualBox、VMware Fusion或KVM。相應地,由于使用VM對某些開發人員來說可能是一種限制,Mike Metral創建了nanokube。這是一個有著類似目標的開源項目。借助該項目,只需要在本地安裝Docker,就可以運行一個完整的Kubernetes集群。 支持rkt容器鏡像和OCI&CNI容器標準——Kubernetes 1.3為新興的標準提供了原生支持,比如容器網絡接口(CNI),并且為支持“開發容器計劃(OCI)”打下了基礎,該計劃尚在審批中。CoreOS的rkt已經作為Kubernetes節點中一種可選的容器運行時引入,優先集成了rkt和kubelet。 更新Kubernetes儀表板UI——開發人員現在可以使用Kubernetes開源儀表板完成絕大多數同集群的交互,可以不必使用CLI。更新后的UI讓開發人員可以控制、編輯和創建所有工作負載資源(包括部署和PetSets)。7月還見證了其他容器編排平臺的里程碑發布,包括:Mesos 1.0提供了新的聯合HTTP API、標準統一的容器化(包括支持運行Docker和rkt格式的容器,而且不需要相應的原生運行時)、CNI網絡支持、經過改進的安全性和新增的外部存儲支持。Docker 1.12正式版發布,Docker Engine現在對Docker Swarm ‘mode’提供了開箱即用的集成(InfoQ之前有篇文章報道過Swarm mode中的新特性)。
Battery Ventures技術專家Adrian Cockcroft在Twitter上表示,多個容器編排平臺,如Mesos、Swarm和Kubernetes,似乎都趨向一個共同的特性集,并提出了“最終的差異化在哪里”的疑問。這條推文的回復里有一些激烈的爭論,最主要的評論來自谷歌云平臺(Kubernetes的創建者)的“員工開發大使(Staff Developer Advocate)”Kelsey Hightower,他認為,從社區的角度來看,“人們只是想要一些可以工作的東西”,并指出,當編排平臺真正變得商業化以后,“人們會根據人的因素,如客戶服務,選擇產品”。
Get.k8s.io和Kubernetes Github開源庫均提供了Kubernetes 1.3的下載。Kubernetes的官方博客表示,Kubernetes是一個開放式構建的社區項目,他們對所有的貢獻者表示了感謝,其中,相關的GitHub庫現在已經有843名不同的貢獻者。
查看英文原文:Kubernetes 1.3 Released with Cross-Cluster Federation and Alpha Support for Stateful Services