




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Kubernetes根底及應(yīng)用實(shí)踐
前言前言前言前言Kuberentes的開展Kuberentes是基于容器的集群管理平臺(tái),它的簡(jiǎn)稱,是K8S。K8S這個(gè)單詞來自于希臘語(yǔ),含義是舵手或領(lǐng)航員。K8S的創(chuàng)造者,是眾人皆知的行業(yè)巨頭——Google。然而,K8S并不是一件全新的創(chuàng)造。它的前身,是Google自己搗鼓了十多年的Borg系統(tǒng)。2014年6月:K8S由Google公司正式公布出來并宣布開源的。同年7月,微軟、RedHat、IBM、Docker、CoreOS、Mesosphere和Saltstack等公司,相繼參加K8S。2015年7月,Google正式參加OpenStack基金會(huì)。與此同時(shí),Kuberentesv1.0正式發(fā)布。2016:K8S在這一年成為主流2017:被越來越多的企業(yè)采用.目錄11K8S概述及安裝2K8S根本概念和術(shù)語(yǔ)3K8S常用命令4K8S應(yīng)用實(shí)踐目錄11K8S概述及安裝K8S概述K8S是一個(gè)全新的基于容器技術(shù)的分布式架構(gòu)領(lǐng)先方案。K8S是一個(gè)開放的開發(fā)平臺(tái)。K8S是一個(gè)完備的分布式系統(tǒng)支撐平臺(tái)。K8S優(yōu)點(diǎn)開發(fā)人員各司其職,輕裝上陣全面擁抱微效勞框架使用K8S我們系統(tǒng)可以隨時(shí)的整體遷移K8S系統(tǒng)具備了超強(qiáng)的橫向擴(kuò)容能力K8S框架K8S框架
當(dāng)使用kubectl或直接調(diào)用apiserver提供的api請(qǐng)求創(chuàng)立pod和service時(shí)工作流程:apiserver把相關(guān)的pod和service配置存儲(chǔ)到etcd中scheduler從apiserver獲取到相關(guān)pod的配置,根據(jù)集群中的資源和條件限制把pod調(diào)度到相應(yīng)的node節(jié)點(diǎn)上controller-manager從apiserver獲取到相關(guān)pod和service的配置,定期檢查pod的狀態(tài),保證有用戶配置的足夠數(shù)量的pod副本在運(yùn)行,生成service到pod的規(guī)則關(guān)系。kubelet從apiserver獲取分配到本節(jié)點(diǎn)的相關(guān)pod配置,在本地啟動(dòng)容器并定期檢查返回容器狀態(tài)kube-proxy從apiserver獲取service到pod的規(guī)則,在本節(jié)點(diǎn)維護(hù)iptable或者ipvs相關(guān)路由規(guī)則K8S框架〔master-apiserver〕提供集群管理的API接口;集群內(nèi)各個(gè)功能模塊之間數(shù)據(jù)交互和通信的中心樞紐;
K8S框架〔master-controllermanager〕ControllerManager負(fù)責(zé)管理集群各種資源,保證資源處于預(yù)期的狀態(tài)。ReplicationController〔副本控制器〕:確保在任何時(shí)候集群中都保持一定數(shù)量的pod副本處于正常運(yùn)行狀態(tài)。NodeController:資源配額管理確保制定對(duì)象在任何時(shí)候都不會(huì)超量占用系統(tǒng)資源。EndpointController:定期關(guān)聯(lián)service和pod(關(guān)聯(lián)信息由endpoint對(duì)象維護(hù)),保證service到pod的映射是最新的。ServicesController:監(jiān)聽Service的變化。
K8S框架〔master-scheduler〕負(fù)責(zé)Pod調(diào)度。通過調(diào)度算法為待調(diào)度Pod列表的每個(gè)Pod選擇一個(gè)最適宜的Node。
K8S框架〔master-etcd〕負(fù)責(zé)保存k8s集群的配置信息和各種資源的狀態(tài)信息,當(dāng)數(shù)據(jù)發(fā)生變化時(shí),etcd會(huì)快速地通知k8s相關(guān)組件。etcd提供了監(jiān)聽〔watch〕機(jī)制,用于監(jiān)聽和推送變更。
K8S框架〔node〕Node主要負(fù)責(zé)提供容器的各種依賴環(huán)境,并接受Master管理。每個(gè)Node有以下幾個(gè)組件構(gòu)成。Kubelet當(dāng)Scheduler確定在某個(gè)Node上運(yùn)行Pod后,會(huì)將Pod的具體配置信息〔image、volume等〕發(fā)送給該節(jié)點(diǎn)的kubelet,kubelet會(huì)根據(jù)這些信息創(chuàng)立和運(yùn)行容器,并向master報(bào)告運(yùn)行狀態(tài)。ContainerRuntime每個(gè)Node都需要提供一個(gè)容器運(yùn)行時(shí)〔ContainerRuntime〕環(huán)境,它負(fù)責(zé)下載鏡像并運(yùn)行容器Kube-proxyservice在邏輯上代表了后端的多個(gè)Pod,外部通過service訪問Pod。service接收到請(qǐng)求就需要kube-proxy完成轉(zhuǎn)發(fā)到Pod的。K8S部署二進(jìn)制包安裝kubeadm工具快速部署目錄12K8S根本概念和術(shù)語(yǔ)K8S根本概念和術(shù)語(yǔ)Pod是K8S的最小工作單元。每個(gè)Pod包含一個(gè)或多個(gè)容器。Pod中的容器會(huì)作為一個(gè)整體被Master調(diào)度到一個(gè)Node上運(yùn)行??晒芾硇?/p>
通信和資源共享
K8S根本概念和術(shù)語(yǔ)K8S根本概念和術(shù)語(yǔ)K8S根本概念和術(shù)語(yǔ)掛起〔Pending〕:APIServer創(chuàng)立了Pod資源對(duì)象并已經(jīng)存入了etcd中,但是它并未被調(diào)度完成,或者仍然處于從倉(cāng)庫(kù)下載鏡像的過程中。運(yùn)行中〔Running〕:Pod已經(jīng)被調(diào)度到某節(jié)點(diǎn)之上,并且所有容器都已經(jīng)被kubelet創(chuàng)立完成。成功〔Succeeded〕:Pod中的所有容器都被成功終止,并且不會(huì)再重啟。失敗〔Failed〕:Pod中的所有容器都已終止了,并且至少有一個(gè)容器是因?yàn)槭〗K止。也就是說,容器以非0狀態(tài)退出或者被系統(tǒng)終止。未知〔Unknown〕:因?yàn)槟承┰驘o法取得Pod的狀態(tài),通常是因?yàn)榕cPod所在主機(jī)通信失敗。K8S根本概念和術(shù)語(yǔ)創(chuàng)立podkubectlcreate–fmypod.yaml查看pod信息kubectldescribepodmypod刪除podkubectldelete–fmypod.yaml查看所有podkubectlgetpods
K8S根本概念和術(shù)語(yǔ)K8S根本概念和術(shù)語(yǔ)ReplicationController(副本控制器):
創(chuàng)立指定數(shù)量的pod副本數(shù)量,確保pod副本數(shù)量符合預(yù)期狀態(tài),并且支持滾動(dòng)式自動(dòng)擴(kuò)容和縮容功能。
ReplicationController包含幾個(gè)局部:用戶期望的pod副本數(shù)量標(biāo)簽選擇器,判斷哪個(gè)pod歸自己管理當(dāng)現(xiàn)存的pod數(shù)量缺乏,會(huì)根據(jù)pod資源模板進(jìn)行新建
K8S根本概念和術(shù)語(yǔ)
RelicaSet(副本集)下一代的ReplicationController,支持label標(biāo)簽為集合其余同ReplicationController一樣
K8S根本概念和術(shù)語(yǔ)
Deployment:目前來說最好的控制器。支持滾動(dòng)更新和回滾功能,還提供聲明式配置。定義Deployment來創(chuàng)立Pod和ReplicaSet滾動(dòng)升級(jí)和回滾應(yīng)用kubectlroll-updatenginx-deployment–fnginx-deployment–v2.yamlkubectlrolloutundodeployment/nginx-deployment擴(kuò)容和縮容kubectlscaledeploymentnginx-deployment–replicas=5kubectlscaledeploymentnginx-deployment–replicas=1暫停和繼續(xù)Deploymentkubectlrolloutpausedeploymentnginx-deploymentkubectlrolloutresumedeploymentnginx-deploymentK8S根本概念和術(shù)語(yǔ)K8S根本概念和術(shù)語(yǔ)用戶通過kubectl創(chuàng)立DeploymentDeployment創(chuàng)立ReplicaSetReplicaSet創(chuàng)立Podlabel以key/value鍵值對(duì)的形式附加到任何對(duì)象上,如Pod,Service,Node,RC/RS等,label對(duì)象創(chuàng)立好之后,通過LabelSelector來引用這些對(duì)象。K8S目前支持兩種類型的LabelSelector:基于等式的Selector〔Equality-based〕
基于集合的Selector〔Set-based〕K8S根本概念和術(shù)語(yǔ)namespace用于實(shí)現(xiàn)多租戶的資源隔離,可以將集群內(nèi)部的資源對(duì)象分配到不同的namespace中,形成邏輯上分組的不同工程、小組,便于不同的分組在共享使用整個(gè)集群的資源的同時(shí)還能被分別管理。創(chuàng)立命名空間kubectlcreatenamespacetestkubectlcreate–fnamespaceyaml查看kubectlgetnsK8S根本概念和術(shù)語(yǔ)volume是能夠被pod中多個(gè)容器訪問的共享目錄emptyDirhostPathnfsconfigmapK8S根本概念和術(shù)語(yǔ)ConfigMap用于保存配置數(shù)據(jù)的鍵值對(duì),可以用來保存單個(gè)屬性,也可以用來保存配置文件。必須在pod之前創(chuàng)立必須在同一命名空間下創(chuàng)立cofigmapkubectlcreateconfigmapmy-config--from-file=path/to/barkubectlcreate–fbar.yamlK8S根本概念和術(shù)語(yǔ)K8S根本概念和術(shù)語(yǔ)Service是Kubernetes的核心資源類型之一,Service資源基于標(biāo)簽選擇器將一組Pod定義成一個(gè)邏輯組合,并通過自己的IP地址和端口調(diào)度代理請(qǐng)求到組內(nèi)的Pod對(duì)象K8S根本概念和術(shù)語(yǔ)K8S根本概念和術(shù)語(yǔ)創(chuàng)立servicekubectlcreate–fmyservice.yaml查看資源對(duì)象kubectlgetservicemyservice描述資源對(duì)象kubectldescribeservicemyservice刪除資源對(duì)象kubectldelete–fmyservice.yaml目錄13K8S常用命令K8S常用命令創(chuàng)立資源對(duì)象kubectlcreate–fmypod.yamlK8S常用命令查看資源對(duì)象kubectlgetpods/service/rc/deployment/rsK8S常用命令描述資源對(duì)象kubectldescribepod/service/rc/deployment/rs/configmapK8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼筋加工與安裝勞務(wù)合同書
- alc隔墻板購(gòu)銷合同
- 醫(yī)院職工聘用合同
- 手房買賣合同常用
- 影視演員聘用合同
- 換熱站施工合同合同
- 國(guó)交易磋商與合同訂立
- 家裝集成吊頂合同
- 種草皮協(xié)議合同
- 磨牙棒產(chǎn)品買賣協(xié)議合同
- 2025年第三屆天揚(yáng)杯建筑業(yè)財(cái)稅知識(shí)競(jìng)賽題庫(kù)附答案(701-800題)
- 鴻門宴-課本劇-課件
- 我是家里的小幫手課件
- 2023年江蘇安東控股集團(tuán)有限公司招聘筆試題庫(kù)及答案解析
- 雙減下小學(xué)數(shù)學(xué)低段作業(yè)設(shè)計(jì)與布置課件
- 一年級(jí)數(shù)學(xué)下冊(cè)課件-1. 補(bǔ)磚問題4-人教版(共10張PPT)
- 螺桿泵工作原理和工況診斷方法
- 醫(yī)患溝通技巧(PPT)課件
- 真理誕生于一百個(gè)問號(hào)之后(優(yōu)秀)(課堂PPT)
- 污水處理廠防汛應(yīng)急演練方案
- 慢性阻塞性肺疾病(COPD)的藥物治療
評(píng)論
0/150
提交評(píng)論