版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
PAGE1PAGE1《Kubernetes集群實戰(zhàn)》
參考教案第1單元從Docker轉(zhuǎn)向Kubernetes【課程結(jié)構(gòu)】總課時:4(理論2+實踐2)序號理論實踐備注1Docker基礎安裝Docker講解應用程序部署方式的演變2Docker鏡像、容器和注冊注冊中心及倉庫基礎知識Docker鏡像和容器的基本操作Docker注冊中心的建立和使用3構(gòu)建鏡像的方法構(gòu)建鏡像將應用程序容器化4Kubernetes與云原生的基本概念調(diào)查了解Kubernetes在國內(nèi)的應用現(xiàn)狀講解從Docker轉(zhuǎn)向Kubernetes的緣由【教學目標】了解應用程序部署方式的演變了解Docker的基本知識,學會安裝Docker掌握Docker鏡像和容器的基本操作方法初步掌握應用程序容器化的方法初步了解Kubernetes和云原生【重點與難點】重點應用程序部署方式Docker架構(gòu)Docker安裝Docker基本操作Kubernetes簡介難點自建Docker注冊中心應用程序容器化云原生概念【教學步驟】主題1課程導入自我介紹與互動。這次課是本課程的第一次課,教師可以先進行自我介紹并與學生互動。根據(jù)需要,簡要介紹課程學習要求。讓學生意識到學習Kubernetes的難度,做好努力學好Kubernetes的動員。主題2認識與安裝Docker從應用程序部署方式的演變方法講起,說明容器部署的優(yōu)越性。講解Docker的基本概念和架構(gòu),重點是讓學生理解架構(gòu)。講解DockerEngine安裝的必備知識。講解并演示docker命令的基本用法。播放幻燈片4-16。根據(jù)需要播放配套的微課視頻,或者課堂示范DockerEngine安裝過程。注意解決無法拉取Docker鏡像的問題因國內(nèi)網(wǎng)絡環(huán)境限制,實際應用中我們會遇到無法拉取Docker鏡像的情況。最簡單的解決方案是使用鏡像加速器。推薦使用以下鏡像加速器:Daocloud鏡像加速器:https://docker.m.daocloud.io阿里云鏡像加速器:https://XXXXX.華為云鏡像加速器:XXXXX.阿里云和華為云需要登錄賬號,獲取特定的鏡像加速器地址。需要注意的是,之前一些常用的鏡像加速器已變得不好用,列舉如下:Docker官方鏡像(中國區(qū))鏡像加速器:騰訊云鏡像加速器:中國科學技術(shù)大學:網(wǎng)易云鏡像加速器:南京大學鏡像加速器:主題3Docker的基本操作方法講解Docker鏡像的基礎知識,演示Docker鏡像的基本操作。講解Docker容器的基礎知識,演示Docker容器的基本操作。講解Docker注冊中心和倉庫的基礎知識,演示Docker注冊中心的建立和使用。播放幻燈片18-33。根據(jù)需要播放配套的微課視頻,或者課堂示范部分任務實現(xiàn)。主題4構(gòu)建鏡像并將應用程序容器化講解Dockerfile的基本語法,示范Dockerfile的編寫。介紹基于Dockerfile構(gòu)建鏡像的基本語法。講解應用程序鏡像的內(nèi)容,介紹應用程序容器化的基本步驟。播放幻燈片35-48。根據(jù)需要播放配套的微課視頻。主題5轉(zhuǎn)向Kubernetes講解什么是Kubernetes,讓學生進一步理解Kubernetes與Docker之間的關系。講清為什么要從Docker轉(zhuǎn)向Kubernetes,重點講Docker的容器編排能力不足和Kubernetes強大的容器編排能力。介紹Kubernetes的特性和應主要用場景。講解云原生的概念,講清Kubernetes與云原生的關系。帶領學生調(diào)查了解Kubernetes在國內(nèi)的應用現(xiàn)狀。播放幻燈片50-59。拓展部分根據(jù)需要補充講解一些Dockerfile語法和云原生的背景知識。實驗實驗1安裝DockerEngine實驗2運行一個容器實驗3掌握鏡像和容器的基本操作方法實驗4自建Docker注冊中心實驗5將應用程序容器化【小結(jié)】可以將容器看作包含應用程序代碼、配置和依賴關系的軟件包。由于能夠讓應用程序在開發(fā)的生命周期內(nèi)保持跨平臺的一致性,越來越多的應用程序以容器的形式在開發(fā)、測試和生產(chǎn)環(huán)境中運行。Docker主要充當容器化平臺。容器化就是將應用程序封裝成基于內(nèi)核的隔離系統(tǒng),使其可移植。容器化的應用程序可以部署到任何地方,無須使用依賴項即可運行。生產(chǎn)環(huán)境中從單機走向集群是必然的,云計算的發(fā)展正在加速這一進程。Kubernetes充當容器編排系統(tǒng),其目標是讓部署容器化的應用程序變得簡單、高效。Kubernetes提供了一種應用程序部署、規(guī)劃、更新、維護的機制?!舅伎技白鳂I(yè)】想一想1.容器部署主要有哪些優(yōu)點?2.什么是Docker?3.Docker的主要優(yōu)勢表現(xiàn)在哪些方面?4.Docker采用什么樣的架構(gòu)?5.什么是鏡像?6.什么是容器?7.什么是容器層?它有什么特點?8.Docker注冊中心與倉庫有什么不同?9.應用程序容器化需要哪些步驟?10.Kubernetes主要優(yōu)勢有哪些?11.云原生有哪些代表技術(shù)?12.為什么要從Docker轉(zhuǎn)向Kubernetes?13.Kubernetes已經(jīng)將Docker棄用,為什么還要學習和使用Docker?做一做1.安裝DockerEngine并進行鏡像和容器的基本操作。2.對Node.jsWeb應用程序進行容器化。
第2單元部署Kubernetes集群【課程結(jié)構(gòu)】總課時:4(理論2+實踐2)序號理論實踐備注1Kubernetes集群的組件Kubernetes集群的規(guī)劃2Kubernetes集群的部署方式和部署工具使用kubeadm部署Kubernetes集群重點示范部署全過程3KubernetesDashboard使用KubernetesDashboard部署容器化應用程序【教學目標】了解Kubernetes集群的組件了解Kubernetes集群的部署方式和工具學會使用部署工具創(chuàng)建Kubernetes集群了解KubernetesDashboard學會使用KubernetesDashboard部署容器化應用程序【重點與難點】重點控制平面組件工作節(jié)點組件使用kubeadm部署Kubernetes集群KubernetesDashboard用法難點高可用Kubernetes集群Kubernetes集群安裝環(huán)境準備命令行工具crictl【教學步驟】主題1創(chuàng)建Kubernetes集群講解Kubernetes集群的基本組成和主要組件,分別介紹控制平面組件和工作節(jié)點組件,以及主要的功能插件,重點是各組件的功能和作用。介紹Kubernetes集群的部署方式和部署工具,重點介紹kubeadm工具及其基本用法。簡單介紹適合生產(chǎn)環(huán)境的高可用Kubernetes集群及其拓撲結(jié)構(gòu)。示范Kubernetes集群的規(guī)劃和安裝環(huán)境的準備。簡單介紹使用containerd命令行工具crictl。播放幻燈片4-30。根據(jù)需要播放配套的微課視頻,或者示范部署Kubernetes集群節(jié)點,安裝Pod網(wǎng)絡插件,測試Kubernetes集群。主題2部署和使用KubernetesDashboard介紹Kubernetes集群資源管理方式,重點講解基于Web的Kubernetes用戶界面Dashboard是主要功能,引導學生嘗試集群的可視化管理操作,以增強對Kubernetes的感性認識。示范KubernetesDashboard的安裝方法。演示KubernetesDashboard的使用方法。播放幻燈片32-43。根據(jù)需要播放配套的微課視頻,或者示范使用KubernetesDashboard部署容器化應用程序。拓展部分根據(jù)需要補充講解Kubernetes的容器運行時架構(gòu),介紹和演示命令行工具ctr的用法,進一步示范KubernetesDashboar的使用。實驗實驗1準備Kubernetes集群安裝環(huán)境實驗2部署Kubernetes集群節(jié)點實驗3安裝Pod網(wǎng)絡插件實驗4測試Kubernetes集群實驗5使用containerd命令行工具實驗6安裝KubernetesDashboard實驗7使用KubernetesDashboard【小結(jié)】Kubernetes將集群中的主機劃分為控制平面節(jié)點和工作節(jié)點??刂破矫婀?jié)點上運行與集群管理相關的一組進程,這些進程實現(xiàn)了整個集群的資源管理、Pod調(diào)度、彈性伸縮、安全控制、系統(tǒng)監(jiān)控和糾錯等管理功能,并且都是自動完成的。工作節(jié)點運行實際的應用程序,各個工作節(jié)點又通過若干組件的組合來實現(xiàn)。部署Kubernetes有多種方式:二進制方式部署主要用于生產(chǎn)環(huán)境,需要手動部署每個組件,組成Kubernetes集群;kubeadm部署工具主要用于測試環(huán)境,現(xiàn)在也可以用于生產(chǎn)環(huán)境。Dashboard是Kubernetes的原生管理工具,提供一個便捷的可視化用戶界面,方便初學者使用控制臺直觀地管理Kubernetes對象。【思考及作業(yè)】想一想1.Kubernetes的節(jié)點分為哪兩種類型?2.Kubernetes控制平面組件kube-apiserver主要有什么作用?3.Kubernetes工作節(jié)點組件kubelet有什么用?4.Kubernetes的容器運行時有什么特點?5.Kubernetes二進制部署方式有什么優(yōu)點?6.為什么必須安裝Pod網(wǎng)絡插件?7.為什么說配置文件kubeconfig很重要?8.Kubernetes提供了哪幾種集群資源管理方式?做一做1.使用kubeadm工具部署三節(jié)點Kubernetes集群。2.安裝和使用KubernetesDashboard。
第3單元熟悉Kubernetes基本操作【課程結(jié)構(gòu)】總課時:4(理論2+實踐2)序號理論實踐備注1Kubernetes對象和資源及其相關概念Kubernetes對象的創(chuàng)建,標簽和名稱空間的使用講清對象和資源這兩個術(shù)語,以及多種命名方式的區(qū)別2kubectl命令的語法kubectl命令的使用講清kubectl命令的語法要素3Pod的概念Pod的創(chuàng)建和使用講清Pod與容器的關系【教學目標】了解Kubernetes對象和資源學會Kubernetes對象的創(chuàng)建和基本操作熟悉kubectl命令的語法,掌握kubectl命令的基本用法了解Pod的概念和實現(xiàn)機制學會創(chuàng)建和管理Pod【重點與難點】重點Kubernetes對象和資源的概念Kubernetes對象的命名方式kubectl命令的語法Pod與容器Pod的生命周期與健康檢查機制難點名稱空間及其操作使用kubectl命令輔助生成YAML配置文件多容器Pod【教學步驟】主題1理解和使用Kubernetes對象講清Kubernetes對象和資源的概念,Kubernetes管理的所有內(nèi)容都可以看作資源,所有資源都可以被抽象為對象,通過操作對象來管理Kubernetes。介紹如何描述Kubernetes對象。介紹Kubernetes對象的幾種管理方法。演示Kubernetes對象的創(chuàng)建。講解Kubernetes對象的標簽、注解和名稱空間的使用。播放幻燈片4-22。根據(jù)需要播放配套的微課視頻。主題2使用kubectl命令kubectl是用戶日常使用和管理員日常管理Kubernetes必須掌握的工具。重點介紹kubectl命令的基本用法和語法要素,包括kubectl命令支持的資源類型和輸出格式。示范kubectl命令的基本使用,演示使用kubectl命令輔助生成YAML配置文件。播放幻燈片24-30。根據(jù)需要播放配套的微課視頻。主題3創(chuàng)建和管理Pod講解Pod的定義。向?qū)W生強調(diào)掌握Pod的創(chuàng)建和管理方法的必要性。講解Pod與容器的關系,讓學生明白Kubernetes將Pod而不是單個容器作為最小的可部署單元。介紹單一容器Pod和多容器Pod。講解Pod的生命周期與健康檢查機制。演示多容器Pod的創(chuàng)建。介紹Pod的基本配置方法,包括為Pod及其容器設置資源配額,實現(xiàn)Pod容器的健康檢查。播放幻燈片32-47。根據(jù)需要播放配套的微課視頻。拓展部分根據(jù)需要補充YAML格式的詳細介紹,定義容器生命周期事件處理,在Pod中使用環(huán)境變量。實驗實驗1創(chuàng)建Kubernetes對象實驗2操作對象的標簽實驗3操作名稱空間實驗4通過kubectl命令輔助生成YAML文件實驗5創(chuàng)建多容器Pod實驗6為Pod及其容器設置資源配額實驗7實現(xiàn)Pod容器的健康檢查【小結(jié)】Kubernetes中的對象是一些持久化的實體,是一種期望的記錄,Kubernetes會始終保持期望創(chuàng)建的對象存在和集群運行在預期的狀態(tài)下。定義Kubernetes對象時一般要通過元數(shù)據(jù)提供標識和說明信息。每個對象都有一個名稱用于標識其在同類資源中的唯一性,同時也有一個UID用于標識其在整個集群中的唯一性。還可以使用標簽或注解將非唯一性的屬性附加到Kubernetes對象中。名稱空間提供一種機制,將同一集群中的資源劃分為相互隔離的組。Kubernetes提供的kubectl是使用KubernetesAPI與Kubernetes集群的控制平面節(jié)點進行通信的命令行工具,可以用來創(chuàng)建、刪除和修改Kubernetes對象。Pod是可以在Kubernetes中創(chuàng)建和管理的、最小的可部署計算單元。Kubernetes定義Pod的資源,然后在Pod中運行容器,為容器指定鏡像,這樣就可以用來運行具體的應用程序。一個Pod封裝一個或多個容器,Pod中的容器共享存儲和網(wǎng)絡等資源。每個Pod旨在運行特定應用程序的單個實例。如果希望水平擴展應用程序,則應該使用多個Pod,每個實例使用一個Pod?!舅伎技白鳂I(yè)】想一想1.什么是Kubernetes對象?2.如何描述Kubernetes對象?3.Kubernetes對象的管理方法有哪幾種?4.Kubernetes對象的名稱和UID的唯一性標識有何不同?5.Kubernetes支持哪兩種標簽選擇器?6.Kubernetes對象的注解與標簽有何不同?7.Kubernetes名稱空間的主要用途是什么?8.什么是Pod?9.為什么要使用Pod作為kubernetes部署的最小單元?10.Kubernetes會跟蹤Pod中每個容器的狀態(tài),其容器共有哪幾種狀態(tài)?做一做1.操作指定名稱空間中對象的標簽。2.創(chuàng)建一個多容器Pod并進行測試。
第4單元部署和運行應用程序【課程結(jié)構(gòu)】總課時:6(理論4+實踐2)序號理論實踐備注1工作負載資源類型和控制器的概念注意講清工作負載資源與控制器的關系2Deployment的概念和應用場景,Deployment控制器及其基本用法使用Deployment控制器運行無狀態(tài)應用程序注意講明Deployment的特點3DaemonSet的概念和應用場景,DaemonSet控制器及其基本用法使用DaemonSet控制器部署集群守護進程集注意講明DaemonSet的特點4Job與CronJob的概念和應用創(chuàng)建使用Job控制器運行一次性任務,使用CronJob控制器運行定時任務注意講清Job與CronJob之間的關系【教學目標】了解工作負載資源與控制器的概念熟悉Deployment控制器及其用法,學會使用Deployment控制器運行無狀態(tài)應用程序熟悉DaemonSet控制器及其用法,學會使用DaemonSet控制器部署集群守護進程集熟悉Job控制器及其用法,學會使用Job控制器運行一次性任務熟悉CronJob控制器及其用法,學會使用CronJob控制器運行定時任務【重點與難點】重點使用Deployment控制器運行無狀態(tài)應用程序使用DaemonSet控制器部署集群守護進程集使用CronJob控制器運行定時任務難點工作負載資源類型和控制器的概念DaemonSet控制器及其用法【教學步驟】主題1使用Deployment運行無狀態(tài)應用程序介紹工作負載資源類型和控制器的概念,讓學生明白Kubernetes使用控制器來管理Pod副本。介紹Deployment的概念和應用場景,講解Deployment控制器及其基本用法。介紹并示范使用Deployment部署和管理無狀態(tài)應用程序,包括創(chuàng)建、測試、更新、回滾、暫停、恢復、擴縮容等。播放幻燈片4-18。根據(jù)需要播放配套的微課視頻?;蛘哒n堂示范使用Deployment部署和管理無狀態(tài)應用程序。主題2使用DaemonSet部署集群守護進程集介紹DaemonSet的概念和應用場景,講解DaemonSet控制器及其基本用法。介紹并示范使用DaemonSet部署集群守護進程集。講解并示范管理基于DaemonSet部署的集群守護進程集。播放幻燈片20-29。根據(jù)需要播放配套的微課視頻?;蛘呤痉禗aemonSet操作。主題3運行一次性任務與定時任務介紹Job的概念和應用場景,講解Job控制器及其基本用法。介紹并示范使用Job控制器運行一次性任務。介紹CronJob的概念和應用場景,講解CronJob控制器及其基本用法。注意講明CronJob與Job之間的關系。介紹并示范使用CronJob控制器運行定時任務。播放幻燈片31-40。根據(jù)需要播放配套的微課視頻?;蛘呤痉断嚓P操作。拓展部分根據(jù)需要補充講解其他工作負載資源類型及其控制器。實驗實驗1創(chuàng)建Deployment實驗2測試Deployment的自動修復功能實驗3更新Deployment實驗4回滾Deployment實驗5暫停、恢復Deployment的更新過程實驗6擴縮容Deployment實驗7使用DaemonSet部署日志收集守護進程集實驗8管理DaemonSet部署的集群守護進程集實驗9使用Job運行一次性任務實驗10使用CronJob運行定時任務【小結(jié)】工作負載資源是Kubernetes對各種應用程序的抽象。Deployment適用于無狀態(tài)應用程序的管理,最典型的就是Web服務。它始終保證處于運行狀態(tài)的Pod數(shù)量符合期望的Pod數(shù)量,支持Pod自我修復,支持滾動更新和回滾,支持動態(tài)擴縮容。DaemonSet旨在保證在每個節(jié)點上都運行一個容器副本,常用來部署一些集群的日志、監(jiān)控或者其他系統(tǒng)的管理程序。Job負責批量處理短暫的一次性任務,即僅執(zhí)行一次的任務。而CronJob是在Job的基礎上增加時間調(diào)度,用于運行周期性以及重復性的任務。?!舅伎技白鳂I(yè)】想一想1.為什么要使用工作負載資源?2.控制器與工作負載資源之間是什么關系?3.Deployment與ReplicaSet之間存在怎樣的關系?4.Deployment的應用場景主要有哪些?5.什么是DaemonSet?其主要應用場景有哪些?6.Job適合什么樣的應用?7.簡述CronJob與Job之間存在怎樣的關系?做一做1.使用Deployment運行Apache服務。2.使用DaemonSet在所有工作節(jié)點上部署Nginx。
第5單元發(fā)布應用程序【課程結(jié)構(gòu)】總課時:8(理論4+實踐4)序號理論實踐備注1Service的概念和工作機制創(chuàng)建Service來驗證Endpoints講清 kube-proxy的代理模式2不同類型的Service的定義方法使用Service向集群內(nèi)外部發(fā)布應用程序3Ingress的概念和定義方法部署NginxIngress控制器,使用Ingress對外發(fā)布應用程序講清NginxIngress控制器的部署要點4灰度發(fā)布和藍綠發(fā)布的解決方案使用NginxIngress控制器實現(xiàn)灰度發(fā)布,使用NginxIngress控制器實現(xiàn)藍綠發(fā)布注意示范灰度發(fā)布的方法【教學目標】了解Service的概念和工作機制,了解不同類型的Service的定義方法學會使用Service向集群內(nèi)外部發(fā)布應用程序了解Ingress和Ingress控制器學會使用Ingress對外基于HTTP發(fā)布應用程序了解灰度發(fā)布與藍綠發(fā)布及其應用場景掌握Kubernetes灰度發(fā)布與藍綠發(fā)布的實現(xiàn)方法【重點與難點】重點Service的工作機制使用Service發(fā)布應用程序使用Ingress對外發(fā)布應用程序使用NginxIngress實現(xiàn)灰度發(fā)布難點kube-proxy的代理模式部署NginxIngress控制器灰度發(fā)布及其實現(xiàn)【教學步驟】主題1使用Service發(fā)布應用程序講解Service的概念。Service會對承載同一個應用程序的多個Pod進行整合,并提供統(tǒng)一的入口地址,用戶通過該入口地址即可訪問后端Pod提供的應用程序。通過示范創(chuàng)建Service來驗證Endpoints,讓學生理解Service的工作機制。講解Service的負載均衡機制,注意講清kube-proxy的代理模式。講解Service的環(huán)境變量和DNS服務兩類發(fā)現(xiàn)機制。介紹Service的類型及其配置,還要講明各類型的使用場景。演示使用Service對外發(fā)布集群中的應用程序。演示通過Service發(fā)布前后端應用程序的方法。播放幻燈片4-32。根據(jù)需要播放配套的微課視頻?;蛘呤痉妒褂肧ervice發(fā)布應用程序。
主題2使用Ingress發(fā)布應用程序講解Ingress的概念和應用。Ingress可以通過HTTP或HTTPS進一步對外發(fā)布Service的應用程序,提供網(wǎng)絡第7層負載均衡能力。Ingress可以充當Kubernetes集群的入口,將路由規(guī)則整合到一個資源中,基于同一IP地址公開多個應用程序。注意講清Ingress與Service的關系。講解Ingress的定義,重點是其路由規(guī)則。講解Ingress控制器的概念和功能。演示在Kubernetes集群中部署NginxIngress控制器。演示使用Ingress對外發(fā)布應用程序。播放幻燈片34-50。根據(jù)需要播放配套的微課視頻。主題3實現(xiàn)灰度發(fā)布與藍綠發(fā)布介紹灰度發(fā)布的概念、優(yōu)勢、使用場景和實施要點。介紹藍綠發(fā)布的概念、優(yōu)勢、使用場景和實施要點。介紹灰度發(fā)布和藍綠發(fā)布的Kubernetes解決方案。示范使用NginxIngress控制器實現(xiàn)灰度發(fā)布。示范使用NginxIngress控制器實現(xiàn)藍綠發(fā)布。播放幻燈片52-67。根據(jù)需要播放配套的微課視頻。拓展部分根據(jù)需要補充總結(jié)Kubernetes集群中的IP類型與端口類型,講解默認的Ingress類的創(chuàng)建方法。實驗一實驗1驗證Kubernetes的服務發(fā)現(xiàn)機制實驗2使用Service對外發(fā)布集群中的應用程序?qū)嶒?使用Service發(fā)布前后端應用實驗二實驗4部署NginxIngress控制器實驗5使用Ingress對外發(fā)布應用實驗6實現(xiàn)灰度發(fā)布與藍綠發(fā)布實驗7使用NginxIngress實現(xiàn)灰度發(fā)布實驗8使用NginxIngress實現(xiàn)藍綠發(fā)布【小結(jié)】Kubernetes之所以需要Service,一方面是因為Pod的IP地址不是固定的,另一方面則是因為一組Pod副本之間總會有負載均衡的需求。Service是一組具有相同標簽的Pod集合的抽象,定義訪問Pod集合的策略,相當于一種微服務。Service的容器發(fā)現(xiàn)是通過Endpoints實現(xiàn)的,創(chuàng)建Service對象就會創(chuàng)建一個對應的Endpoints對象。Service的服務發(fā)現(xiàn)主要是通過DNS實現(xiàn)的,集群內(nèi)外的各個應用程序可以通過Service的域名相互通信。Service只是將多個Pod進行了關聯(lián),實際的路由轉(zhuǎn)發(fā)都是由kube-proxy組件實現(xiàn)的。Service必須結(jié)合kube-proxy使用,kube-proxy負責負載均衡以及流量轉(zhuǎn)發(fā)。Service的類型決定了應用程序的發(fā)布(暴露)方式。默認的ClusterIP類型僅支持集群內(nèi)部訪問。NodePort和LoadBalancer類型都支持集群外部訪問,但LoadBalancer類型需要云提供商提供的外部負載均衡器。大多數(shù)應用都使用HTTP或HTTPS請求,這就需要使用Ingress來對外發(fā)布。Ingress可以基于第7層網(wǎng)絡協(xié)議轉(zhuǎn)發(fā)流量,可以通過域名的形式讓集群外部的用戶能夠訪問到集群內(nèi)部的應用程序。Ingress僅需要一個節(jié)點端口或負載均衡器就可以發(fā)布多個Service。要讓Ingress正常運行,必須在集群中部署Ingress控制器,NginxIngress是常用的Ingress控制器。Ingress是常用的對外發(fā)布方式。對于無須對外發(fā)布的后端應用程序,Ingress則是不必要的。實際應用中,Service更多的是用于應用程序之間的集群內(nèi)部訪問,即后端應用程序之間的相互調(diào)用?;叶劝l(fā)布(金絲雀發(fā)布)和藍綠發(fā)布是應用程序版本升級的常用方案,Kubernetes的Service和Ingress都提供了相應的解決方案。使用NginxIngress控制器可以方便地實現(xiàn)灰度發(fā)布和藍綠發(fā)布。【思考及作業(yè)】想一想1.什么是Service?其主要功能有哪些?2.什么是Endpoints?3.IPVS代理模式具有哪些優(yōu)點?4.為什么Service的服務發(fā)現(xiàn)機制建議使用DNS機制?5.Service分為哪幾種類型?這些類型適合什么樣的應用場景?6.什么是無頭Service?7.什么是Ingress?其主要用途是什么?8.為什么要使用Ingress控制器?9.什么是灰度發(fā)布?其主要適用場景有哪些?10.什么是灰度發(fā)布?其主要適用場景有哪些?11.NodePort、Port和TargetPort這幾種端口有何不同?做一做1.使用Service發(fā)布Apache服務并考察Service工作機制。2.部署NginxIngress控制器并使用Ingress發(fā)布Apache服務。
第6單元管理存儲和配置信息【課程結(jié)構(gòu)】總課時:8(理論4+實踐4)序號理論實踐備注1卷的概念和類型使用卷實現(xiàn)基本存儲2PV和PVC的概念,持久化存儲機制組合使用PV和PVC實現(xiàn)對持久卷的管理存儲管理工作的合理分工,實際的存儲資源由存儲工程師運維,PV由Kubernetes管理員運維,而PVC則由Kubernetes用戶管理3StorageClass的概念和實現(xiàn)機制使用StorageClass實現(xiàn)動態(tài)卷制備注意講清默認的StorageClass的使用4ConfigMap的概念和應用場景使用ConfigMap向Pod的容器注入配置信息5Secret的概念和應用場景使用Secret向Pod的容器注入敏感信息【教學目標】了解卷的概念和類型,學會使用卷實現(xiàn)基本存儲理解并掌握其基本用法,實現(xiàn)對持久卷的管理理解StorageClass的概念并掌握其基本用法學會使用StorageClass實現(xiàn)動態(tài)卷制備的方法熟悉ConfigMap及其基本用法熟悉Secret及其基本用法學會使用ConfigMap和Secret為容器提供配置文件的方法【重點與難點】重點卷的概念和類型PV與PVC的持久化存儲機制PV與PVC的組合使用StorageClass的概念與默認的StorageClassConfigMap及其用法數(shù)據(jù)存儲集群難點PVC與PC的關系StorageClass實現(xiàn)動態(tài)卷制備Secret的類型【教學步驟】主題1配置和使用基本存儲講解卷的概念,從同一Pod內(nèi)多個容器的數(shù)據(jù)共享引出卷的概念,并比較Kubernetes與Docker的卷。介紹常用的卷類型,對各類型進行比較,指導學生選擇合適的卷類型。示范使用EmptyDir卷存儲數(shù)據(jù)。演示使用HostPath卷掛載宿主機文件。演示NFS卷的配置和使用方法。播放幻燈片4-16。根據(jù)需要播放配套的微課視頻。主題2配置和使用持久卷講解Kubernetes為什么引入PV和PVC這兩種資源。講清PV和PVC的概念,讓學生理解Kubernetes持久化存儲機制。介紹PV和PVC定義方法。講解PV和PVC的生命周期,讓學生進一步理解PV和PVC是如何組合使用以實現(xiàn)對持久卷的管理的。以使用NFS共享目錄作為后端存儲為例演示創(chuàng)建PV。進一步示范基于PVC來使用PV提供的存儲資源。講解StorageClass的概念和運行機制,介紹StorageClass的定義方法。演示創(chuàng)建StorageClass并在NFS后端存儲中實現(xiàn)PV的動態(tài)制備。播放幻燈片18-41。根據(jù)需要播放配套的微課視頻。主題3管理配置信息和敏感信息講解Kubernetes為什么要用ConfigMap和Secret。講解ConfigMap的概念及其應用場景,演示其基本用法。講解Secret的概念及其應用場景,演示其基本用法。示范使用ConfigMap為應用程序注入配置信息。示范使用Secret為應用程序注入敏感信息。播放幻燈片43-58。根據(jù)需要播放配套的微課視頻。
拓展部分根據(jù)需要補充Secret其他類型的例子。實驗一實驗1使用EmptyDir卷存儲數(shù)據(jù)實驗2使用HostPath卷掛載宿主機文件實驗3使用NFS卷掛載NFS共享目錄實驗4創(chuàng)建基于NFS的PV實驗5基于PVC使用PV實驗二實驗6基于StorageClass實現(xiàn)動態(tài)卷制備實驗7使用ConfigMap為Tomcat提供配置文件實驗8使用Secret為MongoDB提供配置文件【小結(jié)】Kubernetes的卷是與Pod而不是容器綁定的。Kubernetes支持非常多的卷類型,包括本地存儲和網(wǎng)絡存儲系統(tǒng)中的多種存儲機制。PV和PVC提供持久化存儲的實現(xiàn)機制。PV是對存儲資源創(chuàng)建和使用的抽象,使得存儲資源作為集群中的資源統(tǒng)一管理,實質(zhì)上是在實際存儲中劃分的一塊用于存儲數(shù)據(jù)的空間。PVC是對存儲需求的聲明,描述的是希望使用的持久化存儲的屬性,Kubernetes根據(jù)其聲明選擇并綁定匹配的PV,讓用戶無須關心具體的卷實現(xiàn)細節(jié)。StorageClass使用類的方法對PV進行再抽象,相當于一個創(chuàng)建PV的模板,支持卷的動態(tài)制備,讓用戶根據(jù)應用程序的特點和需求通過PVC請求即可自動創(chuàng)建PV,進一步簡化了存儲運維管理??梢栽诩褐兄付ㄒ粋€默認的StorageClass,部署應用程序時PVC無須顯式指定StorageClass名稱就可以使用這個默認的外部存儲。ConfigMap能夠向容器中注入配置信息,常用于將配置文件與鏡像文件分離。與ConfigMap類似,Secret用于向容器中注入不適合公開的敏感信息?!舅伎技白鳂I(yè)】想一想1.Kubernetes的卷與Docker的卷有何不同?2.哪種卷類型適合臨時存儲?3.HostPath卷的主要使用場景有哪些?4.PV和PVC之間存在怎樣的關系?5.為什么要使用StorageClass?6.PV資源制備包括哪兩種方式?7.Kubernetes是如何針對PVC和PV進行資源保護的?8.使用默認的StorageClass有哪些前提條件?9.什么是Con?gMap?其主要用途是什么?10.Secret與ConfigMap有什么區(qū)別?做一做1.通過PVC使用基于NFS的PV。2.使用默認StorageClass基于NFS實現(xiàn)動態(tài)卷制備。
第7單元Kubernetes調(diào)度【課程結(jié)構(gòu)】總課時:8(理論4+實踐4)序號理論實踐備注1StatefulSet的概念和工作機制使用StatefulSet在集群中部署有狀態(tài)應用程序?qū)φ誅eployment講清StatefulSet2HPA的概念和工作機制使用HPA實現(xiàn)應用程序的水平自動擴縮容介紹MetricsServer3Kubernetes調(diào)度流程,典型的Pod調(diào)度方式Pod調(diào)度的配置管理4污點和容忍度的概念和定義方法使用污點和容忍度優(yōu)化Pod在集群間的調(diào)度【教學目標】了解StatefulSet的概念和工作機制學會使用StatefulSet在集群中部署有狀態(tài)應用程序了解HPA的概念和工作機制學會使用HPA實現(xiàn)應用程序的水平自動擴縮容了解Kubernetes調(diào)度的常見方式掌握Pod調(diào)度的配置管理方法【重點與難點】重點使用StatefulSet部署和管理有狀態(tài)應用程序使用HPA實現(xiàn)水平自動擴縮容親和性調(diào)度反親和性調(diào)度難點StatefulSet的工作機制MetricsServer部署Pod間的親和性調(diào)度與反親和性調(diào)度污點與容忍度【教學步驟】主題1使用StatefulSet運行有狀態(tài)應用程序講解為什么要使用StatefulSet。講解StatefulSet的概念和典型應用場景。講清StatefulSet的特點和工作機制,與Deployment對比來幫助學生進一步理解StatefulSet。介紹使用StatefulSet的前提條件,即所需的組件。介紹定義StatefulSet的配置文件。演示使用StatefulSet部署和管理有狀態(tài)應用程序,增強學生對StatefulSet的感性認識,以進一步理解StatefulSet的特點和應用。根據(jù)需要示范擴縮容StatefulSet。播放幻燈片4-24。根據(jù)需要播放配套的微課視頻。主題2實現(xiàn)水平自動擴縮容講解自動擴縮容的必要性,引入水平Pod自動擴縮容(HPA)和垂直Pod自動擴縮容(VPA)的概念。解釋HPA的基本概念,闡述HPA的工作機制。講解如何定義HPA,注意講清楚HPA各版本之間的差異。介紹MetricsServer。MetricsServer為Kubernetes內(nèi)置的自動擴縮容流水線提供資源度量。重點說明其特性,強調(diào)MetricsServer不適合非Kubernetes集群,不用于非自動擴縮容目的,也不能支持基于CPU或內(nèi)存以外的其他資源的水平自動擴縮容。介紹MetricsServer的部署方法。演示MetricsServer的安裝和測試。以Nginx的自動擴縮容為例示范HPA的使用,讓學生掌握使用HPA實現(xiàn)水平自動擴縮容的方法。播放幻燈片26-38。根據(jù)需要播放配套的微課視頻。主題3管理Pod的調(diào)度總結(jié)Pod自動調(diào)度,說明管理員管控Pod調(diào)度的必要性。介紹Kubernetes調(diào)度器,分析Kubernetes的調(diào)度流程。講解Pod的定向調(diào)度。定向調(diào)度是一種強制性的簡單調(diào)度方式,通過例子簡單演示基于節(jié)點名稱和節(jié)點選擇器將Pod定向調(diào)度到期望的指定節(jié)點上。Kubernetes支持更精細、更靈活的調(diào)度機制——親和性調(diào)度與反親和性調(diào)度。在介紹此類調(diào)度的應用場景的基礎上,詳細介紹節(jié)點親和性調(diào)度、Pod間的親和性調(diào)度與反親和性調(diào)度的實現(xiàn)方法。Pod間的親和性與反親和性調(diào)度是個難點,可以通過舉例說明來講清楚。示范基于節(jié)點親和性調(diào)度將應用程序部署在特定的節(jié)點上;示范通過Pod間反親和性調(diào)度將同一應用程序部署到不同的節(jié)點上;演示通過Pod間的親和性與反親和性調(diào)度將關聯(lián)的應用程序部署到同一節(jié)點上。污點和容忍度相互配合,避免Pod被調(diào)度到不合適的節(jié)點上,從而優(yōu)化Pod在集群間的調(diào)度。在講清楚污點與容忍度的概念、定義方法的基礎上,通過實例示范污點和容忍度的使用,并驗證其功能。播放幻燈片40-62。根據(jù)需要播放配套的微課視頻。拓展部分根據(jù)需要補充講解VPA的相關知識。實驗一實驗1使用StatefulSet部署MySQL主從集群實驗2擴縮容StatefulSet工作負載資源實驗3部署MetricsServer實驗4通過HPA實現(xiàn)Nginx的自動擴縮容實驗二實驗5將應用程序部署在特定的節(jié)點上實驗6將同一應用程序部署到不同的節(jié)點上實驗7將關聯(lián)的應用程序部署到同一節(jié)點上實驗8示范污點和容忍度的使用【小結(jié)】StatefulSet解決的是有狀態(tài)應用程序的部署問題。與Deployment類似,StatefulSet管理基于相同容器規(guī)格的一組Pod。但與Deployment不同的是,StatefulSet為它們的每個Pod維護了一個黏性的身份。使用StatefulSet部署和運行應用程序,需要無頭Service和持久卷存儲的支持。手動擴縮容是無法應對線上環(huán)境的各種復雜場景的,我們管理員需要系統(tǒng)能夠自動感知業(yè)務,自動進行擴縮容。HPA控制器用于水平自動擴縮容,通過監(jiān)控并分析一些控制器控制的所有Pod的負載變化情況來確定是否需要調(diào)整Pod的副本數(shù)量,以保證業(yè)務平穩(wěn)、健康運行。管理員往往需要采用不同調(diào)度策略對Pod的調(diào)度進行管理。比較簡單的是定向調(diào)度,基于節(jié)點名稱或節(jié)點選擇器將Pod部署到指定節(jié)點上。更復雜的是功能強大的親和性調(diào)度,涉及節(jié)點和Pod兩個層級。節(jié)點親和性調(diào)度根據(jù)節(jié)點上的標簽決定Pod可以調(diào)度到的節(jié)點。Pod間的親和性調(diào)度根據(jù)已經(jīng)在節(jié)點上運行的其他Pod的標簽來決定Pod可以調(diào)度到的節(jié)點。它們都支持硬性限制規(guī)則和軟性限制規(guī)則,具有相當?shù)撵`活性。污點和容忍度則可以進一步優(yōu)化調(diào)度,靈活地讓Pod避開某些節(jié)點,或者將Pod從某些節(jié)點中驅(qū)逐。【思考及作業(yè)】想一想1.StatefulSet與Deployment的不同之處有哪些?2.StatefulSet的主要特點有哪些?3.StatefulSet的典型應用場景有哪些?4.StatefulSet包括哪些組件?5.什么是HPA?6.HPA適用于哪些對象?不適用于哪些對象?7.什么是MetricsServer?8.Kubernetes的調(diào)度流程包括哪兩個階段?9.什么是定向調(diào)度?10.什么是節(jié)點親和性調(diào)度?11.Pod間的親和性與反親和性調(diào)度是如何實現(xiàn)的?12.污點和容忍度是如何優(yōu)化Pod調(diào)度的?做一做1.使用StatefulSet運行Nginx并進行擴縮容。2.演示通過污點和容忍度設置驅(qū)逐Pod。
第8單元高效管理應用程序的部署【課程結(jié)構(gòu)】總課時:6(理論4+實踐2)序號理論實踐備注1Helm相關概念和實現(xiàn)機制安裝和配置Helm2Chart結(jié)構(gòu),Helm的基本用法使用Helm部署和管理Kubernetes應用程序3Kustomization文件及其格式,Kustomize基本用法使用Kustomize管理Kubernetes應用程序的部署【教學目標】了解Helm及其相關概念了解Helm的基本用法掌握使用Helm部署和管理Kubernetes應用程序的方法了解Kustomization文件了解Kustomize的基本用法。學會使用Kustomize管理Kubernetes應用程序的部署【重點與難點】重點Helm及其相關概念Helm的基本用法Kustomization文件Kustomize的基本用法難點使用Helm在Kubernetes中部署Kafka使用Kustomize組合和定制資源使用Kustomize管理不同環(huán)境的應用程序配置【教學步驟】主題1使用Helm簡化應用程序的部署和管理從生產(chǎn)環(huán)境中復雜的應用項目需求引出Helm這種軟件包管理方式。介紹Helm的主要功能。講解Helm的核心概念Chart、Repository、Release,以及Helm模板,然后再解析Helm的工作機制。Helm使用Chart作為打包格式。Chart是描述一組相關Kubernetes對象的文件集合。介紹Chart的文件組織結(jié)構(gòu),其中Chart.yaml是Chart必備的核心文件,提供Chart相關的各種元數(shù)據(jù),詳細解釋Chart.yaml文件組織格式。示范安裝Helm并初始化Helm的Chart倉庫。介紹Helm的基本用法,并進行示范,讓學生快速掌握Helm的基本操作。重點是通過安裝Chart部署簡單的應用程序。進一步示范使用Helm在Kubernetes中部署和管理應用程序。以部署Kafka為例,部署Kafka集群,升級與回滾Kafka部署的Release,刪除現(xiàn)有的Release部署。播放幻燈片4-25。根據(jù)需要播放配套的微課視頻。
主題2使用Kustomize定制應用程序的部署配置介紹Kustomize的特性和應用場景。注意與Helm進行比較,強調(diào)Kustomize更適合動態(tài)管理,可以管理需求不斷變更、快速迭代的應用程序。解釋Kustomization文件及其格式。講解使用Kustomize管理Kubernetes應用程序的基本用法,重點講清Kustomize項目的組成結(jié)構(gòu)和將該項目資源部署到Kubernetes集群的命令kubectlapply-k<Kustomization目錄>。講解并示范使用Kustomize高效管理應用程序部署,包括使用Kustomize管理Secret,使用Kustomize的貫穿性字段統(tǒng)一定義資源,使用Kustomize組合和定制資源,使用Kustomize管理不同環(huán)境的應用程序配置。播放幻燈片27-50。根據(jù)需要播放配套的微課視頻。拓展部分根據(jù)需要補充講解使用JSON補丁定制Kubernetes資源的例子。實驗實驗1安裝和配置Helm實驗2熟悉Helm的基本操作實驗3使用Helm在Kubernetes中部署Kafka實驗4使用Kustomize管理Secret對象實驗5為Kubernetes對象設置貫穿性字段實驗6使用Kustomize組合Kubernetes對象實驗7使用Kustomize定制Kubernetes對象實驗8使用Kustomize管理不同環(huán)境的應用程序配置【小結(jié)】Helm為Kubernetes的包管理工具,提供一套專門的體系來管理復雜的Kubernetes應用程序,將一個應用項目的相關資源組織成Chart,并通過Chart管理軟件包,讓用戶專注于應用程序的生命周期管理。Helm實現(xiàn)了可配置的應用程序部署,簡化了Kubernetes部署應用程序的版本控制、打包、發(fā)布、刪除和更新等操作。Kubernetes是云原生操作系統(tǒng),Helm就是Kubernetes的應用商店與包管理工具。由于有公共開倉庫支持,使用Helm安裝常用的應用程序非常便捷,但是應用程序的定制化部署僅限于Chart本身提供的配置選項。Helm自成體系,如果要打包制作Chart,則學習曲線陡峭,但是強大的封裝能力使得Helm適合開發(fā)人員制作對外交付使用的安裝包。Kustomize基于Kubernetes原生的YAML文件,使用覆蓋和補丁而不是模板來定制Kubernetes應用程序的配置。需要多套部署環(huán)境的業(yè)務應用,不同環(huán)境的部署差異不大,就非常適合使用Kustomize來配置。由于Chart相對穩(wěn)定,Helm更傾向于靜態(tài)管理。由于YAML文件修改簡單、管理靈活,Kustomize更適合動態(tài)管理,可以管理需求不斷變更、快速迭代的應用程序,當然也更適合DevOps的實施?!舅伎技白鳂I(yè)】想一想1.Helm的主要功能有哪些?2.什么是Chart?什么是Repository?什么是Release?3.什么是Helm模板?Helm在Chart中使用Go模板來編寫表示Kubernetes對象的模板文件,并提供讓用戶配置這些模板變量的能力。在安裝Chart時,Helm通過模板引擎將模板渲染成Kubernetes資源配置文件,并將它們部署到集群中的節(jié)點上。4.Helm是如何工作的?5.Kustomize具備哪些特性?6.Kustomize主要有哪些應用場景?7.Kustomization文件采用什么命名規(guī)則?8.Kustomize的基準和覆蓋是如何實現(xiàn)的?9.Helm和Kustomize兩者之間主要有哪些區(qū)別?做一做1.使用Helm在Kubernetes中部署MongoDB。2.使用Kustomize管理不同環(huán)境的應用程序配置。
第9單元持續(xù)集成和持續(xù)部署【課程結(jié)構(gòu)】總課時:10(理論6+實踐4)序號理論實踐備注1Kubernetes中部署應用程序的基本流程手動將應用程序部署到Kubernetes云原生應用落地2Harbor基礎Harbor的部署和使用企業(yè)級鏡像管理3DevOps和CI/CD的概念搭建云原生應用程序的CI/CD平臺開源平臺4Maven項目的CI/CD流程準備Maven項目的實施環(huán)境,新建Maven項目實施CI/CD關注流程5Jenkins流水線語法新建流水線項目實施CI/CD,實施代碼分支的CI/CD初步掌握6Jenkins與Kubernetes的集成在Kubernetes中動態(tài)創(chuàng)建Pod代理以實施CI/CD強化實驗驗證【教學目標】掌握基于Kubernetes的應用程序從開發(fā)到部署的流程學會使用Harbor部署企業(yè)級Docker注冊中心了解DevOps與CI/CD的概念,學會搭建云原生應用程序的CI/CD平臺了解Jenkins項目類型和流水線、主節(jié)點和代理節(jié)點掌握Jenkins的項目CI/CD實施方法學會在Kubernetes中動態(tài)創(chuàng)建Pod代理以實施CI/CD【重點與難點】重點Kubernetes中部署應用程序的基本流程云原生應用程序的CI/CD平臺使用Jenkins的Maven項目實施CI/CDJenkins流水線Jenkins的代理節(jié)點難點在Kubernetes集群中使用來自Harbor的鏡像通過GitLab自動觸發(fā)項目構(gòu)建和部署實施代碼分支的CI/CD在Jenkins中配置Pod代理【教學步驟】主題1在Kubernetes中部署開發(fā)的應用程序Kubernetes主要應用于云架構(gòu)和云原生的部署場景。介紹在Kubernetes中部署自己開發(fā)的應用程序的必要性。介紹在Kubernetes中部署應用程序的基本流程。介紹企業(yè)級DockerRegistry項目Harbor,示范Harbor的部署和使用方法。將開發(fā)的應用程序部署到Kubernetes,涉及鏡像的構(gòu)建和分發(fā)。介紹并演示在Kubernetes集群中使用來自Harbor的鏡像。以在Kubernetes中部署一個簡單的SpringBoot應用程序為例,示范手動將應用程序部署到Kubernetes的流程和方法。播放幻燈片4-24。根據(jù)需要播放配套的微課視頻。
主題2搭建云原生應用程序的CI/CD平臺Kubernetes和CI/CD都旨在保證軟件質(zhì)量,實現(xiàn)流程自動化,提高開發(fā)和運維效率,前提是要搭建云原生應用程序的CI/CD平臺。解釋DevOps和CI/CD的概念,講清兩者之間的關系。厘清持續(xù)集成、持續(xù)構(gòu)建、持續(xù)交付、持續(xù)部署等屬于的含義。介紹CI/CD的主要工具,主要是持續(xù)集成工具Jenkins、代碼管理系統(tǒng)GitLab和企業(yè)Docker注冊中心Harbor。講解CI/CD平臺的組建思路,選擇常用的開源解決方案:組合使用Jenkins、GitLab、Harbor和Kubernetes組建CI/CD平臺,實施云原生應用程序的自動化構(gòu)建、發(fā)布和部署的工作流。講解規(guī)劃CI/CD平臺,選擇GitLab、Jenkins、Harbor和Kubernetes的組合來搭建云原生應用程序的CI/CD平臺。示范GitLab服務器的部署和使用。示范Jenkins服務器的部署和基本配置,重點是Jenkins插件的安裝和管理,以及通過Jenkins集中管理憑據(jù)。播放幻燈片26-51。根據(jù)需要播放配套的微課視頻。主題3使用Jenkins的Maven項目實施CI/CD介紹常用的Jenkins項目類型。解釋Maven項目的CI/CD流程。引導學生準備Maven項目的實施環(huán)境,重點是安裝必要的Jenkins插件,配置Maven安裝選項,配置PublishoverSSH選項。示范新建一個Maven項目來實施CI/CD。從準備項目源碼開始,將項目源碼提交到代碼倉庫,在Jenkins中通過新建任務向?qū)陆ㄒ粋€Maven項目,手動執(zhí)行項目構(gòu)建并測試構(gòu)建結(jié)果。示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育心理學通關提分題庫及完整答案
- 2024年度年福建省高校教師資格證之高等教育學模擬預測參考題庫及答案
- 五年級數(shù)學(小數(shù)乘法)計算題專項練習及答案匯編
- 2024年化工技術(shù)研發(fā)人員勞務協(xié)議
- 品創(chuàng)業(yè)案例分析
- 2024混凝土施工承攬協(xié)議樣本
- 清明節(jié)主題班會課件
- 2024年房屋建筑施工協(xié)議樣本
- 彩鋼建筑租賃協(xié)議格式2024年
- 2024民間資金出借協(xié)議簡明
- 新國標充電CAN協(xié)議解析
- 危險化學品安全生產(chǎn)基礎知識指導培訓
- 水電機組的運行穩(wěn)定性及水輪機轉(zhuǎn)輪裂紋
- 學生信息管理系統(tǒng)數(shù)據(jù)流圖
- 螺旋箍筋長度計算公式
- HSE培訓矩陣(共79張)
- 民辦幼兒園成本核算表
- 第八章_噪聲控制技術(shù)——隔聲
- 國旗下校長關于誠信考試的講話稿
- 急性胰腺炎ppt課件
- 廣告設計制作框架合同協(xié)議書范本詳細版
評論
0/150
提交評論