什么是Kubernets

套用官方文檔對Kubernetes的定義,翻譯成中文的意思是:
Kubernetes,也稱為k8,是一個用于自動化部署、擴展和管理容器化應(yīng)用程序的開源系統(tǒng)。
它將組成應(yīng)用程序的容器分組為邏輯單元,以便于管理和發(fā)現(xiàn)。Kubernetes建立在15年在b谷歌運行生產(chǎn)工作負載的經(jīng)驗之上,結(jié)合了來自社區(qū)的最佳想法和實踐。
為什么是K8S
K8S的特點:自我修復(fù)、彈性伸縮、自動部署和回滾、服務(wù)發(fā)現(xiàn)和負載均衡、機密和配置管理、存儲編排、批處理
技術(shù)選型:Apache Mesos VS Docker Swarm VS Google Kubernetes
Mesos的特點和優(yōu)勢
Mesos是一個分布式調(diào)度系統(tǒng)內(nèi)核,早于Docker產(chǎn)生,Mesos作為資源管理器,從DC/OS(數(shù)據(jù)中心操作系統(tǒng))的角度提供資源視圖。主/從結(jié)構(gòu)工作模式,主節(jié)點分配任務(wù),并用從節(jié)點上的Executor負責(zé)執(zhí)行,通過Zokeeper給主節(jié)點提供服務(wù)注冊、服務(wù)發(fā)現(xiàn)功能。通過Framework Marathon提供容器調(diào)度的能力。
經(jīng)過時間的檢驗,作為資源管理的Apache Mesos在容器之前就已經(jīng)出現(xiàn)很久了,支持運行容器化和非容器化的工作負載,可以支持應(yīng)用程序的健康檢查,開放的架構(gòu),支持多個框架和多個調(diào)度器,通過不同的Framework可以運行Haddop/Spark/MPI等多種不同的任務(wù)。支持超大型規(guī)模的節(jié)點管理,模擬測試支持超過5w+節(jié)點,在大規(guī)模上用有較大優(yōu)勢。
Swarm的特點和優(yōu)勢
Docker Swarm是一個由Docker開發(fā)的調(diào)度框架.由Docker自身開發(fā)的好處之一就是標(biāo)準(zhǔn)Docker API的使用,Swarm由多個代理(Agent)組成,把這些代理稱之為節(jié)點(Node)。這些節(jié)
點就是主機,這些主機在啟動Docker Daemon的時候就會打開相應(yīng)的端口,以此支持Docker遠程API,這些機器會根據(jù)Swarm調(diào)度器分配給它們的任務(wù),拉取和運行不同的鏡像。
從Docker1.12版本開始,Swarm隨Docker一起默認安裝發(fā)布。由于隨Docker引擎一起發(fā)布,無需額外安裝,配置簡單,支持服務(wù)注冊、服號發(fā)現(xiàn),內(nèi)置Overlay Network以及Load
Balancer。與Docker CL非常類似的操作,對熟悉Docker的人非常容易上手學(xué)習(xí)。入門門檻、學(xué)習(xí)成本較低,使用更便捷,適用于中小型系統(tǒng)。
Kubernetes的特點和優(yōu)勢
Kubenetes是基于Google在過去十五年來大量生產(chǎn)環(huán)境中運行工作負載的經(jīng)驗,Kubernetes的實現(xiàn)參考了Google內(nèi)的資源調(diào)度框架。但并不是Borg的內(nèi)部容器編排系統(tǒng)的開源,而是借鑒Google從運行Borg獲得的經(jīng)驗教訓(xùn),形成了Kubernetes項目。
它使用Label和Pod的概念來將容器劃分為邏輯單元。Pods是同地協(xié)作(co-located)容器的集合,這些容器被共同部署和調(diào)度,形成了一個服務(wù),這是Kubernetes和其他兩個框架的主要
區(qū)別。相比于基于相似度的容器調(diào)度方式(就像Swarm和Mesos),這個方法簡化了對集群的管理。
最流行的容器編排解決方案框架,基于Google龐大的生態(tài)圈及社區(qū)產(chǎn)生的產(chǎn)品。通過Pods這一抽象的概念,解決Container之間的依賴于通信問題。Pods,Services,Deployments是獨立
部署的部分,可以通過Selector提供更多的靈活性。內(nèi)置服務(wù)注冊表和負載平衡。適用度更廣,功能更強大,相較于Mesos來說節(jié)點規(guī)模校小。
Kubernetes邏輯架構(gòu)
