課件ker與k8s最佳實(shí)踐114_第1頁(yè)
課件ker與k8s最佳實(shí)踐114_第2頁(yè)
課件ker與k8s最佳實(shí)踐114_第3頁(yè)
課件ker與k8s最佳實(shí)踐114_第4頁(yè)
課件ker與k8s最佳實(shí)踐114_第5頁(yè)
已閱讀5頁(yè),還剩109頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Docker與Kubernetes最佳實(shí)踐 齊老師 馬士兵教育課程介紹 講解Docker原理與執(zhí)行命令 講解Docker-Compose快速部署Docker應(yīng)用 講解Kubernetes(K8S)的安裝與使用 容器化技術(shù)介紹 齊老師 馬士兵教育歷史的演化 物理機(jī)時(shí)代虛擬機(jī)時(shí)代容器化時(shí)代物理機(jī)時(shí)代 部署非常慢 成本很高 資源浪費(fèi) 難于擴(kuò)展與遷移 受制于硬件 虛擬化時(shí)代 多部署 資源池 資源隔離 很容易擴(kuò)展 VM需要安裝操作系統(tǒng) 容器化時(shí)代 容器化技術(shù)比虛擬機(jī)更靈活,更小巧容器化解決的問(wèn)題 標(biāo)準(zhǔn)化的應(yīng)用打包 容器化技術(shù)的應(yīng)用場(chǎng)景 標(biāo)準(zhǔn)化的遷移方式 統(tǒng)一的參數(shù)配置 自動(dòng)化部署 應(yīng)用集群監(jiān)控 開(kāi)發(fā)與運(yùn)

2、維之間的溝通橋梁 阿里/騰訊云的容器化應(yīng)用 初識(shí)Docker 齊老師 馬士兵教育Docker介紹 開(kāi)源的應(yīng)用容器引擎,基于 Go 語(yǔ)言開(kāi)發(fā) 容器是完全使用沙箱機(jī)制,容器開(kāi)銷(xiāo)極低 Docker就是容器化技術(shù)的代名詞 Docker也具備一定虛擬化職能 標(biāo)準(zhǔn)化的應(yīng)用打包 Docker的發(fā)展 Centos7環(huán)境安裝Docker 齊老師 馬士兵教育Win10環(huán)境安裝Docker 齊老師 馬士兵教育阿里云Docker鏡像加速 齊老師 馬士兵教育Docker基本概念 齊老師 馬士兵教育Docker是容器化平臺(tái) Docker是提供應(yīng)用打包,部署與運(yùn)行應(yīng)用的容器化平臺(tái) 可用資源(物理機(jī)/虛擬機(jī))Docker E

3、ngine(Docker引擎)應(yīng)用程序容器與鏡像 鏡像: 鏡像是文件,是只讀的,提供了運(yùn)行程序完整的軟硬件資源,是應(yīng)用程序的集裝箱 容器: 是鏡像的實(shí)例,由Docker負(fù)責(zé)創(chuàng)建,容器之間彼此隔離 Docker體系結(jié)構(gòu) Docker執(zhí)行流程 Docker快速部署Tomcat 齊老師 馬士兵教育Docker常用命令 docker pull 鏡像名 - 從遠(yuǎn)程倉(cāng)庫(kù)抽取鏡像 docker images - 查看本地鏡像 docker run 鏡像名 - 創(chuàng)建容器,啟動(dòng)應(yīng)用 docker ps - 查看正在運(yùn)行中的鏡像 docker rm 容器id - 刪除容器 docker rmi 鏡像名: - 刪除

4、鏡像 Docker宿主機(jī)與容器通信 32 物理機(jī)(宿主機(jī)) tomcat:latest 容器EXPOSE 8080Docker宿主機(jī)與容器通信 32 物理機(jī)(宿主機(jī)) 8000|tomcat:latest 容器EXPOSE 8080 容器內(nèi)部結(jié)構(gòu) 齊老師 馬士兵教育Tomcat容器內(nèi)部結(jié)構(gòu) Linux(Red Hat 4.8.5-28) Jdk(1.8.0_222)Apache Tomcat/8.5.46Tomcat:lastest 容器在容器中執(zhí)行命令 格式:docker exec -it 容器id 命令 exec 在對(duì)應(yīng)容器中執(zhí)行命令 -

5、it 采用交互方式執(zhí)行命令 實(shí)例:docker exec -it 0738ed2fe68b /bin/bash 容器生命周期 齊老師 馬士兵教育容器生命周期 Dockerfile構(gòu)建鏡像 齊老師 馬士兵教育Dockerfile鏡像描述文件 Dockerfile是一個(gè)包含用于組合鏡像的命令的文本文檔 Docker通過(guò)讀取Dockerfile中的指令按步自動(dòng)生成鏡像 docker build -t 機(jī)構(gòu)/鏡像名 Dockerfile目錄 Dockerfile自動(dòng)部署Tomcat應(yīng)用 FROM tomcat:latest MAINTAINER WORKDIR /usr/local/tomcat/we

6、bapps ADD docker-web ./docker-web 鏡像分層(layer)概念 齊老師 馬士兵教育鏡像分層(layer)概念 mywebapp執(zhí)行過(guò)程 FROM tomcat:latest MAINTAINER WORKDIR /webapps ADD docker-web ./docker-webmywebapp執(zhí)行過(guò)程 鏡像分層(layer)概念 安裝 centos 7 0u8901s9as89 安裝 jdk 831290j4983a安裝 tomcat 8 c39081920f4c1 容器層(讀寫(xiě))Tomcat:lastest啟動(dòng) tomcat 8 a4d8138d0f6b

7、鏡像層只讀容器層(讀寫(xiě))容器層(讀寫(xiě))Dockerfile基礎(chǔ)命令 齊老師 馬士兵教育FROM - 基于基準(zhǔn)鏡像 FROM centos #制作基準(zhǔn)鏡像(基于centos:lastest) FROM scratch #不依賴(lài)任何基準(zhǔn)鏡像base image FROM tomcat: 9.0.22-jdk8-openjdk 盡量使用官方提供的Base Image LABEL & MAINTAINER - 說(shuō)明信息 MAINTAINER LABEL version = 1.0 LABEL description = 馬士兵教育 WORKDIR - 設(shè)置工作目錄 WORKDIR /usr/local

8、 WORKDIR /usr/local/newdir #自動(dòng)創(chuàng)建 盡量使用絕對(duì)路徑 ADD & COPY - 復(fù)制文件 ADD hello / #復(fù)制到根路徑 ADD test.tar.gz / #添加根目錄并解壓 ADD 除了復(fù)制,還具備添加遠(yuǎn)程文件功能 ENV - 設(shè)置環(huán)境常量 ENV JAVA_HOME /usr/local/openjdk8 RUN $JAVA_HOME/bin/java -jar test.jar 盡量使用環(huán)境常量,可提高程序維護(hù)性 EXPOSE - 暴露容器端口 將容器內(nèi)部端口暴露給物理機(jī) EXPOSE 8080 docker run -p 8000:8080 to

9、mcat 32 物理機(jī)(宿主機(jī)) 8000|tomcat:latest 容器EXPOSE 8080Dockerfile執(zhí)行指令 齊老師 馬士兵教育RUN & CMD & ENTRYPOINT RUN : 在Build構(gòu)建時(shí)執(zhí)行命令 ENTRYPOINT : 容器啟動(dòng)時(shí)執(zhí)行的命令 CMD : 容器啟動(dòng)后執(zhí)行默認(rèn)的命令或參數(shù) 不同的執(zhí)行時(shí)機(jī) docker build創(chuàng)建鏡像docker run創(chuàng)建容器 RUN執(zhí)行在構(gòu)建鏡像時(shí)執(zhí)行命令 CMD|ENTRYPOINT在容器創(chuàng)建時(shí)執(zhí)行命令RUN-構(gòu)建時(shí)運(yùn)行 RUN yum install -y vim #Shell 命令格式 R

10、UN yum,install,-y,vim #Exec命令格式 Shell運(yùn)行方式 使用Shell執(zhí)行時(shí),當(dāng)前shell是父進(jìn)程,生成一個(gè)子shell進(jìn)程 在子shell中執(zhí)行腳本。腳本執(zhí)行完畢,退出子shell,回到當(dāng)前shell。 父Shell進(jìn)程子Shell進(jìn)程Exec運(yùn)行方式 使用Exec方式,會(huì)用Exec進(jìn)程替換當(dāng)前進(jìn)程,并且保持PID不變 執(zhí)行完畢,直接退出,并不會(huì)退回之前的進(jìn)程環(huán)境 主進(jìn)程Exec進(jìn)程ENTRYPOINT啟動(dòng)命令 ENTRYPOINT(入口點(diǎn))用于在容器啟動(dòng)時(shí)執(zhí)行命令 Dockerfile中只有最后一個(gè)ENTRYPOINT會(huì)被執(zhí)行 ENTRYPOINT ps #推

11、薦使用Exec格式 CMD默認(rèn)命令 CMD用于設(shè)置默認(rèn)執(zhí)行的命令 如Dockerfile中出現(xiàn)多個(gè)CMD,則只有最后一個(gè)被執(zhí)行 如容器啟動(dòng)時(shí)附加指令,則CMD被忽略 CMD ps , -ef #推薦使用Exec格式 實(shí)戰(zhàn):構(gòu)建Redis鏡像 齊老師 馬士兵教育Redis簡(jiǎn)介 Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value型NoSQL數(shù)據(jù)庫(kù) 從2010年3月15日起,Redis的開(kāi)發(fā)工作由VMware主持。 容器間Link單向通信 齊老師 馬士兵教育容器間的單向訪問(wèn) 宿主機(jī)Docker環(huán)境Tomcat容器2MySQL

12、容器4MySQL容器8Bridge網(wǎng)橋雙向通信 齊老師 馬士兵教育Bridge網(wǎng)橋雙向通信 宿主機(jī)Docker環(huán)境Tomcat容器2MySQL容器4bridge網(wǎng)橋物理網(wǎng)卡網(wǎng)橋?qū)崿F(xiàn)原理 宿主機(jī)webdatabase物理網(wǎng)卡32Docker虛擬網(wǎng)卡(網(wǎng)關(guān))Volume容器間共享數(shù)據(jù) 齊老師 馬士兵教育容器間數(shù)據(jù)共享 宿主機(jī)Docker環(huán)境tomcat容器2web頁(yè)面文件tomcat容器8web

13、頁(yè)面文件容器間數(shù)據(jù)共享 宿主機(jī)Docker環(huán)境tomcat容器2Volume/docker-webtomcat容器8通過(guò)設(shè)置-v掛載宿主機(jī)目錄 格式: docker run -name 容器名 -v 宿主機(jī)路徑:容器內(nèi)掛載路徑 鏡像名 實(shí)例: docker run -name t1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat 通過(guò)-volumes-from 共享容器內(nèi)掛載點(diǎn) 創(chuàng)建共享容器 docker create -name webpage -v /webapps:/tomcat/webapps t

14、omcat /bin/true 共享容器掛載點(diǎn) docker run -volumes-from webpage -name t1 -d tomcat Docker Compose 齊老師 馬士兵教育容器編排工具 多容器部署的麻煩事 Docker Compose Docker Compose 單機(jī)多容器部署工具 通過(guò)yml文件定義多容器如何部署 WIN/MAC默認(rèn)提供Docker Compose,Linux需安裝 Docker Compose 應(yīng)用實(shí)戰(zhàn) 齊老師 馬士兵教育容器編排與Kubernetes(k8s) 齊老師 馬士兵教育集群環(huán)境容器部署的困境 容器編排工具比較 單機(jī)編排工具集群編排容

15、器編排工具比較 Kubernetes的職責(zé) 自動(dòng)化容器的部署和復(fù)制 隨時(shí)擴(kuò)展或收縮容器規(guī)模 容器分組Group,并且提供容器間的負(fù)載均衡 實(shí)時(shí)監(jiān)控, 即時(shí)故障發(fā)現(xiàn), 自動(dòng)替換 Kubernetes基本概念 齊老師 馬士兵教育K8S的基本概念 POD(豆莢) POD是”容器”的容器,可以包含多個(gè)”Container” POD是K8S最小可部署單元,一個(gè)POD就是一個(gè)進(jìn)程 POD內(nèi)部容器網(wǎng)絡(luò)互通,每個(gè)POD都有獨(dú)立虛擬IP POD都是部署完整的應(yīng)用或模塊 Pause容器 SERVICE(服務(wù)) Kubernetes安裝-準(zhǔn)備集群 齊老師 馬士兵教育國(guó)內(nèi)安裝K8S的四種途徑 使用kubeadmin通

16、過(guò)離線鏡像安裝 使用阿里公有云平臺(tái)k8s,鈔能力 通過(guò)yum官方倉(cāng)庫(kù)安裝,上古版本 二進(jìn)制包的形式進(jìn)行安裝,kubeasz (github) 環(huán)境準(zhǔn)備 Centos 7 Master * 1 - Master: 32 Centos 7 Node * 2 - Node1: 33 - Node2: 37 安裝Kubeadm快速部署工具 齊老師 馬士兵教育利用kubeadm創(chuàng)建集群 齊老師 馬士兵教育集群設(shè)備 Centos 7 Master * 1 - Master: 32 Centos 7 No

17、de * 2 - Node1: 33 - Node2: 37 重新啟動(dòng)服務(wù) 齊老師 馬士兵教育kubeadm/kubelet/kubectl區(qū)別 kubeadm是kubernetes集群快速構(gòu)建工具 kubelet運(yùn)行在所有節(jié)點(diǎn)上,負(fù)責(zé)啟動(dòng)POD和容器,以系統(tǒng)服務(wù)形式出現(xiàn) kubectl:kubectl是kubenetes命令行工具,提供指令 啟動(dòng)節(jié)點(diǎn)命令 啟動(dòng)節(jié)點(diǎn)的K8S服務(wù) systemctl start kubelet 設(shè)置開(kāi)機(jī)啟動(dòng) systemctl enable kubelet 啟用Web UI Dashboard 齊老師 馬士兵教

18、育Dashboard部署Tomcat集群 齊老師 馬士兵教育啟用Web UI Dashboard 齊老師 馬士兵教育Deployment腳本部署Tomcat集群 齊老師 馬士兵教育Deployment(部署) 部署是指Kubernetes向Node節(jié)點(diǎn)發(fā)送指令,創(chuàng)建容器的過(guò)程 Kubernetes支持yml格式的部署腳本 kubectl create -f 部署yml文件 #創(chuàng)建部署 Deployment部署腳本范本 與部署相關(guān)常用命令 kubectl create -f 部署yml文件 #創(chuàng)建部署 kubectl apply -f 部署yml文件 #更新部署配置 kubectl get po

19、d -o wide #查看已部署pod kubectl describe pod pod名稱(chēng) #查看Pod詳細(xì)信息 kubectl logs -f pod名稱(chēng) #查看pod輸出日志 外部訪問(wèn)Tomcat集群 齊老師 馬士兵教育Kubenetes集群Service服務(wù)用于對(duì)外暴露應(yīng)用 11 宿主機(jī) Node133:32500POD:Tomcat Cluster Container:Tomcat ClusterPort:8080宿主機(jī) Node237:32500POD:Tomcat Cluster Cont

20、ainer:Tomcat ClusterPort:8080宿主機(jī)Mastertomcat-service43Port:8000基于NFS文件集群共享 齊老師 馬士兵教育Network File System - NFS NFS,是由SUN公司研制的文件傳輸協(xié)議 NFS主要是采用遠(yuǎn)程過(guò)程調(diào)用RPC機(jī)制實(shí)現(xiàn)文件傳輸 yum install -y nfs-utils rpcbind 集群文件共享 NODE1PODTomcat/tomcat/webapps/oaNODE2PODTomcat/tomcat/webapps/oa集群文件共享 NODE1 /mntPODTomcat/

21、tomcat/webapps:/mntNODE2 /mntPODTomcat/tomcat/webapps:/mntNODE3 - NFS Server/www-data/nfsnfs利用Rinetd實(shí)現(xiàn)Service負(fù)載均衡 齊老師 馬士兵教育Kubenetes集群Service提供負(fù)載均衡實(shí)現(xiàn) 11 宿主機(jī) Node133:32500POD:Tomcat Cluster Container:Tomcat ClusterPort:8080宿主機(jī) Node237:32500POD:Tomcat Cluster Container:Tomcat ClusterPort:8080宿主機(jī)Mastertomcat-service

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論