Kubernetes 1.4版已于本周發(fā)布,該發(fā)布版本所提供的新特性改進(jìn)了開發(fā)和運(yùn)維的體驗(yàn),簡(jiǎn)化了集群的部署、認(rèn)證處理、網(wǎng)絡(luò)、安全和應(yīng)用部署。此外,該發(fā)布版本擴(kuò)展了集群聯(lián)邦能力,改進(jìn)了跨越多重集群和多重云的部署功能。
雖然這次發(fā)布的版本中添加了很多新的特性,但是面對(duì)可用于Kubernetes的多種不同的安裝方案和工具時(shí),簡(jiǎn)化集群部署仍然是該版本的主要目標(biāo)之一。
安裝與易用性
對(duì)于Red Hat和Ubuntu等Linux的主要發(fā)布版本,已經(jīng)可用apt-get和yum安裝Kubernetes的操作系統(tǒng)包。 新的kubeadm命令將集群?jiǎn)?dòng)簡(jiǎn)化為兩個(gè)命令,并且命令的使用是獨(dú)立于架構(gòu)類型的,無論架構(gòu)是共用的、私有的或是專用服務(wù)器。使用上類似于自Docker 1.2版本之后的所提供Docker Swarm命令,kubeadm init命令用于啟動(dòng)主服務(wù),kubeadm join命令用于在集群中添加節(jié)點(diǎn)。 DaemonSets確保選定集群中節(jié)點(diǎn)去運(yùn)行Pod的一個(gè)拷貝。在這種方式下,可簡(jiǎn)化覆蓋網(wǎng)絡(luò)的擴(kuò)展部署為使用kubectl apply命令。 新的認(rèn)證API通過對(duì)kubelet TLS自引導(dǎo)的授權(quán)簡(jiǎn)化了安全網(wǎng)絡(luò)。 Kubernetes Dashboard的用戶界面現(xiàn)在已支持90%的CLI功能。有狀態(tài)應(yīng)用
ScheduledJobs實(shí)現(xiàn)了在設(shè)定的時(shí)間去運(yùn)行批處理作業(yè),或是使用cron理念對(duì)作業(yè)進(jìn)行定時(shí)重復(fù)地運(yùn)行。 Init-container用于對(duì)多層應(yīng)用啟動(dòng)時(shí)的順序依賴性的確定,實(shí)現(xiàn)了先于主Pod啟動(dòng)而運(yùn)行一個(gè)或更多的容器。 基于新的Storage Class API對(duì)象,當(dāng)前集群可以動(dòng)態(tài)地為PersistantVolumeClaims提供卷。 使用Helm Package Manager第二版,Drupal、Wordpress和Jenkins等公共的有狀態(tài)應(yīng)用將作為Helm charts提供,實(shí)現(xiàn)了簡(jiǎn)明的單命令加載。聯(lián)邦
現(xiàn)在聯(lián)邦副本集(Federated Replica Sets)可跨集群對(duì)副本進(jìn)行控制,這實(shí)現(xiàn)了跨區(qū)域或跨云平臺(tái)的備份。以這種方式所創(chuàng)建的副本在集群中可平均分布。 聯(lián)邦I(lǐng)ngress采用第七層全局負(fù)載均衡虛擬IP,將已部署服務(wù)散布到集群聯(lián)邦中。該功能當(dāng)前僅支持Google云平臺(tái)(Google Cloud Platform,GCP)。以該IP為目標(biāo)的外部客戶會(huì)被發(fā)送至集群聯(lián)邦中最近的可用地區(qū)或區(qū)域上。 當(dāng)前聯(lián)邦A(yù)PI中包括了機(jī)密(secret)、事件和命名空間。安全
容器鏡像策略(Container Image Policies)可用于限定Pod的部署,這種限定是基于鏡像需求的,例如僅允許特定的基礎(chǔ)鏡像。 對(duì)AppArmor的支持使管理員可以對(duì)Pod加密、提供審計(jì)和監(jiān)控功能。 Pod安全策略(Pod Security Policies)控制了用于Pod和容器的安全上下文的創(chuàng)建和驗(yàn)證。架構(gòu)
Pod間親緣性和反親緣性使得Pod可以共存一處或是散布各處。 對(duì)DNS、Heapster和Dashboard等集群附加組件的優(yōu)先權(quán)調(diào)度能力已可用。 引入了Pod銷毀預(yù)算(Pod Disruption Budget)功能,用于限制使用集群管理操作(節(jié)點(diǎn)管理)刪除Pod所導(dǎo)致的影響。 用于Quobyte和Azure Data Disk的全新卷管理插件已經(jīng)被添加到該版本中。 添加了對(duì)Swagger 2.0的支持,實(shí)現(xiàn)對(duì)非Go客戶的支持。在采用Kubernetes 1.4之前,管理員應(yīng)該遵循更新日志所記錄的代辦事項(xiàng)。 有意于對(duì)運(yùn)行版本進(jìn)行升級(jí)的管理員應(yīng)額外關(guān)注一下實(shí)驗(yàn)性腳本upgrade.sh。
Kubernetes當(dāng)前已在許多組織中得到大范圍采用。Kubernetes的發(fā)展包括了專業(yè)支持服務(wù)以及動(dòng)態(tài)的貢獻(xiàn),僅對(duì)Kubernetes 1.4版本,就有超過900貢獻(xiàn)者編寫了不下5,000次的提交。Kubernetes的一些生產(chǎn)特性仍處于開發(fā)階段,例如多可用區(qū)域支持和良好結(jié)構(gòu)化的文檔。這體現(xiàn)在該版本更新日志中所列出的27個(gè)特性中,有21個(gè)特性仍標(biāo)記為Beta或是Alpha。
在Kubernetes 1.4版本發(fā)布之外,Kubernetes 1.3.8修正版也于本周發(fā)布。
查看英文原文:Kubernetes 1.4 Simplifies Cluster Deployment, Improves Security and Federation