版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Docker容器技術(shù)與應(yīng)用湖北輕工職業(yè)技術(shù)學(xué)院Kubernetes概述及基本操作項(xiàng)目6項(xiàng)目背景隨著容器技術(shù)的迅速發(fā)展,企業(yè)對容器化應(yīng)用的管理和部署需求日益增長。傳統(tǒng)方式難以滿足應(yīng)用大規(guī)模、高效運(yùn)行的要求。Kubernetes應(yīng)運(yùn)而生,作為Google開源的容器編排引擎,能有效解決這些問題。Kubernetes概述及基本操作項(xiàng)目6
Kubernetes是Google開源的容器編排引擎,它提供了自動化部署、大規(guī)模可伸縮、應(yīng)用容器化管理等功能。本項(xiàng)目通過兩個(gè)任務(wù)介紹了Kubernetes的發(fā)展及其基本操作,并以RHEL8.1操作系統(tǒng)為基礎(chǔ),介紹了使用kubeadm安裝Kubernetes集群的方法和kubectl命令的使用方法。項(xiàng)目六:Kubernetes概述及基本操作目錄任務(wù)6.1、Kubernetes概述任務(wù)6.2、Kubernetes的基本操作Swarm編排工具的使用回顧1、了解容器集群的管理方法。2、Swarm編排工具的使用方法。知識目標(biāo)了解Kubernetes的概念。了解Kubernetes的架構(gòu)。能力目標(biāo)掌握Kubernetes集群的安裝方法。掌握Kubernetes下Dashboard的安裝方法。素質(zhì)目標(biāo)培養(yǎng)團(tuán)隊(duì)協(xié)作精神.樹立誠信意識。Swarm作為Docker開發(fā)的原生的集群管理引擎,雖然有眾多優(yōu)點(diǎn),但是仍存在依賴平臺、不提供存儲選項(xiàng)、監(jiān)控不良等問題。工程師小王通過查閱資料發(fā)現(xiàn),Kubernetes作為Google開源的一個(gè)容器編排引擎,較好地解決了這些問題。小王在對Kubernetes技術(shù)進(jìn)行調(diào)研后,編寫了Kubernetes的安裝手冊,以供公司相關(guān)技術(shù)人員學(xué)習(xí),并在公司內(nèi)部推廣該技術(shù)。任務(wù)6.1Kubernetes概述任務(wù)要求6.1任務(wù)6.1Kubernetes概述相關(guān)知識6.1容器編排工具容器化部署方式給帶來很多的便利,但是也會出現(xiàn)一些問題,比如說:一個(gè)容器故障停機(jī)了,怎么樣讓另外一個(gè)容器立刻啟動去替補(bǔ)停機(jī)的容器;當(dāng)并發(fā)訪問量變大的時(shí)候,怎么樣做到橫向擴(kuò)展容器數(shù)量。這些容器管理的問題統(tǒng)稱為容器編排問題,為了解決這些容器編排問題,就產(chǎn)生了一些容器編排的軟件:Swarm:Docker自己的容器編排工具。Kubernetes:Google開源的的容器編排工具。隨著應(yīng)用規(guī)模的增長,主機(jī)端承受的負(fù)載壓力越來越大,已經(jīng)超出了單臺主機(jī)所能承受的負(fù)載能力。編排系統(tǒng)可以幫助用戶將一組主機(jī)(節(jié)點(diǎn))視為一個(gè)統(tǒng)一的、可編程的、可靠的集群,這個(gè)集群可以當(dāng)作一臺大型計(jì)算機(jī)來使用。Kubernetes用于管理云平臺中多個(gè)主機(jī)的容器化應(yīng)用,是一個(gè)全新的基于容器技術(shù)的分布式架構(gòu)領(lǐng)先方案。它在Docker技術(shù)的基礎(chǔ)上,為容器化的應(yīng)用提供部署運(yùn)行、資源調(diào)度、服務(wù)發(fā)現(xiàn)和動態(tài)伸縮等一系列功能,提高了大規(guī)模容器集群管理的便捷性。Kubernetes的主要目標(biāo)是讓部署容器化的應(yīng)用簡單且高效,提供了一種應(yīng)用部署、規(guī)劃、更新、維護(hù)機(jī)制。任務(wù)6.1Kubernetes概述相關(guān)知識6.1Kubernetes簡介由于Kubernetes在K和s間有8個(gè)字母,因此常簡稱為K8s.2015年7月,KubernetesV1.0正式發(fā)布。事實(shí)上,隨著用戶對K8s系統(tǒng)架構(gòu)與設(shè)計(jì)理念的深入了解,逐漸發(fā)現(xiàn)K8s系統(tǒng)正是處處為運(yùn)行云原生應(yīng)用而設(shè)計(jì)的。同時(shí),隨著用戶對K8s系統(tǒng)使用的加深和推廣,也產(chǎn)生了越來越多的有關(guān)云原生應(yīng)用的設(shè)計(jì)模式,使得基于K8s系統(tǒng)設(shè)計(jì)和開發(fā)生產(chǎn)級的復(fù)雜云原生應(yīng)用變得像啟動一個(gè)單機(jī)版容器服務(wù)那樣簡單易用。Kubernetes可以調(diào)度計(jì)算集群節(jié)點(diǎn)、動態(tài)管理節(jié)點(diǎn)上的作業(yè),并保證它們按用戶期望的狀態(tài)運(yùn)行;通過使用Labels和Pods,Kubernetes將應(yīng)用按照邏輯單元進(jìn)行分組,方便管理和服務(wù)發(fā)現(xiàn)。任務(wù)6.1Kubernetes概述相關(guān)知識6.1Kubernetes簡介Kubernetes作為一個(gè)完備的分布式系統(tǒng)支撐平臺,具有完備的集群管理能力。Kubernetes集群在多個(gè)Docker節(jié)點(diǎn)之間進(jìn)行協(xié)調(diào),提供了一個(gè)統(tǒng)一的可編程的模型,它具有以下幾個(gè)方面的增強(qiáng)功能。(1)自我修復(fù):一旦某一個(gè)容器崩潰,能夠在1秒中左右迅速啟動新的容器。
強(qiáng)大的故障發(fā)現(xiàn)和自我修復(fù)能力。Kubernetes會監(jiān)視容器的運(yùn)行狀態(tài),在其出現(xiàn)故障時(shí)重新啟動容器,并通過動態(tài)服務(wù)歸屬機(jī)制確保一個(gè)節(jié)點(diǎn)失效后,Kubernetes管理系統(tǒng)會自動將失效節(jié)點(diǎn)的任務(wù)重新調(diào)度到健康的節(jié)點(diǎn)上,而這些新啟動的容器能被發(fā)現(xiàn)并使用。(2)高集群利用率:在主機(jī)上調(diào)度,提高計(jì)算機(jī)的利用率。
與靜態(tài)的手工配置方式相比,Kubernetes通過在一組主機(jī)(節(jié)點(diǎn))上調(diào)度不同類型的工作負(fù)載,大幅度提高了計(jì)算機(jī)的利用率。集群越大,工作負(fù)載種類越多,主機(jī)的利用率就越高。任務(wù)6.1Kubernetes概述相關(guān)知識6.1Kubernetes簡介(3)組織和分組:通過標(biāo)簽系統(tǒng),以一組容器為單位來處理,并Kubernetes支持命名空間功能。
在大型集群中,追蹤所有正在運(yùn)行的容器可能非常困難。Kubernetes通過標(biāo)簽系統(tǒng),讓用戶和其他系統(tǒng)可以以一組容器為單位來進(jìn)行處理。同時(shí),Kubernetes支持命名空間功能,可使不同的用戶或團(tuán)隊(duì)在集群中看到相互隔離的不同視圖。(4)彈性伸縮:可以根據(jù)需要,自動對集群中正在運(yùn)行的容器數(shù)量進(jìn)行調(diào)整。
彈性伸縮是指適應(yīng)負(fù)載變化,在Kubernetes中,可根據(jù)負(fù)載的高低動態(tài)調(diào)整Pod的副本數(shù)量,以彈性可伸縮的方式提供資源。(5)滾動升級。
滾動升級是一種平滑過渡的升級方式,Kubernetes通過逐步替換的策略來保證整體系統(tǒng)的穩(wěn)定性。任務(wù)6.1Kubernetes概述相關(guān)知識6.1Kubernetes簡介
一個(gè)K8S系統(tǒng),通常稱為一個(gè)K8S集群(Cluster)。主要包括兩個(gè)部分:一個(gè)Master節(jié)點(diǎn)(主節(jié)點(diǎn))一群Node節(jié)點(diǎn)(計(jì)算節(jié)點(diǎn))任務(wù)6.1Kubernetes概述相關(guān)知識6.1Master節(jié)點(diǎn)主要還是負(fù)責(zé)管理和控制。Node節(jié)點(diǎn)是工作負(fù)載節(jié)點(diǎn),里面是具體的容器。Kubernetes核心概念1.MasterMaster:集群的控制平面,負(fù)責(zé)集群的決策(集群管理者)。一般會獨(dú)自占據(jù)一個(gè)服務(wù)器,負(fù)責(zé)管理集群,提供了集群的資源數(shù)據(jù)訪問入口。基本上Kubermetes所有的控制命令都將發(fā)給Master,由Master負(fù)責(zé)具體的執(zhí)行過程。Master組件可以在集群中的任何計(jì)算機(jī)上運(yùn)行,但建議讓Master占據(jù)個(gè)獨(dú)立的服務(wù)器,因?yàn)镸aster是整個(gè)集群的大腦,如果Master所在節(jié)點(diǎn)宕機(jī)或者不可用,所有的控制命令都將失效。6.1任務(wù)6.1Kubernetes概述相關(guān)知識1.MasterMaster節(jié)點(diǎn)包含以下關(guān)鍵組件。APIServer:Kubernetes中所有資源的增加、刪除、修改、查詢等操作指令的唯一入口。任何對資源進(jìn)行操作的指令都要交給APIServer處理,再提交給etcd。ControllerManager:Kubernetes所有資源對象的自動化控制中心??梢岳斫鉃槊總€(gè)資源都對應(yīng)一個(gè)控制器,而ControllerManager負(fù)責(zé)管理這些控制器。6.1任務(wù)6.1Kubernetes概述相關(guān)知識1.MasterMaster節(jié)點(diǎn)包含以下關(guān)鍵組件。Scheduler:負(fù)責(zé)資源調(diào)度(Pod調(diào)度),負(fù)責(zé)調(diào)度Pod到合適的Node上。如果把Scheduler看作一個(gè)黑匣子,那么它的輸入是Pod和由多個(gè)Node組成的列表,輸出是Pod和一個(gè)Node的綁定,即將Pod部署到Node上。用戶可以使用Kubernetes提供的調(diào)度算法,也可根據(jù)需求自定義調(diào)度算法。Etcd:一個(gè)高可用的鍵值存儲系統(tǒng),Kubernetes使用它來存儲各個(gè)資源的狀態(tài),從而實(shí)現(xiàn)了RESTful的API。6.1任務(wù)6.1Kubernetes概述相關(guān)知識2.Node集群的數(shù)據(jù)平面,負(fù)責(zé)為容器提供運(yùn)行環(huán)境(真正干活)。Node負(fù)責(zé)Pod的創(chuàng)建、啟動、監(jiān)控、重啟、銷毀,并實(shí)現(xiàn)軟件模式的負(fù)載均衡。Node組件除了Master,Kubermetes集群中的其他機(jī)器也被稱為Node節(jié)點(diǎn)。與Master節(jié)點(diǎn)一樣,Node節(jié)點(diǎn)可以是一臺物理主機(jī),也可以是一臺虛擬機(jī)。Node節(jié)點(diǎn)是Kubermets集群中的工作負(fù)載節(jié)點(diǎn),每個(gè)Node節(jié)點(diǎn)都會被Master節(jié)點(diǎn)分配些工作負(fù)載。當(dāng)某個(gè)Node節(jié)點(diǎn)宕機(jī)時(shí),其上的工作負(fù)載會被Master節(jié)點(diǎn)自動轉(zhuǎn)移到其他節(jié)點(diǎn)上去。每個(gè)Node節(jié)點(diǎn)上都運(yùn)行著以下關(guān)鍵進(jìn)程。6.1任務(wù)6.1Kubernetes概述相關(guān)知識2.Node每個(gè)Node主要由3個(gè)模塊組成,它們負(fù)責(zé)Pod的創(chuàng)建、啟動、監(jiān)控、重啟、銷毀,并實(shí)現(xiàn)軟件模式的負(fù)載均衡。Kubelet:是Master在每個(gè)Node上的代理,是Node上最重要的模塊,它負(fù)責(zé)維護(hù)和管理該Node上的所有容器,但是如果某容器不是通過Kubernetes創(chuàng)建的,則Node不會管理此容器。kube-proxy:實(shí)現(xiàn)KubernetesService的通信與負(fù)載均衡機(jī)制的重要組件。Docker:指的是容器運(yùn)行環(huán)境,目前Kubernetes支持Docker環(huán)境。6.1任務(wù)6.1Kubernetes概述相關(guān)知識2.Node
Node節(jié)點(diǎn)可以在運(yùn)行期間動態(tài)增加到Kubermetes集群中,前提是這個(gè)節(jié)點(diǎn)上已經(jīng)正確安裝、配置和啟動了上述關(guān)鍵進(jìn)程。在默認(rèn)情況下,Kubelet會向Master節(jié)點(diǎn)注冊自己,這也是Kubernetes推薦的Node節(jié)點(diǎn)管理方式。一旦Node節(jié)點(diǎn)被納入集群管理范圍,Kubelet進(jìn)程會定時(shí)向Master節(jié)點(diǎn)匯報(bào)自身的情況,例如操作系統(tǒng)、Docker版本、機(jī)器的CPU和內(nèi)存情況,以及之前有哪些Pod在運(yùn)行等。這樣Master節(jié)點(diǎn)可以獲知每個(gè)Node節(jié)點(diǎn)的資源使用情況,并實(shí)現(xiàn)高效負(fù)載均衡資源調(diào)度策略。若某一個(gè)Node節(jié)點(diǎn)超過指定時(shí)間不上報(bào)信息,會被Master節(jié)點(diǎn)判定為失聰?shù)臓顟B(tài),并被標(biāo)記為不可用,隨后Master節(jié)點(diǎn)會觸發(fā)節(jié)點(diǎn)轉(zhuǎn)移進(jìn)程。6.1任務(wù)6.1Kubernetes概述相關(guān)知識2.Node
Node是Kubernetes集群架構(gòu)中運(yùn)行Pod的服務(wù)節(jié)點(diǎn),Node包含的信息如下。(1)Node地址:主機(jī)的IP地址或NodeID。(2)Node的運(yùn)行狀態(tài):包含Pending、Running、Terminated三種狀態(tài)。(3)NodeCondition:描述Running狀態(tài)下Node的運(yùn)行條件,只有Ready一種狀態(tài)。(4)Node系統(tǒng)容量:描述Node可用的系統(tǒng)資源,包括CPU、內(nèi)存、最大可調(diào)度Pod數(shù)量等。(5)其他:內(nèi)核版本、Kubernetes版本等。6.1任務(wù)6.1Kubernetes概述相關(guān)知識3.pod
Pod是Kubernetes的基本操作單元,也是應(yīng)用運(yùn)行的載體。整個(gè)Kubernetes系統(tǒng)都是圍繞著Pod展開的。Pod是若干容器的組合,一個(gè)Pod內(nèi)的容器必須運(yùn)行在同一臺宿主機(jī)上,這些容器使用相同的命名空間、IP地址和端口,可以通過localhost互相發(fā)現(xiàn)和通信,可以共享一塊存儲卷空間。6.1任務(wù)6.1Kubernetes概述相關(guān)知識3.pod
Pod其實(shí)有兩種類型:靜態(tài)Pod和普通Pod。靜態(tài)Pod并不存在于Kubernetes的etcd存儲中,而是存放在某個(gè)Node的一個(gè)具體文件中,并且只在此Node上啟動。普通Pod一旦被創(chuàng)建,就會被放入etcd存儲中,隨后會被KubernetesMaster調(diào)度到某個(gè)具體的Node上進(jìn)行綁定,該P(yáng)od被對應(yīng)的Node上的kubelet進(jìn)程實(shí)例化為一組相關(guān)的Docker容器并啟動。在默認(rèn)情況下,當(dāng)Pod中的某個(gè)容器終止時(shí),Kubernetes會自動檢測到這個(gè)容器并重啟Pod(重啟Pod中的所有容器)。如果Pod所在的Node宕機(jī),則會將這個(gè)Node上的所有Pod重新調(diào)度到其他節(jié)點(diǎn)上。6.1任務(wù)6.1Kubernetes概述相關(guān)知識3.pod
一個(gè)Pod中的應(yīng)用容器共享一組資源。(1)PID命名空間:Pod中的不同應(yīng)用程序可以看到其他應(yīng)用程序的進(jìn)程ID。(2)網(wǎng)絡(luò)命名空間:Pod中的多個(gè)容器能夠訪問同一個(gè)IP地址和端口范圍。(3)IPC命名空間:Pod中的多個(gè)容器能夠使用SystemVIPC或POSIX消息隊(duì)列進(jìn)行通信。(4)UTS命名空間:Pod中的多個(gè)容器共享一個(gè)主機(jī)名。(5)共享存儲卷:Pod中的各個(gè)容器可以訪問在Pod級別定義的卷。6.1任務(wù)6.1Kubernetes概述相關(guān)知識4.ReplicationController
當(dāng)應(yīng)用托管在Kubernetes后,ReplicationController(RC)負(fù)責(zé)保證應(yīng)用持續(xù)運(yùn)行。RC用于管理Pod的副本,保證集群中存在指定數(shù)量的Pod副本。當(dāng)集群中副本的數(shù)量大于指定數(shù)量時(shí),會終止指定數(shù)量之外的多余容器;反之,會啟動少于指定數(shù)量的容器,以保證數(shù)量不變。在此基礎(chǔ)上,RC還提供了一些更高級的特性,如彈性伸縮、動態(tài)擴(kuò)容和滾動升級等。6.1任務(wù)6.1Kubernetes概述相關(guān)知識5.Service
為了適應(yīng)快速的業(yè)務(wù)需求,微服務(wù)架構(gòu)已經(jīng)逐漸成為主流,微服務(wù)架構(gòu)的應(yīng)用需要有非常好的服務(wù)編排支持。 Service是真實(shí)應(yīng)用服務(wù)的抽象,定義了Pod的邏輯上的集合和訪問Pod集合的策略。Service將代理Pod對外表現(xiàn)為一個(gè)單一的訪問接口,外部不需要了解Pod如何運(yùn)行,這給擴(kuò)展和維護(hù)帶來了很多好處,提供了一套簡化的服務(wù)代理和發(fā)現(xiàn)機(jī)制。6.1任務(wù)6.1Kubernetes概述相關(guān)知識6.Label
Kubernetes中的任意API對象都是通過Label進(jìn)行標(biāo)識的,Label以key/value的形式附加到各種對象上,如Pod、Service、RC、Node等,以識別這些對象并管理關(guān)聯(lián)關(guān)系等,如管理Service和Pod的關(guān)聯(lián)關(guān)系。一個(gè)資源對象可以定義任意數(shù)量的Label,同一個(gè)Label也可以被添加到任意數(shù)量的資源對象上。Label是RC和Service運(yùn)行的基礎(chǔ),二者通過Label來關(guān)聯(lián)Node上運(yùn)行的Pod。
可以通過給指定的資源對象捆綁一個(gè)或者多個(gè)不同的Label來實(shí)現(xiàn)多維度的資源分組管理功能,以便于靈活、方便地進(jìn)行資源分配、調(diào)度、配置等。6.1任務(wù)6.1Kubernetes概述相關(guān)知識6.Label
常用的Label分為如下幾類。(1)版本Label:"release":"stable"、"release":"canary"。(2)環(huán)境Label:"environment":"dev"、"environment":"qa"、"environment":"production"。(3)架構(gòu)Label:"tier":"frontend"、"tier":"backend"、"tier":"middleware"。(4)分區(qū)Label:"partition":"customerA"、"partition":"customerB"。(5)質(zhì)量管控Label:"track":"daily"、"track":"weekly"。6.1任務(wù)6.1Kubernetes概述相關(guān)知識7.Volume
Volume是Pod中能夠被多個(gè)容器訪問的共享目錄。Volume被定義在Pod上,Pod內(nèi)的容器可以訪問、掛載Volume。Volume與Pod的生命周期相同,與具體的Docker容器生命周期不相關(guān)。某個(gè)Docker容器刪除或終止時(shí),Volume中的數(shù)據(jù)不會丟失。Volume支持EmptyDir、HostPath、NFS、ISCSI、GlusterFS等類型的文件系統(tǒng)。6.1任務(wù)6.1Kubernetes概述相關(guān)知識Kubernetes概念Master:集群控制節(jié)點(diǎn),每個(gè)集群需要至少一個(gè)master節(jié)點(diǎn)負(fù)責(zé)集群的管控。Node:工作負(fù)載節(jié)點(diǎn),由master分配容器到這些node工作節(jié)點(diǎn)上,然后node節(jié)點(diǎn)上的docker負(fù)責(zé)容器的運(yùn)行。Pod:kubernetes的最小控制單元,容器都是運(yùn)行在pod中的,一個(gè)pod中可以有1個(gè)或者多個(gè)容器;Controller:控制器,通過它來實(shí)現(xiàn)對pod的管理,比如啟動pod、停止pod、伸縮pod的數(shù)量等等。Service:pod對外服務(wù)的統(tǒng)一入口,下面可以維護(hù)者同一類的多個(gè)pod。Label:標(biāo)簽,用于對pod進(jìn)行分類,同一類pod會擁有相同的標(biāo)簽。NameSpace:命名空間,用來隔離pod的運(yùn)行環(huán)境(默認(rèn)pod之間是可以相互訪問的,有了Namspace后,可以控制pod之間是否能訪問)。Volume:是Pod中能夠被多個(gè)容器訪問的共享目錄。6.1任務(wù)6.1Kubernetes概述
相關(guān)知識Kubernetes架構(gòu)及操作流程1.Kubernetes架構(gòu)
Kubernetes集群包含節(jié)點(diǎn)代理kubelet和Master組件,一切都基于分布式的存儲系統(tǒng)。Kubernetes架構(gòu)如圖所示。6.1任務(wù)6.1Kubernetes概述相關(guān)知識1.Kubernetes架構(gòu)
(1)KubernetesMaster服務(wù):KubernetesMaster服務(wù)包括APIServer、Scheduler、ControllerManager等。這些服務(wù)提供了API來收集和展現(xiàn)集群的當(dāng)前狀態(tài),并在節(jié)點(diǎn)之間分配Pod。用戶始終與Master的API直接交互。其為整個(gè)集群提供了一個(gè)統(tǒng)一視圖。
(2)主節(jié)點(diǎn)存儲:Kubernetes所有的持久化狀態(tài)都保存在etcd中。
(3)kubelet:其運(yùn)行在每個(gè)節(jié)點(diǎn)之上,負(fù)責(zé)控制Docker,向Master報(bào)告自己的狀態(tài)及配置節(jié)點(diǎn)級別的資源,如配置遠(yuǎn)程磁盤存儲。
(4)KubernetesProxy:其運(yùn)行在每個(gè)節(jié)點(diǎn)之上,為本地容器提供了一個(gè)單一的網(wǎng)絡(luò)接口,以連接一組Pod。6.1任務(wù)6.1Kubernetes概述相關(guān)知識2.Kubernetes的操作流程
(1)通過kubectl和KubernetesAPI,提交一個(gè)創(chuàng)建RC的請求,該請求通過APIServer被寫入etcd中。該RC請求包含一個(gè)Pod模板和一個(gè)希望的副本數(shù)。
(2)ControllerManager通過APIServer監(jiān)聽資源變化的接口監(jiān)聽該RC請求,如果當(dāng)前集群中沒有其所對應(yīng)的Pod實(shí)例,則根據(jù)RC中的Pod模板定義并生成一個(gè)Pod對象,通過APIServer寫入etcd。6.1任務(wù)6.1Kubernetes概述相關(guān)知識2.Kubernetes的操作流程(3)Scheduler通過查看集群的當(dāng)前狀態(tài)(有哪些可用節(jié)點(diǎn),以及各節(jié)點(diǎn)有哪些可用資源)執(zhí)行相應(yīng)的調(diào)度流程,將新的Pod綁定到指定的節(jié)點(diǎn)上,并通過APIServer將該結(jié)果寫入etcd中。(4)該節(jié)點(diǎn)上的kubelet會監(jiān)測分配給其所在節(jié)點(diǎn)的Pod組中的變化,并根據(jù)情況來啟動或者終止Pod。其過程包括在需要時(shí)對存儲卷進(jìn)行配置,將Docker鏡像下載到指定節(jié)點(diǎn)中,以及通過調(diào)用DockerAPI來啟動或終止各個(gè)容器。6.1任務(wù)6.1Kubernetes概述相關(guān)知識2.Kubernetes的操作流程6.1任務(wù)6.1Kubernetes概述相關(guān)知識2.Kubernetes的操作流程Kubernetes的操作流程(以部署一個(gè)nginx服務(wù)來說明kubernetes系統(tǒng)各個(gè)組件調(diào)用關(guān)系)1.首先要明確,一旦kubemnetes環(huán)境啟動之后,master和node都會將自身的信息存儲到etcd數(shù)據(jù)庫中。2.一個(gè)nginx服務(wù)的安裝請求會首先被發(fā)送到master節(jié)點(diǎn)的apiServer組件。3.apiServer組件會調(diào)用scheduler組件來決定到底應(yīng)該把這個(gè)服務(wù)安裝到哪個(gè)node節(jié)點(diǎn)上在此時(shí),它會從etcd中讀取各個(gè)node節(jié)點(diǎn)的信息,然后按照一定的算法進(jìn)行選擇,并將結(jié)果告知apiServer。4.apiServer調(diào)用controller-manager去調(diào)度Node節(jié)點(diǎn)安裝nginx服務(wù)。5.kubelet接收到指令后,會通知docker,然后由docker來啟動一個(gè)nginx的podpod是kubernetes的最小操作單元,容器必須跑在pod中。6.至此,一個(gè)nginx服務(wù)就運(yùn)行了,如果需要訪問nginx,就需要通過kube-proxy來對pod產(chǎn)生訪問的代理這樣。外界用戶就可以訪問集群中的nginx服務(wù)了。6.1任務(wù)6.1Kubernetes概述相關(guān)知識Kubeadm軟件包的作用Kubeadm是Kubernetes官方提供的用于快速部署和初始化Kubernetes集群的命令行工具。它的主要功能包括:部署和初始化:使用kubeadm可以在多個(gè)節(jié)點(diǎn)上快速部署和初始化Kubernetes集群。在初始化集群時(shí),kubeadm會檢查主機(jī)配置和組件依賴項(xiàng),配置kubelet和kube-proxy,生成TLS證書和密鑰,以及創(chuàng)建Kubernetes控制平面的核心組件(APIServer、ControllerManager和Scheduler等)。升級:kubeadm也支持集群的升級,可以根據(jù)需要將Kubernetes集群升級到新的版本。配置:使用kubeadm可以快速生成Kubernetes配置文件,這些配置文件可以用于其他部署工具(如Helm)進(jìn)行Kubernetes應(yīng)用程序部署。添加節(jié)點(diǎn):使用kubeadm可以方便地添加新的節(jié)點(diǎn)到現(xiàn)有的Kubernetes集群中。自定義:kubeadm還提供了一些選項(xiàng),允許用戶自定義集群的配置和部署方式,以滿足不同的需求和場景。7.1任務(wù)7.1Kubernetes的發(fā)展相關(guān)知識Kubelet軟件包的作用Kubelet是Kubernetes集群中的一個(gè)重要組件,它運(yùn)行在每個(gè)節(jié)點(diǎn)上,并負(fù)責(zé)管理節(jié)點(diǎn)上的容器。Kubelet的主要功能包括以下幾個(gè)方面:容器生命周期管理:Kubelet負(fù)責(zé)啟動、停止和重啟節(jié)點(diǎn)上的容器,并確保它們保持運(yùn)行狀態(tài)。它通過監(jiān)控容器的運(yùn)行狀態(tài)來確保容器在出現(xiàn)故障時(shí)能夠被及時(shí)重新啟動。資源管理:Kubelet還負(fù)責(zé)管理節(jié)點(diǎn)上的資源,包括CPU、內(nèi)存、磁盤等。它通過控制容器的資源使用來確保節(jié)點(diǎn)資源的充分利用和合理分配。安全管理:Kubelet負(fù)責(zé)確保容器的安全性,包括限制容器的權(quán)限、限制容器對主機(jī)文件系統(tǒng)的訪問、實(shí)現(xiàn)容器之間的隔離等。節(jié)點(diǎn)管理:Kubelet向控制平面匯報(bào)節(jié)點(diǎn)的狀態(tài)信息,包括節(jié)點(diǎn)的健康狀態(tài)、容器的運(yùn)行狀態(tài)、節(jié)點(diǎn)的資源使用情況等。這些信息對于集群的監(jiān)控和管理非常重要。網(wǎng)絡(luò)管理:Kubelet還負(fù)責(zé)為容器設(shè)置網(wǎng)絡(luò)環(huán)境,包括分配IP地址、設(shè)置網(wǎng)絡(luò)策略等??傊琄ubelet是Kubernetes集群中至關(guān)重要的組件之一,它負(fù)責(zé)管理節(jié)點(diǎn)上的容器,確保它們保持運(yùn)行狀態(tài),保障集群的穩(wěn)定性和可靠性。7.1任務(wù)7.1Kubernetes的發(fā)展相關(guān)知識Kubectl軟件包的作用Kubectl是Kubernetes命令行工具,它是Kubernetes的主要管理工具之一。通過kubectl,用戶可以與Kubernetes集群進(jìn)行交互,管理容器、Pod、服務(wù)、部署等各種資源對象。Kubectl的主要功能包括以下幾個(gè)方面:部署應(yīng)用:kubectl可以用來創(chuàng)建、更新和刪除部署、副本集、DaemonSet等應(yīng)用資源。管理Pod:kubectl可以用來創(chuàng)建、更新和刪除Pod,以及查看Pod的狀態(tài)、日志和運(yùn)行情況等。管理服務(wù):kubectl可以用來創(chuàng)建、更新和刪除服務(wù)資源,并查看服務(wù)的狀態(tài)和IP地址等。管理配置:kubectl可以用來管理Kubernetes中的配置信息,包括ConfigMap和Secret等。擴(kuò)容與縮容:kubectl可以用來擴(kuò)容和縮容部署和副本集等資源對象。訪問KubernetesAPI:kubectl可以用來訪問KubernetesAPI,以便于查詢和修改Kubernetes資源對象。調(diào)試應(yīng)用:kubectl可以用來調(diào)試應(yīng)用程序,包括查看Pod日志、執(zhí)行進(jìn)入容器等操作??傊?,kubectl是Kubernetes中最常用的命令行工具之一,它提供了豐富的功能,使得用戶可以方便地管理和操作Kubernetes集群。7.1任務(wù)7.1Kubernetes的發(fā)展相關(guān)知識實(shí)訓(xùn)目的(1)掌握Kubernetes在RHEL8.1操作系統(tǒng)中的安裝方法。(2)掌握Kubernetes集群的在線和離線創(chuàng)建。(3)掌握在Kubernetes上安裝Dashboard監(jiān)控界面的方法。實(shí)訓(xùn)內(nèi)容(1)在RHEL8.1操作系統(tǒng)中安裝Kubernetes集群。(2)在Kubernetes上安裝Dashboard監(jiān)控界面。6.1任務(wù)6.1Kubernetes概述項(xiàng)目實(shí)訓(xùn)(部署Kubernetes集群)實(shí)訓(xùn)步驟1.任務(wù)環(huán)境準(zhǔn)備本任務(wù)選用兩臺部署在VMwareWorkstation16中的虛擬機(jī),虛擬機(jī)均已預(yù)先安裝Redhat8.1運(yùn)行環(huán)境。各虛擬主機(jī)基本配置信息表如表6-1所示。表6-1各虛擬主機(jī)基本配置信息表6.1任務(wù)6.1Kubernetes概述項(xiàng)目實(shí)訓(xùn)主機(jī)名IP地址虛擬機(jī)CPU/內(nèi)存節(jié)點(diǎn)角色k8s-master01/242vcpus/8GB管理節(jié)點(diǎn)k8s-node0102/242vcpus/8GB工作節(jié)點(diǎn)1k8s-node0203/242vcpus/8GB工作節(jié)點(diǎn)2實(shí)訓(xùn)步驟2.基本環(huán)境設(shè)置,3臺節(jié)點(diǎn)主機(jī)均需設(shè)置(1)根據(jù)各虛擬主機(jī)基本配置信息表設(shè)置相應(yīng)主機(jī)的主機(jī)名。(2)禁用RedHatSubscriptionManager訂閱管理器。(3)編輯/etc/ho
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼鐵制造行業(yè)市場深度調(diào)研及發(fā)展趨勢和投資前景研究分析報(bào)告
- 金融服務(wù)行業(yè)市場發(fā)展分析及前景趨勢預(yù)測與投融資研究報(bào)告
- 郵政特色服務(wù)行業(yè)市場供需分析產(chǎn)業(yè)投資規(guī)劃分析研究報(bào)告
- 2025年灌南縣招教考試備考題庫帶答案解析
- 葡萄牙銀行業(yè)投資規(guī)劃風(fēng)險(xiǎn)控制政策支持市場競爭力運(yùn)營效率市場競爭分析報(bào)告
- 荷蘭鮮花種植業(yè)市場供需動態(tài)及投資布局規(guī)劃報(bào)告書
- 2025年蒼山縣幼兒園教師招教考試備考題庫附答案解析(必刷)
- 2026南航物流秋季校園招聘筆試題庫附答案解析
- 2026年心理咨詢師之心理咨詢師基礎(chǔ)知識考試題庫附答案(精練)
- 2025年邊壩縣幼兒園教師招教考試備考題庫附答案解析(奪冠)
- 2025陜西陜煤澄合礦業(yè)有限公司招聘570人參考筆試題庫及答案解析
- 2025年倉儲服務(wù)外包合同協(xié)議
- 2025遼寧沈陽金融商貿(mào)經(jīng)濟(jì)技術(shù)開發(fā)區(qū)管理委員會運(yùn)營公司招聘60人考試歷年真題匯編帶答案解析
- 2025年刑法學(xué)考試試題及答案
- 廣東省汕頭市金平區(qū)2024-2025學(xué)年七年級上學(xué)期期末地理試題
- 2025年二手車交易市場發(fā)展可行性研究報(bào)告及總結(jié)分析
- 北京市交通運(yùn)輸綜合執(zhí)法總隊(duì)軌道交通運(yùn)營安全專職督查員招聘10人考試參考題庫附答案解析
- 湘教版八年級地理上冊 第三章《中國的自然資源》單元測試卷及答案
- 2025湘教版八年級地理上冊期末復(fù)習(xí)全冊知識點(diǎn)提綱
- DB63∕T 1917-2021 森林防火隔離帶建設(shè)技術(shù)規(guī)程
- 浙江省強(qiáng)基聯(lián)盟2025-2026學(xué)年高三上學(xué)期12月考試物理試卷
評論
0/150
提交評論