隨著云計(jì)算步入第二個(gè)發(fā)展十年,我國云計(jì)算市場(chǎng)進(jìn)入高速增長(zhǎng)階段。容器、微服務(wù)、DevOps等技術(shù)不斷推動(dòng)云計(jì)算的變革,云計(jì)算應(yīng)用深入到政府、金融、工業(yè)、交通、物流、醫(yī)療健康等傳統(tǒng)行業(yè),K8s更是無處不在,成為企業(yè)云原生力量的重頭戲。今天小編就給大家簡(jiǎn)單介紹一下云計(jì)算學(xué)習(xí)課程中有關(guān)K8s的概念知識(shí)。
K8s是什么?
K8s,即Kubernetes,是Google開源的容器集群管理系統(tǒng),在Docker技術(shù)的基礎(chǔ)上,為容器化的應(yīng)用提供部署運(yùn)行、資源調(diào)度、服務(wù)發(fā)現(xiàn)和動(dòng)態(tài)伸縮等一系列完整功能,提高了大規(guī)模容器集群管理的便捷性。紅帽首席架構(gòu)師Bilgin Ibryam曾表示,容器編排工具競(jìng)爭(zhēng)的結(jié)果不管是哪種情況,Kubernetes都是最后一個(gè)活下來的平臺(tái)。有分析師預(yù)計(jì),2019年將是“K8s年”。
Kubernetes是當(dāng)今最具變革意義的云技術(shù),憑借其內(nèi)置的高可用性、細(xì)粒度、可伸縮性、可移植性等特點(diǎn),提供了許多在本地和云之間真正可互相操作的關(guān)鍵特性。Kubernetes既可以幫助企業(yè)用于新應(yīng)用的開發(fā),也能重構(gòu)企業(yè)過去的遺留系統(tǒng)。不管是哪種類型的企業(yè),多大規(guī)模的企業(yè),都希望借助Kubernetes來實(shí)現(xiàn)云端轉(zhuǎn)型。
K8s的核心概念
Master:K8s集群的管理節(jié)點(diǎn),負(fù)責(zé)管理集群,提供集群的資源數(shù)據(jù)訪問入口;
Node:K8s集群架構(gòu)中運(yùn)行Pod的服務(wù)節(jié)點(diǎn)(亦叫agent或minion)、集群操作的單元,用來承載被分配Pod的運(yùn)行,是Pod運(yùn)行的宿主機(jī);
Pod:運(yùn)行于Node節(jié)點(diǎn)上,若干相關(guān)容器的組合,是K8s進(jìn)行創(chuàng)建、調(diào)度和管理的最小單位,提供了比容器更高層次的抽象,使得部署和管理更加靈活;
Replication Controller:用來管理Pod的副本,保證集群中存在指定數(shù)量的Pod副本;
Service:定義了Pod的邏輯集合和訪問該集合的策略,是真實(shí)服務(wù)的抽象;
Label:K8s中的任意API對(duì)象都是通過Label進(jìn)行標(biāo)識(shí),Label的實(shí)質(zhì)是一系列的Key/Value鍵值對(duì),其中key于value由用戶自己指定。
K8s的全生命周期管理
在K8s進(jìn)行管理應(yīng)用的時(shí)候,基本步驟是:創(chuàng)建集群,部署應(yīng)用,發(fā)布應(yīng)用,擴(kuò)展應(yīng)用,更新應(yīng)用。
創(chuàng)建集群。在K8s只要使用兩條指令就可以創(chuàng)建一個(gè)集群,一個(gè)是kubectl init進(jìn)行初始化,創(chuàng)建一個(gè)master節(jié)點(diǎn),第二條指令就是kubectl join xxx創(chuàng)建一個(gè)node節(jié)點(diǎn),加入這個(gè)集群。
部署應(yīng)用。使用集群的主要目標(biāo)是用來提供服務(wù),讓開發(fā)開發(fā)的應(yīng)用程序能在集群上運(yùn)行。在開發(fā)完成程序之后,需要將程序打包成image,然后放到registry中,就能夠運(yùn)行應(yīng)用了。
發(fā)布應(yīng)用。發(fā)布應(yīng)用主要就是對(duì)外提供服務(wù),需要注意的是,在集群當(dāng)中,創(chuàng)建的IP地址等資源,只有在同一個(gè)集群中才能訪問。
擴(kuò)展應(yīng)用。想要擴(kuò)展容量,只需一個(gè)pod就可以搞定;想要縮容,不用創(chuàng)建vm,不用去部署中間件,不用去各種修改配置,可以自動(dòng)化實(shí)現(xiàn)。
更新應(yīng)用。根據(jù)新的image創(chuàng)建一個(gè)pod,分配各種資源,然后自動(dòng)負(fù)載均衡,刪除老的pod,然后繼續(xù)更新,這個(gè)過程不會(huì)中斷服務(wù),如果更新錯(cuò)了,只需回滾就可以。
K8s是一個(gè)編排容器的工具,其實(shí)也是管理應(yīng)用的全生命周期的一個(gè)工具,從創(chuàng)建應(yīng)用,應(yīng)用的部署,應(yīng)用提供服務(wù),擴(kuò)容縮容應(yīng)用,應(yīng)用更新,都非常的方便,而且可以做到故障自愈。想要成為一個(gè)優(yōu)秀的云計(jì)算工程師,掌握K8s很有必要!