目標(biāo)
- 學(xué)習(xí)了解Kubernetes集群是什么
- 學(xué)習(xí)Minikubte是什么
- 通過在線終端來啟動(dòng)一個(gè)Kubernetes集群
Kubernetes集群
Kubernetes負(fù)責(zé)協(xié)調(diào)一個(gè)高可用的集群,這個(gè)集群由一系列的機(jī)器連接組合而成并且作為一個(gè)單獨(dú)的單元來提供服務(wù)通過Kubernetes,你可以直接部署一個(gè)容器化的應(yīng)用到一個(gè)集群中,而你不需要關(guān)心它們會(huì)放到某個(gè)固定的機(jī)器上去,Kubernetes幫我們抽象化了這些操作。你的應(yīng)用程序需要打包成一個(gè)與特定機(jī)器環(huán)境無關(guān)的部署包,因?yàn)樗麄冃枰渴鸬饺萜骼锩嫒?。容器化?yīng)用相對(duì)于傳統(tǒng)的部署模型來說,意味著可擴(kuò)展性和可用性都更高,因?yàn)橐酝膫鹘y(tǒng)部署應(yīng)用模型,我們會(huì)把應(yīng)用包和當(dāng)前的部署環(huán)境緊密的耦合。Kubernetes會(huì)在集群中通過一些高效操作來自動(dòng)的分發(fā)和調(diào)度應(yīng)用容器。同時(shí)Kubernetes目前已經(jīng)開源,Github,可以直接應(yīng)用于生產(chǎn)環(huán)境。
一個(gè)Kubernetes由一下兩種資源組成:
- Master來協(xié)調(diào)整個(gè)集群
- Nodes用來運(yùn)行具體的應(yīng)用
總的來說:
Kubernetes是一個(gè)產(chǎn)品級(jí)的開源平臺(tái),用來在多個(gè)機(jī)器構(gòu)成的集群上管理應(yīng)用程序容器的放置和執(zhí)行
集群架構(gòu)
Master主要負(fù)責(zé)管理集群。Master協(xié)調(diào)集群內(nèi)的所有操作,類似應(yīng)用程序調(diào)度、維護(hù)應(yīng)用程序狀態(tài)、應(yīng)用伸縮和發(fā)布新的更新
在Kubernetes中,一個(gè)node就是一個(gè)虛擬機(jī)或者一個(gè)當(dāng)做Worker使用的物理主機(jī)。每個(gè)node都會(huì)有一個(gè)Kubelet,是一個(gè)管理當(dāng)前node和用來與Kubernetes Master通信的客戶機(jī)代理程序。每個(gè)node當(dāng)然還包含了一系列的工具用來管理和操作容器,類似Docker or rkt。一個(gè)應(yīng)用于生產(chǎn)環(huán)境的Kubernetes集群至少要包含3個(gè)node
Master用來管理集群和運(yùn)行應(yīng)用程序的node
當(dāng)你在Kubernetes部署一個(gè)應(yīng)用程序的時(shí)候,會(huì)告訴Master來啟動(dòng)應(yīng)用程序的容器。然后Master會(huì)在集群的node上面調(diào)度容器來運(yùn)行你的應(yīng)用。node和master通過Kubernetes暴露的API通信。終端用戶也可以直接使用這些API來和集群交互。
Kubernetes集群能夠部署在物理機(jī)或者是虛擬機(jī)上。要開始Kubernetes的部署,你可以先嘗試使用 Minikube。Minikube是Kubernetes的一個(gè)輕量級(jí)實(shí)現(xiàn),它會(huì)在你本地創(chuàng)建一個(gè)VM并且部署一個(gè)簡單的集群,這個(gè)集群僅僅包含一個(gè)節(jié)點(diǎn)。Minikube目前可以部署在Linux、MacOS和Windows上面。Minikube命令行工具提供了一系列的基本操作用來使你的集群可以工作起來,包含start、stop、status和delete。在當(dāng)前指南中,你會(huì)使用一個(gè)已經(jīng)安裝好了的在線終端?,F(xiàn)在你知道Kubenetes是什么了吧,讓我們通過在線指南的方式開始第一個(gè)集群吧!