到了2017年,已經(jīng)是容器技術(shù)出現(xiàn)的第三年了。而在這三年的容器發(fā)展歷程中,我們看到更多的是與Docker技術(shù)相關(guān)的:Docker的社區(qū)、輕量化技術(shù)、與CoreOS的標(biāo)準(zhǔn)之戰(zhàn)等等。而隨著容器技術(shù)逐步走向成熟,以容器引擎為中心的大的容器生態(tài)圈逐步形成,Kubernetes等產(chǎn)品/技術(shù)受到關(guān)注。
何為Kubernetes
根據(jù)維基百科的解釋:Kubernetes,通常稱為K8s,是一個開源系統(tǒng),最初由Google設(shè)計并捐贈給Cloud Native Computing Foundation來使用。它可以被用于自動部署,擴(kuò)展和管理容器化(containerized)應(yīng)用程序,支持一系列容器工具,包括Docker等。旨在提供“跨主機(jī)集群的自動部署、擴(kuò)展以及運(yùn)行應(yīng)用程序容器的平臺”。也有人將其看作是基于容器技術(shù)的mini-PaaS平臺。
從應(yīng)用上來看,無論是公有云還是私有云甚至混合云,Kubernetes將作為一個為任何應(yīng)用,任何環(huán)境的容器管理框架無處不在。正因?yàn)槿绱?,目前受到各大巨頭及初創(chuàng)公司的青睞,如Microsoft、VMWare、Red Hat、CoreOS、Mesos等,紛紛加入給Kubernetes貢獻(xiàn)代碼。
Kubernetes v0.4
在國內(nèi),騰訊等公司早已使用kubernetes技術(shù),甚至在2015年7月21日Kubernetes v1.0發(fā)布之前,就已經(jīng)開始將其部署應(yīng)用。據(jù)了解,最初騰訊基于Kubernetes v0.4這個版本進(jìn)行了定制和開發(fā),使其成為騰訊游戲容器的調(diào)度管理平臺。
Kubernetes能做什么
一般來講Kubernates是針對容器提供部署、維護(hù)、擴(kuò)展機(jī)制等功能,更方便地管理跨機(jī)器運(yùn)行容器化的應(yīng)用。Kubernetes基于master-slave邏輯建構(gòu)主要由kubecfg、Master API Server、Kubelet、Minion(Host)以及Proxy幾大部分構(gòu)成。
就功用而言可以分為四大部分:
1.自動化容器的部署、升級和復(fù)制;
2.隨時擴(kuò)展或收縮容器規(guī)模,實(shí)現(xiàn)容器的彈性擴(kuò)展;
3.以集群的方式運(yùn)行、管理跨機(jī)器的容器,并且提供容器間的負(fù)載均衡;
4.Kubernetes的自我修復(fù)機(jī)制使得容器集群總是運(yùn)行在用戶期望的狀態(tài)。
無論是容器技術(shù),還是DevOps和微服務(wù),都說明靈活、彈性、輕量化的IT應(yīng)用模式逐漸形成。而這種模式的形成對于復(fù)雜產(chǎn)品的快速開發(fā)有著積極意義,谷歌等IT巨頭對產(chǎn)業(yè)的貢獻(xiàn),讓初創(chuàng)企業(yè)與大型IT企業(yè)之間的差距縮短,迎來最好的IT時代。