版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGE6博學(xué)谷——讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效PAGE12《虛擬化技術(shù)》教學(xué)設(shè)計(jì)課程名稱:授課年級:授課學(xué)期:教師姓名:年月課題名稱項(xiàng)目7使用容器編排技術(shù)部署應(yīng)用任務(wù)7-1使用Docker-compose部署單機(jī)應(yīng)用計(jì)劃課時(shí)4課時(shí)教學(xué)引入為了提高應(yīng)用開發(fā)、測試和部署的效率,優(yōu)化容器化應(yīng)用的管理與擴(kuò)展,公司決定使用DockerCompose和Kubernetes兩種容器編排技術(shù),技術(shù)主管要求王亮使用DockerCompose部署單機(jī)環(huán)境下的容器應(yīng)用,部署Kubernetes集群并部署多機(jī)環(huán)境下的容器應(yīng)用,加快各類業(yè)務(wù)系統(tǒng)的上線,降低運(yùn)維成本。教學(xué)目標(biāo)【知識目標(biāo)】(1)掌握Docker-compose的基本概念。(2)掌握Docker-compose的功能。(3)理解多容器應(yīng)用的編排和管理?!炯寄苣繕?biāo)】(1)能夠使用DockerCompose創(chuàng)建和管理多容器服務(wù)。(2)能夠高效地調(diào)試和管理DockerCompose項(xiàng)目?!舅仞B(yǎng)目標(biāo)】(1)通過編排WordPress博客管理系統(tǒng),培養(yǎng)在遇到問題時(shí),自主解決問題的能力。(2)通過編排PythonWEB集群應(yīng)用,培養(yǎng)通過查閱文檔和溝通解決問題的能力。教學(xué)重點(diǎn)能夠高效地調(diào)試和管理DockerCompose項(xiàng)目。教學(xué)難點(diǎn)能夠高效地調(diào)試和管理DockerCompose項(xiàng)目。教學(xué)方式課堂教學(xué)以PPT講授為主,并結(jié)合多媒體進(jìn)行教學(xué)教學(xué)過程任務(wù)7-1使用Docker-compose部署單機(jī)應(yīng)用※通過直接引入的方式導(dǎo)入新課在部署一個(gè)包含多個(gè)容器的應(yīng)用時(shí),容器之間存在相互關(guān)系,如WEB集群應(yīng)用,這就需要配置容器之間的關(guān)系和容器啟動(dòng)順序,公司技術(shù)主管要求王亮使用Docker-compose技術(shù)編排部署WordPress博客管理系統(tǒng)和JavaWEB集群應(yīng)用?!抡n講解一、教師通過PPT的方式講解1.Docker-compose的基本概念Docker-compose和核心功能是多容器應(yīng)用的編排和管理。多容器應(yīng)用指在一個(gè)應(yīng)用中運(yùn)行多個(gè)容器,這些容器需要有效地組織、協(xié)調(diào)和管理,涉及到如何確保容器間的通信、負(fù)載均衡、服務(wù)發(fā)現(xiàn)、自動(dòng)擴(kuò)展、故障恢復(fù)等任務(wù),用戶可以使用YAML文件定義多個(gè)Docker容器的服務(wù)、網(wǎng)絡(luò)、卷等配置。(1)服務(wù)(Service)在DockerCompose中,每個(gè)容器應(yīng)用都被稱為一個(gè)服務(wù)。每個(gè)服務(wù)定義了一個(gè)容器的運(yùn)行方式,可以包含鏡像、構(gòu)建方式、網(wǎng)絡(luò)、端口等配置,例如,數(shù)據(jù)庫服務(wù)、前端服務(wù)、后端服務(wù)等,都可以在同一個(gè)Compose文件中定義。(2)多容器應(yīng)用(Multi-containerApplication)DockerCompose允許將多個(gè)服務(wù)(容器)組合在一起形成一個(gè)完整的應(yīng)用,支持它們之間的通信與協(xié)調(diào)。這對于需要多個(gè)組件共同工作的應(yīng)用(如Web前端、數(shù)據(jù)庫、緩存等)非常有用。(3)網(wǎng)絡(luò)(Network)Compose自動(dòng)為容器創(chuàng)建網(wǎng)絡(luò),使得不同容器間可以通過服務(wù)名稱互相訪問。也可以在docker-Compose.yml文件中自定義網(wǎng)絡(luò)。(4)卷(Volume)卷是用來持久化容器數(shù)據(jù)的,Docker-Compose允許定義和掛載卷,確保容器重啟或銷毀后數(shù)據(jù)依然保留。(1)服務(wù)(Service)在DockerCompose中,每個(gè)容器應(yīng)用都被稱為一個(gè)服務(wù)。每個(gè)服務(wù)定義了一個(gè)容器的運(yùn)行方式,可以包含鏡像、構(gòu)建方式、網(wǎng)絡(luò)、端口等配置,例如,數(shù)據(jù)庫服務(wù)、前端服務(wù)、后端服務(wù)等,都可以在同一個(gè)Compose文件中定義。(2)多容器應(yīng)用(Multi-containerApplication)DockerCompose允許將多個(gè)服務(wù)(容器)組合在一起形成一個(gè)完整的應(yīng)用,支持它們之間的通信與協(xié)調(diào)。這對于需要多個(gè)組件共同工作的應(yīng)用(如Web前端、數(shù)據(jù)庫、緩存等)非常有用。(3)網(wǎng)絡(luò)(Network)Compose自動(dòng)為容器創(chuàng)建網(wǎng)絡(luò),使得不同容器間可以通過服務(wù)名稱互相訪問。也可以在docker-Compose.yml文件中自定義網(wǎng)絡(luò)。(4)卷(Volume)卷是用來持久化容器數(shù)據(jù)的,Docker-Compose允許定義和掛載卷,確保容器重啟或銷毀后數(shù)據(jù)依然保留。2.docker-compose.yml文件語法Docker-compose使用docker-compose.yml文件來定義和配置服務(wù),該文件采YAML格式,描述了服務(wù)、網(wǎng)絡(luò)、卷等的詳細(xì)配置,該文件通常包含version、services、volumes、networks等關(guān)鍵字。二、編排部署WordPress博客管理系統(tǒng)1.編排WordPress(1)上傳docker-compose二進(jìn)制命令文件(2)拉取鏡像(3)編排服務(wù)2.部署wordpress和mysql服務(wù)(1)啟動(dòng)wordpress和mysql服務(wù)(2)部署服務(wù)三、編排部署JavaWEB集群應(yīng)用1.編排JavaWEB(1)拉取鏡像(2)準(zhǔn)備配置文件(3)編排服務(wù)2.部署訪問服務(wù)(1)啟動(dòng)服務(wù)(2)訪問JavaWEB集群應(yīng)用※歸納總結(jié)教師回顧本節(jié)課所講的知識,并通過測試題的方式引導(dǎo)學(xué)生解答問題并給予指導(dǎo)?!贾米鳂I(yè)教師通過超星學(xué)習(xí)通平臺布置本節(jié)課作業(yè)以及下節(jié)課的預(yù)習(xí)作業(yè)教學(xué)小結(jié)本項(xiàng)目介紹了單機(jī)和多機(jī)環(huán)境下的容器編排,任務(wù)1中介紹了在單機(jī)環(huán)境下如何使用docker-compose編排容器,編排部署了PHPWEB程序和JavaWEB程序,項(xiàng)目7使用容器編排技術(shù)部署應(yīng)用任務(wù)7-2部署基于Containerd容器引擎的Kubernetes集群計(jì)劃課時(shí)4課時(shí)教學(xué)引入在單臺服務(wù)器上,通過docker-compose技術(shù)技術(shù)提升應(yīng)用部署的效率,但無法完成服務(wù)器集群環(huán)境下容器的編排和自動(dòng)化部署,實(shí)現(xiàn)服務(wù)的彈性伸縮和高可用。公司技術(shù)負(fù)責(zé)人要求王亮構(gòu)建一臺Master控制節(jié)點(diǎn)服務(wù)器,二臺Node工作節(jié)點(diǎn)服務(wù)器,部署基礎(chǔ)containerd容器引擎的Kubernetes集群。教學(xué)目標(biāo)【知識目標(biāo)】(1)了解containerd容器引擎的特點(diǎn)。(2)掌握Kubernetes的架構(gòu)以及各個(gè)組件的功能?!炯寄苣繕?biāo)】(1)能夠安裝containerd容器引擎。(2)能夠運(yùn)維鏡像和容器?!舅仞B(yǎng)目標(biāo)】(1)通過學(xué)習(xí)containerd的特點(diǎn),培養(yǎng)從細(xì)微處觀察事物的能力。(2)通過部署Kubernetes集群,培養(yǎng)認(rèn)真仔細(xì)和解決問題的能力。教學(xué)重點(diǎn)能夠運(yùn)維鏡像和容器教學(xué)難點(diǎn)能夠運(yùn)維鏡像和容器教學(xué)方式任務(wù)驅(qū)動(dòng),案例教學(xué)教學(xué)過程任務(wù)7-2部署基于Containerd容器引擎的Kubernetes集群※通過直接引入的方式導(dǎo)入新課在單臺服務(wù)器上,通過docker-compose技術(shù)技術(shù)提升應(yīng)用部署的效率,但無法完成服務(wù)器集群環(huán)境下容器的編排和自動(dòng)化部署,實(shí)現(xiàn)服務(wù)的彈性伸縮和高可用。公司技術(shù)負(fù)責(zé)人要求王亮構(gòu)建一臺Master控制節(jié)點(diǎn)服務(wù)器,二臺Node工作節(jié)點(diǎn)服務(wù)器,部署基礎(chǔ)containerd容器引擎的Kubernetes集群?!抡n講解一、教師通過PPT的方式講解。1.containerd容器引擎的特點(diǎn)containerd是一個(gè)輕量級的容器運(yùn)行時(shí)引擎,具備如下特點(diǎn)。(1)與容器編排系統(tǒng)集成containerd作為容器編排系統(tǒng)(如Kubernetes)的基礎(chǔ)組件,用于管理容器的生命周期。它提供了符合OCI(OpenContainerInitiative,開放容器倡議)標(biāo)準(zhǔn)的接口,使得不同容器編排系統(tǒng)可以統(tǒng)一管理不同容器運(yùn)行時(shí)的容器。(2)輕量級和高性能由于containerd的設(shè)計(jì)目標(biāo)是輕量級和高性能,它相比于一些功能更為復(fù)雜的容器引擎,如Docker,具有更小的資源消耗和更高的運(yùn)行效率。(3)模塊化架構(gòu)containerd的架構(gòu)設(shè)計(jì)模塊化,它由多個(gè)組件組成,包括容器運(yùn)行時(shí)、圖像服務(wù)、快照管理、網(wǎng)絡(luò)管理等,可以靈活地集成到各種容器平臺和解決方案中。(4)簡化的功能集containerd提供了一組基本的功能,如容器的創(chuàng)建、啟動(dòng)、停止、刪除等,而且它的設(shè)計(jì)更加注重穩(wěn)定性和可靠性。相比于Docker這樣功能更為豐富的容器解決方案,containerd更專注于容器生命周期的管理。(5)開源和社區(qū)支持containerd是一個(gè)開源項(xiàng)目,擁有一個(gè)活躍的社區(qū),用戶可以自由地獲取源代碼、提交問題和貢獻(xiàn)代碼,containerd在容器技術(shù)領(lǐng)域具有較好的可持續(xù)性和發(fā)展?jié)摿Α?.Kubernetes架構(gòu)和各個(gè)組件功能Kubernetes采用主從分布式架構(gòu),由Master控制節(jié)點(diǎn)(也稱管理節(jié)點(diǎn))和Node工作節(jié)點(diǎn)組成,由控制節(jié)點(diǎn)發(fā)出命令,然后Node工作節(jié)點(diǎn)完成任務(wù).(1)控制節(jié)點(diǎn)Master要對集群資源進(jìn)行調(diào)度管理,Master需要安裝APIServer(應(yīng)用程序接口服務(wù))、Controller-ManagerServer(控制器管理服務(wù))、Scheduler(調(diào)度)、ClusterStateStore(集群存儲)、Kubectl等組件。①APIServerAPIServer(應(yīng)用程序接口服務(wù))主要用來處理REST的操作,確保它們生效,執(zhí)行相關(guān)業(yè)務(wù)邏輯,更新Etcd存儲中的相關(guān)對象。②Controller-ManagerServerController-ManagerServer執(zhí)行大部分控制管理集群層次的功能,它既執(zhí)行生命周期功能(命名空間的創(chuàng)建和生命周期、事件垃圾收集、已終止垃圾收集、級聯(lián)刪除垃圾收集、Node垃圾收集),也執(zhí)行API業(yè)務(wù)邏輯(Pod的彈性擴(kuò)容),提供自愈能力、擴(kuò)容、應(yīng)用生命周期管理、服務(wù)發(fā)現(xiàn)、路由、服務(wù)綁定等。③SchedulerScheduler組件為容器自動(dòng)選擇主機(jī),依據(jù)請求資源的可用性、服務(wù)請求的質(zhì)量等約束條件,Scheduler監(jiān)控未綁定的Pod,并將其綁定至特定的Node。④ClusterStateStoreKubernetes默認(rèn)使用Etcd作為集群整體存儲,Etcd是一個(gè)簡單的分布式鍵值對存儲數(shù)據(jù)庫,用來共享配置和服務(wù)發(fā)現(xiàn)。集群的所有狀態(tài)都存儲在Etcd中,Etcd具有監(jiān)控的能力,因此當(dāng)信息發(fā)生變化時(shí),Etcd就能夠快速地通知集群中相關(guān)組件。⑤KubectlKubectl可以安裝在Master上,也可以安裝在Node上,它用于通過命令行與APIServer交互,進(jìn)而對Kubernetes進(jìn)行操作,實(shí)現(xiàn)在集群中對各種資源的增刪改查等操作。(2)工作節(jié)點(diǎn)(Node)Node是真正的工作節(jié)點(diǎn),運(yùn)行容器應(yīng)用,Node工作節(jié)點(diǎn)上需要運(yùn)行Kubelet、ContainerRuntime(容器運(yùn)行時(shí))、Kube-Proxy(kube代理)等組件。(1)KubeletKubelet是Kubernetes中最主要控制器,負(fù)責(zé)驅(qū)動(dòng)容器執(zhí)行層和整個(gè)容器生命周期。在Kubernetes中,Pod是基本的執(zhí)行單元,它可以包括多個(gè)容器和存儲數(shù)據(jù)卷,將一個(gè)或者多個(gè)容器打包成單一的Pod應(yīng)用,由Master負(fù)責(zé)調(diào)度Pod。在Node節(jié)點(diǎn)上由Kubelet啟動(dòng)Pod內(nèi)的容器或者數(shù)據(jù)卷,Kubelet負(fù)責(zé)管理Pod、容器、鏡像、數(shù)據(jù)卷等,實(shí)現(xiàn)集群對工作節(jié)點(diǎn)的管理,并將容器運(yùn)行狀態(tài)匯報(bào)給APIServer。(2)容器每一個(gè)Node工作節(jié)點(diǎn)都會運(yùn)行ContainerRuntime(容器運(yùn)行時(shí)),ContainerRuntime負(fù)責(zé)下載鏡像、運(yùn)行容器。Kubernetes本身并不提供ContainerRuntime環(huán)境,但提供了接口,可以插入所選擇的容器運(yùn)行時(shí)環(huán)境,本書采用containerd作為Kubernetes的容器運(yùn)行時(shí)。(3)Kube-Proxy在Kubernetes中,Kube-Proxy負(fù)責(zé)為Pod創(chuàng)建代理服務(wù),Kube-Proxy通過Iptables或者IPVS規(guī)則將訪問引導(dǎo)至服務(wù)IP,并重定向至后端應(yīng)用,進(jìn)而實(shí)現(xiàn)負(fù)載均衡訪問應(yīng)用。二、構(gòu)建kubernetes基礎(chǔ)環(huán)境1.創(chuàng)建3臺服務(wù)器在本地磁盤(如E盤)創(chuàng)建目錄,名稱為項(xiàng)目7,在項(xiàng)目7下創(chuàng)建三個(gè)子目錄master、node1、node2,然后使用CentOS8.ova模板機(jī)創(chuàng)建名稱為master、node1、node2的服務(wù)器,保存到對應(yīng)的磁盤目錄中。2配置基礎(chǔ)環(huán)境(三臺服務(wù)器)(1)使用SecurtCrt工具登錄到master和node1、node2節(jié)點(diǎn),(2)配置名稱解析(3)關(guān)閉防火墻、selinux、交換分區(qū)(4)修改內(nèi)核參數(shù)\①加載模塊②修改其他內(nèi)核參數(shù)三、安裝containerd容器引擎在3臺服務(wù)器上都需要安裝containerd容器引擎,這里以master節(jié)點(diǎn)為例進(jìn)行講解,其他兩個(gè)節(jié)點(diǎn)的安裝與master節(jié)點(diǎn)一致。(1)配置yum源(2)安裝啟動(dòng)Containerd(3)修改Containerd配置(4)安裝配置nerdctl四、部署Kubernetes集群1.配置yum源(1)增加yum源(三臺服務(wù)器)(2)安裝依賴(三臺服務(wù)器)2.安裝Kubeadm、Kubelet、Kubectl(三臺服務(wù)器)在三臺服務(wù)器上安裝kubeadm用來初始化集群,kubelet用于在集群每個(gè)節(jié)點(diǎn)上啟動(dòng)Pod和容器,kubectl用于與集群通信的命令行工具。安裝完成后,啟動(dòng)kubelet并設(shè)置為開機(jī)自啟動(dòng)3.集群初始化(Master控制節(jié)點(diǎn))(1)控制節(jié)點(diǎn)初始化集群(2)創(chuàng)建相關(guān)目錄和文件(Master控制節(jié)點(diǎn))(3)工作節(jié)點(diǎn)加入集群(4)控制節(jié)點(diǎn)加入集群(5)安裝網(wǎng)絡(luò)組件(6)查看容器運(yùn)行時(shí)(7)查看集群組件及工作狀態(tài)(8)配置kubectl命令自動(dòng)補(bǔ)全功能※歸納總結(jié)教師回顧本節(jié)課所講的知識,并通過測試題的方式引導(dǎo)學(xué)生解答問題并給予指導(dǎo)?!贾米鳂I(yè)教師通過超星學(xué)習(xí)通平臺布置本節(jié)課作業(yè)以及下節(jié)課的預(yù)習(xí)作業(yè)教學(xué)小結(jié)本項(xiàng)目基于VMwareWorksation構(gòu)建了3臺虛擬機(jī),在任務(wù)二中部署了虛擬機(jī)網(wǎng)絡(luò)課題名稱項(xiàng)目7使用容器編排技術(shù)部署應(yīng)用任務(wù)7-3在Kubernetes集群上部署服務(wù)計(jì)劃課時(shí)4課時(shí)教學(xué)引入在3臺服務(wù)器成功部署kubernetes集群后,技術(shù)主管要求王亮學(xué)習(xí)集群中的各類核心資源的作用,使用kubectl命令行編寫Yaml腳本兩種方式,在集群中部署容器應(yīng)用,實(shí)現(xiàn)在多主機(jī)集群環(huán)境下的容器編排。教學(xué)目標(biāo)【知識目標(biāo)】(1)掌握Pod、Deployment、Service等核心資源的作用。(2)掌握Kubectl常用命令的用法。(3)掌握Yaml腳本的語法規(guī)范?!炯寄苣繕?biāo)】(1)能夠使用Kubectl命令部署集群應(yīng)用。(2)能夠使用Yaml腳本部署集群應(yīng)用?!舅仞B(yǎng)目標(biāo)】(1)通過創(chuàng)建Pod、Deployment和Service資源,學(xué)會通過事物之間邏輯關(guān)系理解事物。(2)通過學(xué)習(xí)編寫Yaml腳本創(chuàng)建資源,學(xué)會不斷探索,精益求精的素養(yǎng)。`教學(xué)重點(diǎn)使用Kubectl命令部署集群應(yīng)用教學(xué)難點(diǎn)使用Yaml腳本部署集群應(yīng)用。教學(xué)方式任務(wù)驅(qū)動(dòng),案例教學(xué)教學(xué)過程任務(wù)7-3在Kubernetes集群上部署服務(wù)※通過直接引入的方式導(dǎo)入新課在3臺服務(wù)器成功部署kubernetes集群后,技術(shù)主管要求王亮學(xué)習(xí)集群中的各類核心資源的作用,使用kubectl命令行編寫Yaml腳本兩種方式,在集群中部署容器應(yīng)用,實(shí)現(xiàn)在多主機(jī)集群環(huán)境下的容器編排?!抡n講解一、教師通過PPT的方式講解。1.Kubernetes核心資源在Kubernetes中,核心資源是集群的基礎(chǔ)設(shè)施和運(yùn)行應(yīng)用程序的基本構(gòu)件。這些核心資源定義了應(yīng)用程序的部署、網(wǎng)絡(luò)、存儲和配置等方面,使得應(yīng)用程序能夠在Kubernetes集群中可靠地運(yùn)行和擴(kuò)展。以下是一些常用的Kubernetes資源類型。(1)PodPod是Kubernetes中最小的部署單元,在一個(gè)Pod中,通常會有一個(gè)應(yīng)用程序容器,以及輔助日志收集器、監(jiān)控代理等輔助容器,這些容器共享Pod網(wǎng)絡(luò)和存儲資源,共同協(xié)作來完成特定任務(wù),以下是一些關(guān)于Pod的重要特性。①共享網(wǎng)絡(luò)命名空間②共享存儲卷③生命周期管理④彈性擴(kuò)展⑤資源調(diào)度⑥監(jiān)控和日志(2)Deployment控制器Deployment是Kubernetes中的一種資源對象,用于管理Pod的部署和更新。它提供了一種聲明性方式來定義應(yīng)用程序的期望狀態(tài),并確保集群實(shí)際狀態(tài)與之一致,Deployment使用ReplicaSet來管理Pod的副本,支持滾動(dòng)更新和回滾操作,Deployment控制器的特點(diǎn)如下。①聲明性配置②自動(dòng)化部署③滾動(dòng)更新④回滾操作⑤擴(kuò)展性和高可用性⑥版本管理(3)Service服務(wù)發(fā)現(xiàn)Service用于定義一組Pod的訪問方式,提供服務(wù)發(fā)現(xiàn)和負(fù)載均衡功能,Service允許用戶將一組具有相同功能的Pod組織成一個(gè)邏輯單元,為它們分配一個(gè)穩(wěn)定的虛擬IP地址和DNS名稱,用戶或者其他應(yīng)用程序可以通過這些標(biāo)識來訪問Pod中的容器服務(wù)。Service將請求均衡地分發(fā)到后端Pod實(shí)例上,以實(shí)現(xiàn)負(fù)載均衡和高可用性。Kubernetes使用內(nèi)置的負(fù)載均衡器來管理Service,確保請求能夠均衡地分發(fā)到各個(gè)Pod上,提高應(yīng)用程序的性能和可靠性,Servie服務(wù)發(fā)現(xiàn)的類型包括以下幾種。①ClusterIP②NodePort③LoadBalancer④ExternalName⑤Headless(4)Volume數(shù)據(jù)卷Volume是用于持久化數(shù)據(jù)的抽象概念,它可以附加一個(gè)或多個(gè)容器到Pod中,Volumes提供了在容器之間共享和存儲數(shù)據(jù)的機(jī)制,包括空目錄、主機(jī)路徑、網(wǎng)絡(luò)存儲等。(5)Configmap和SecretConfigmap和Secret用于管理應(yīng)用程序的配置信息和敏感數(shù)據(jù),configmap用于存儲鍵值對形式的配置數(shù)據(jù),而secret則用于存儲敏感信息,如密碼、令牌等。(6)Namespace命名空間(7)Serviceaccount2.Kubectl命令行工具Kubectl是Kubernetes的命令行客戶端工具,用于與Kubernetes集群進(jìn)行交互,管理集群中的資源,在使用Kubectl命令操作集群時(shí),首先要通過.kube/config中的證書和私鑰配置進(jìn)行客戶端認(rèn)證,成功登錄到集群后才可以操作集群資源,以下是Kubectl命令的格式和一些常見用法。(1)命令格式Kubectl的命令格式為Kubectl[Command][TYPE][NAME][flags](2)常見用法①查看資源列表②查看特定資源的詳細(xì)信息③創(chuàng)建資源④刪除資源⑤在容器內(nèi)部執(zhí)行命令⑥查看日志3.使用Yaml創(chuàng)建資源的優(yōu)勢在生產(chǎn)環(huán)境下,使用Yaml腳本方式部署應(yīng)用是一種常見做法,這種方式具有以下5個(gè)優(yōu)點(diǎn)。(1)可維護(hù)性(2)可重復(fù)性(3)可讀性(4)靈活性(5)靈活性(6)自動(dòng)化部署(7)編寫Yaml腳本時(shí)的常用字段①資源版本②資源類型③元數(shù)據(jù)④定義資源主體內(nèi)容4.Yaml腳本基本語法規(guī)范(1)結(jié)構(gòu)表示在編寫Yaml腳本時(shí),使用縮進(jìn)表示字段的層級關(guān)系,同一層級的字段左側(cè)保持對齊,通常使用兩個(gè)或四個(gè)空格的縮進(jìn),不使用制表符(Tab)進(jìn)行縮進(jìn)。(2)鍵值對使用冒號加空格來分隔鍵和值,鍵是唯一的,通常是字符串。(3)列表(數(shù)組)使用短橫線加空格來表示列表項(xiàng),列表項(xiàng)通常會縮進(jìn),表示屬于上一級的列表。(4)對象(映射)對象是一組鍵值對的集合,對象的每個(gè)鍵值對都會縮進(jìn),表示屬于上一級的對象。(5)數(shù)據(jù)類型支持字符串、布爾值、整數(shù)、浮點(diǎn)數(shù)、null、時(shí)間、日期等數(shù)據(jù)類型,字符串通常不需要引號,但如果包含特殊字符,則需要用單引號或雙引號括起來,使用true/false表示布爾值,使用null表示空值。(6)注釋使用井號#開頭表示注釋,注釋內(nèi)容不會被解析。(7)多文檔支持使用三個(gè)短橫線來分隔一個(gè)文件中的多個(gè)文檔。(8)復(fù)雜結(jié)構(gòu)字典和列表可以嵌套使用。二.使用Kubectl命令部署服務(wù)1.使用Pod部署Nginx服務(wù)創(chuàng)建Pod查看Pod運(yùn)行狀態(tài)訪問Pod中容器服務(wù)查看Pod描述信息進(jìn)入容器執(zhí)行相關(guān)操作刪除pod2.使用Deployment部署Nginx服務(wù)在使用K8s部署服務(wù)時(shí),創(chuàng)建一個(gè)Pod無法實(shí)現(xiàn)容器應(yīng)用的擴(kuò)容和縮容,也無法實(shí)現(xiàn)Pod出現(xiàn)問題后,業(yè)務(wù)自動(dòng)恢復(fù),通過控制器可以控制創(chuàng)建Pod的數(shù)量,當(dāng)某個(gè)Pod運(yùn)行失敗后,控制器還可以自動(dòng)啟動(dòng)1個(gè)Pod來替代,實(shí)現(xiàn)服務(wù)自恢復(fù),同時(shí)還可以實(shí)現(xiàn)應(yīng)用的擴(kuò)縮容、應(yīng)用版本滾動(dòng)更新等。(1)創(chuàng)建Deployment控制器,運(yùn)行3個(gè)Pod(2)查看運(yùn)行的Deployment控制器和Pod(3)Pod自動(dòng)恢復(fù)(4)Pod擴(kuò)縮容(5)刪除Deployment(6)升級回退服務(wù)版本①查看服務(wù)版本②升級運(yùn)行容器的鏡像版本③回退版本3.使用Service服務(wù)發(fā)現(xiàn)訪問后端Pod通過Deployment控制器創(chuàng)建了多個(gè)Pod后,每次訪問Pod服務(wù)時(shí),都需要使用特定Pod的IP地址,通過創(chuàng)建Service服務(wù)發(fā)現(xiàn)可以為多個(gè)Pod設(shè)置統(tǒng)一的訪問入口,訪問Service服務(wù)的IP地址后,就可以負(fù)載均衡的訪問后端的Pod容器服務(wù)了。(1)創(chuàng)建Service(2)訪問服務(wù)發(fā)現(xiàn)①查詢服務(wù)發(fā)現(xiàn)詳細(xì)信息②通過服務(wù)發(fā)現(xiàn)訪問后端服務(wù)(3)集群外訪問服務(wù)三.使用Yaml腳本創(chuàng)建Pod1.查看資源定義字段(1)資源類型和府服務(wù)版本在返回的結(jié)果中,最上邊的kind表示資源的類型,這里為Pod(p字母大寫),VERSION表示版本,這里的值是v1,表示當(dāng)前服務(wù)版本是v1。(2)字段名稱在返回結(jié)果中,F(xiàn)IELDS表示資源定義的字段,包括apiVersion(服務(wù)版本)、kind(資源類型)、metadata(源數(shù)據(jù))、spec(具體定義)、status(狀態(tài)),在創(chuàng)建Pod資源時(shí),前4個(gè)是重要字段。(3)字段數(shù)據(jù)類型在每個(gè)字段后,都標(biāo)識了數(shù)據(jù)類型,從返回的結(jié)果中發(fā)現(xiàn),apiVersion字段的數(shù)據(jù)類型為string(字符串)、kind字段的數(shù)據(jù)類型為string(字符串)、spec字段的數(shù)據(jù)類型為PodSpec,表示Pod資源的具體定義。metadata字段的數(shù)據(jù)類型是ObjectMeta(對象數(shù)據(jù))。(4)查看某個(gè)字段的子字段在創(chuàng)建Pod資源時(shí),spec字段是定義Pod的重要字段,在定義時(shí),包含了多個(gè)子字段。2.編寫創(chuàng)建Pod的Yaml腳本(1)編寫Yaml腳本(2)代碼語義使用apiVersion定義了服務(wù)版本,使用kind定義了資源類型為Pod,使用metadata定義Pod資源的名稱為pod1,通過namespace定義在default命名空間下創(chuàng)建Pod(默認(rèn)創(chuàng)建在default命名空間,可省略),使用labels定義Pod的標(biāo)簽為app:nginx。(3)代碼語法①縮進(jìn)和空格②數(shù)據(jù)類型(4)創(chuàng)建pod1(5)修改資源(6)刪除資源3.快速生成Yaml腳本四.使用Yaml腳本創(chuàng)建Deployment控制器在實(shí)際生產(chǎn)環(huán)境下,一般通過創(chuàng)建Deployment控制器來控制Pod資源的數(shù)量,自動(dòng)化實(shí)現(xiàn)Pod資源的擴(kuò)縮容和業(yè)務(wù)自動(dòng)恢復(fù)等功能,下面介紹使用Yaml腳本創(chuàng)建Deployment控制器。1.查看資源定義字段首先查看deployment控制器的資源類型、版本和定義資源的字段其中template定義的是Pod資源,在定義Pod標(biāo)簽后,使用selector設(shè)置與Pod一致的標(biāo)簽。2.編寫創(chuàng)建Deployment的Yaml腳本(1)編寫Yaml腳本 首先刪除之前任務(wù)中創(chuàng)建的名稱為d1的deployment控制器在project2目錄下創(chuàng)建d1.yaml,在文件中輸入以下內(nèi)容。apiVersion:apps/v1kind:Deploymentmetadata:name:d1spec:template:metadata:labels:app:nginxspec:containers:-name:nginximage:/lnstzy/nginx:alpineimagePullPolicy:IfNotPresentports:-containerPort:80selector:matchLabels:app:nginxreplicas:3(2)代碼語義代碼前4行定義apiVersion的版本號為v1,資源類型為Deployment,通過metadata中的name字段定義了名稱是d1。(3)代碼語法apiVersion、kind、metadata、spec都是頂級的同級關(guān)鍵字,需要最左側(cè)對齊,template、selector、replicas作為同級字段需要對齊,其他各同級字段也要對齊,在橫杠、冒號的后邊都需要使用空格,再輸入內(nèi)容,注意代碼中各字段和值的大小寫,因?yàn)閅aml文件對大小寫是敏感的。(4)創(chuàng)建deployment控制器使用編寫好的d1.yaml文件創(chuàng)建Deployment控制器,如下所示。[root@masterproject2]#kubectlapply-fd1.yaml創(chuàng)建完成后,使用創(chuàng)建的deploment控制器,(5)修改資源通過Yaml文件創(chuàng)建資源后,修改資源的方法很
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)大三(食品質(zhì)量安全)食品添加劑檢測綜合測試試題及答案
- 2025年大學(xué)大四(物流管理)逆向物流綜合測試試題及答案
- 2025年大學(xué)動(dòng)物醫(yī)學(xué)(獸藥飼料生產(chǎn))試題及答案
- 2025年中職(電子商務(wù)運(yùn)營)電商數(shù)據(jù)分析綜合試題及答案
- 2025年大學(xué)智能制造工程(智能制造)試題及答案
- 2025年中職西式烹飪工藝(海鮮烹飪)試題及答案
- 2025年高職機(jī)動(dòng)車檢測維修(汽車檢測設(shè)備使用)試題及答案
- 2025年大學(xué)微電子科學(xué)與工程(微電子器件設(shè)計(jì))試題及答案
- 湖北省武漢市東湖高新區(qū)2025年八年級上學(xué)期期末物理試題附答案
- 2026年莆田市秀嶼區(qū)市場監(jiān)督管理局關(guān)于招聘食品安全協(xié)管員的備考題庫完整參考答案詳解
- 雙擁培訓(xùn)課件
- 飛行營地項(xiàng)目總體規(guī)劃
- GB/T 45494-2025項(xiàng)目、項(xiàng)目群和項(xiàng)目組合管理背景和概念
- DB36T-預(yù)防血管活性藥物外滲護(hù)理工作規(guī)范
- 牛羊肉銷售合同協(xié)議書
- 《無人機(jī)搭載紅外熱像設(shè)備檢測建筑外墻及屋面作業(yè)》
- 秦腔課件教學(xué)
- DB51-T 1959-2022 中小學(xué)校學(xué)生宿舍(公寓)管理服務(wù)規(guī)范
- 水利工程施工監(jiān)理規(guī)范(SL288-2014)用表填表說明及示例
- 妊娠合并膽汁淤積綜合征
- 新疆維吾爾自治區(qū)普通高校學(xué)生轉(zhuǎn)學(xué)申請(備案)表
評論
0/150
提交評論