今天,我們宣布 Kubernetes1.6正式發(fā)布。在這次版本中,社區(qū)的重點(diǎn)落在集群運(yùn)行規(guī)模和集群運(yùn)行自動(dòng)化上,可以在幫助實(shí)現(xiàn)集群上給多個(gè)用戶部署多項(xiàng)工作的目標(biāo)。
Kubernetes 1.6版本目前集群上支持5000個(gè)節(jié)點(diǎn)。在我們的努力下,Dynamic Storage Provisioning 處于穩(wěn)定版本。
Role-based access control(RBAC)、kubefed、kubeadm 以及一些調(diào)度功能已經(jīng)開啟公測(cè)。我們?cè)?.6版本中添加了智能默認(rèn)值,以啟用自動(dòng)化功能即時(shí)可用。
Scale 和 Federation:大企業(yè)用戶目前正在尋找規(guī)模性能證明,而 Kubernetes 支持5000個(gè)節(jié)點(diǎn)(150000個(gè) pod)的 SLO 功能是企業(yè)喜聞樂見的。在 CoreOS 發(fā)布的 etcd v3版本的驅(qū)動(dòng)下,集群支持?jǐn)?shù)量總體上有了150%的增長(zhǎng)。這對(duì)于搜索、游戲類的公司部署應(yīng)用程序來說絕對(duì)是如虎添翼——他們可以使用的集群規(guī)模將更大。
對(duì)于用戶來說,他們想要進(jìn)行5000個(gè)節(jié)點(diǎn)以上的擴(kuò)容,或者是在多區(qū)域/云之間進(jìn)行擴(kuò)展延伸。這時(shí),F(xiàn)ederation 功能就起到了將多個(gè) Kubernetes 集群通過單個(gè) API 端點(diǎn)進(jìn)行定位的作用。在1.6版本中,kubefed 命令行實(shí)用程序已經(jīng)升級(jí)到公測(cè)版本,更加支持本地集群。 kubefed 現(xiàn)在可以在加入集群時(shí)自動(dòng)配置 kube-dns,并可以將參數(shù)傳遞給聯(lián)合組件。
Security 和 Setup:關(guān)注 Security 的用戶會(huì)發(fā)現(xiàn),處于公測(cè)版的 RBAC 通過對(duì)系統(tǒng)組件更緊耦合的默認(rèn)角色來增加系統(tǒng)的安全性。1.6 版本中默認(rèn)的 RBAC 策略會(huì)授予一定范圍的權(quán)限給控制組件、node 和 controller。RBAC 允許集群管理員選擇性授權(quán)用戶,或者選擇服務(wù)賬戶在每個(gè) namespace 基礎(chǔ)上細(xì)致訪問特定資源。RBAC 用戶將 Kubernetes 從1.5升級(jí)到1.6的時(shí)候,要注意查看用戶指導(dǎo):
https://kubernetes.io//docs/admin/authorization/rbac.md#upgrading-from-15 。
希望尋找一種簡(jiǎn)單的在物理機(jī)或者云服務(wù)器上部署一個(gè)安全的 k8s 集群方法的用戶,可以嘗試使用 kubeadm,它目前在公測(cè)階段。kubeadm 在命令行參數(shù)和基本功能上都已經(jīng)進(jìn)行了增強(qiáng),包括 RBAC 設(shè)置,Bootstrap Token system 的使用,以及 API 證書。
Advanced Scheduling:這次發(fā)布的1.6版本添加了一整套強(qiáng)大的調(diào)度結(jié)構(gòu),令用戶可以更好地控制 pod 的調(diào)度,包括一些規(guī)則(能夠在異構(gòu)集群中限制pods到特定節(jié)點(diǎn)的規(guī)則,以及在諸如節(jié)點(diǎn)、racks 和區(qū)域的故障域上擴(kuò)展或打包 pod 的規(guī)則)。
節(jié)點(diǎn)親和性/反親和性,目前還在公測(cè)階段,它可以限制 pod 根據(jù)節(jié)點(diǎn)標(biāo)簽在特定節(jié)點(diǎn)上進(jìn)行調(diào)度。使用內(nèi)置或自定義節(jié)點(diǎn)標(biāo)簽來選擇特定區(qū)域,主機(jī)名,硬件體系結(jié)構(gòu),操作系統(tǒng)版本,專用硬件等。調(diào)度規(guī)則可以是必需的或優(yōu)先的,這取決于您希望調(diào)度程序如何來強(qiáng)制執(zhí)行它們。
有個(gè)相關(guān)的特征,叫做 taints 和 tolerations,可以緊湊地展示從特定節(jié)點(diǎn)排除 pod 的規(guī)則。 該功能目前也處于公測(cè)階段,可以輕松實(shí)現(xiàn)。例如,將一套節(jié)點(diǎn)集專用于特定的用戶組,或者通過排除不需要硬件的pod保留擁有特殊硬件的節(jié)點(diǎn)。
有時(shí),你希望協(xié)同調(diào)度 services 或者 同一個(gè) service 內(nèi)的 pods,在拓?fù)渖媳舜讼噜彛热鐑?yōu)化南北或東西方的交流方式。 或者你想分散一個(gè) service 的 pods 來達(dá)到容錯(cuò),或者保持對(duì)立的 pod 分離,或者確保節(jié)點(diǎn)的租用。 Pod 親和性和反親和性現(xiàn)在處于公測(cè)狀態(tài),設(shè)定硬性或者軟性要求來分散或者打包任意拓?fù)洌╪ode,zone 等等)相關(guān)的 pods。
后,為了終的調(diào)度靈活性,您可以運(yùn)行自己的自定義調(diào)度程序,而不是默認(rèn)的 Kubernetes 調(diào)度程序。 每個(gè)調(diào)度程序負(fù)責(zé)不同的 pod 組。 1.6版本中,Multiple scheduler 特性目前處于公測(cè)版。
Dynamic Storage Provisioning:部署有狀態(tài)應(yīng)用程序的用戶將受益于1.6版本中廣泛的存儲(chǔ)自動(dòng)化功能。
早期以來,Kubernetes 已經(jīng)能夠根據(jù) pod 規(guī)格自動(dòng)附加和分離存儲(chǔ)、格式化磁盤
安裝和卸載數(shù)據(jù)卷,并且 pod 在節(jié)點(diǎn)間遷移也能無縫的執(zhí)行。 此外,PersistentVolumeClaim(PVC)和 PersistentVolume(PV)對(duì)象將存儲(chǔ)請(qǐng)求從特定的存儲(chǔ)實(shí)現(xiàn)中解耦出來,使得 pod 規(guī)范可以在一系列的云和內(nèi)部環(huán)境中移植。 1.6版本中,StorageClass 和 dynamic volume provision 被提升到穩(wěn)定階段,通過根據(jù)需要?jiǎng)?chuàng)建和刪除存儲(chǔ)來完成自動(dòng)化,從而無需預(yù)先配置。
該設(shè)計(jì)允許集群管理員在集群中定義和公開多種存儲(chǔ)空間,每個(gè)集群具有一組自定義參數(shù)。 終端用戶可以不必?fù)?dān)心如何配置存儲(chǔ)的復(fù)雜性和細(xì)微差別,同時(shí)仍然從多個(gè)存儲(chǔ)選項(xiàng)中進(jìn)行選擇。
1.6 Kubernetes 附帶一套內(nèi)置的默認(rèn)設(shè)置,可以完全自動(dòng)化存儲(chǔ)配置生命周期,將您解放出來,能夠在應(yīng)用程序上工作。 具體來說,Kubernetes 默認(rèn)為 AWS,Azure,GCP,OpenStack 和 VMware vSphere 預(yù)安裝系統(tǒng)定義的 StorageClass 對(duì)象。 這樣Kubernetes 用戶就可以在這些提供商上獲得動(dòng)態(tài)存儲(chǔ)配置,同時(shí)無需手動(dòng)設(shè)置 StorageClass 對(duì)象。 這是云上 PVC 對(duì)象的默認(rèn)行為發(fā)生了變化。請(qǐng)注意,默認(rèn)行為是通過“刪除”(回收策略)來創(chuàng)建動(dòng)態(tài)配置卷的。 這意味著一旦刪除了PVC,動(dòng)態(tài)配置的卷會(huì)被自動(dòng)刪除,所以用戶沒有額外的“清理”步驟。
此外,我們擴(kuò)大了支持的存儲(chǔ)范圍,包括:
容器 Runtime Interface,etcd v3和 Daemon set 更新:盡管用戶不能直接與容器 runtime 或 API 服務(wù)器數(shù)據(jù)存儲(chǔ)區(qū)進(jìn)行交互,但是它們是 Kubernetes 中面向用戶的功能的基礎(chǔ)組件。 因此,社區(qū)投資擴(kuò)大這些和其他系統(tǒng)組件的能力。
Docker-CRI 實(shí)現(xiàn)的是公測(cè)版,默認(rèn)情況下在 kubelet 中啟用。 runtime,cri-o,frakti,rkt 的內(nèi)測(cè)版本也已經(jīng)開啟。
API 服務(wù)器的默認(rèn)后端存儲(chǔ)已經(jīng)升級(jí)為默認(rèn)情況下使用etcd v3進(jìn)行新群集。 如果要從1.5集群升級(jí),則應(yīng)注意通過規(guī)劃數(shù)據(jù)遷移窗口來確保連續(xù)性。
節(jié)點(diǎn)的可靠性得到改善,隨著 Kubelet 公開了一個(gè)管理可配置的節(jié)點(diǎn)分配特征來為系統(tǒng) Daemon Set 預(yù)留計(jì)算資源。
Daemon set 更新可讓您在它上執(zhí)行滾動(dòng)更新。
Alpha Features:此版本主要集中在成熟的功能,但是,添加了幾個(gè)內(nèi)測(cè)版功能也在 RoadMap 中。
這些只是我們今年次發(fā)布的一些亮點(diǎn)。 有關(guān)完整列表,請(qǐng)?jiān)L問發(fā)行說明:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md#v160 。
此次1.6的發(fā)布,要感謝我們的開源社區(qū)。 以及,我們已經(jīng)推出了大約275位貢獻(xiàn)者的近5000項(xiàng)提交。 為了使我們的眾多倡導(dǎo)者聚集在一起,社區(qū)已經(jīng)推出了一個(gè)名為 K8sPort(http://k8sport.org/)的新計(jì)劃,它是一個(gè)在線中心,社區(qū)可以參與游戲化挑戰(zhàn)并獲得信譽(yù)。
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個(gè)人觀點(diǎn), 并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個(gè)個(gè)人學(xué)習(xí)交流的平臺(tái),網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對(duì)作者和來源進(jìn)行了通告,但是能力有限或疏忽,造成漏登,請(qǐng)及時(shí)聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對(duì)此聲明的最終解釋權(quán)。