版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
項目7部署StatefulSet有狀態(tài)服務任務
1部署Web有狀態(tài)服務目錄CONTENTS1StatefulSet有狀態(tài)服務的特征2部署持久化存儲3部署headlessservice4部署有狀態(tài)的Web服務一、理解有狀態(tài)服務
使用Deployment無狀態(tài)控制器來定義無狀態(tài)的服務,使用StatefulSet控制器來定義有狀態(tài)的服務。無狀態(tài)的服務是指無論在集群中啟動多少Pod,每個Pod中提供的服務是完全一致的,一致性體現(xiàn)在兩個方面,一是在使用service訪問服務時,訪問哪個容器服務都是一致的,二是在所有的服務使用的都是同一數(shù)據(jù)。而有狀態(tài)服務和無狀態(tài)的服務正好相反,有狀態(tài)服務提供的容器服務具有個別性,即每個服務和其它服務都是有區(qū)別的,這就需要解決兩個問題,一是每個服務都要有自己的訪問方式,二是每個服務都有自己的存儲。有狀態(tài)服務和無狀態(tài)服務的區(qū)別有狀態(tài)服務的特點01020304StatefulSet是用來管理有狀態(tài)應用的工作負載API對象,使用StatefulSet部署的Pod擁有獨一無二的身份標識。每個Pod擁有穩(wěn)定的、唯一的網(wǎng)絡域名,無論Pod調(diào)度到哪個節(jié)點,它的訪問域名不變,需要創(chuàng)建headless服務為Pod提供唯一網(wǎng)絡標識。有序的、優(yōu)雅的部署和縮放。在Pod終止之前,所有的繼任者必須完全關閉。每個Pod擁有穩(wěn)定的、持久的存儲,即Pod重新調(diào)度后還是能訪問到相同的持久化數(shù)據(jù)部署有狀態(tài)的Web服務在集群中需要部署多個Web服務,每個Web服務都是一個公司的網(wǎng)站,這就要求每個Web服務都要有自己的持久化數(shù)據(jù)存儲,這里使用PV和PVC實現(xiàn)。安裝NFS服務配置NFS服務創(chuàng)建PV二、創(chuàng)建headlessservice使用headlessservice的作用編寫headlessservice的yaml腳本創(chuàng)建Service并檢查結(jié)果編寫有狀態(tài)Web服務腳本編寫有狀態(tài)服務的yaml腳本檢查Pod域名刪除Pod后重建后查看名稱檢查Pod存儲模擬某個pod重新調(diào)度的結(jié)果15%18%46%53%76%創(chuàng)建有狀態(tài)服務使用的是StatefulSet控制器,有狀態(tài)控制器通過配合headlessservice和持久化的存儲為服務提供了穩(wěn)定的域名和存儲,同時可以進行有序的彈性伸縮。任務
2部署Mysql有狀態(tài)服務目錄CONTENTS1構(gòu)建動態(tài)Web服務的docker鏡像2部署應用有狀態(tài)的Mysql服務部署動態(tài)Web服務1.下載centos:7鏡像2.上傳dami內(nèi)容管理系統(tǒng)源程序3.編寫Dokerfile4.基于Dockerfile制作dami:v1應用鏡像1.構(gòu)建大米內(nèi)容管理系統(tǒng)鏡像在互聯(lián)網(wǎng)上使用Php程序開發(fā)的Web應用非常多,如各種內(nèi)容管理系統(tǒng),本任務使用用戶經(jīng)常使用的大米內(nèi)容管理系統(tǒng)和織夢內(nèi)容管理系統(tǒng),首先構(gòu)建大米內(nèi)容管理系統(tǒng)docker鏡像。構(gòu)建動態(tài)Web鏡像構(gòu)建dedecms內(nèi)容管理系統(tǒng)鏡像上傳zm內(nèi)容管理系統(tǒng)源程序編寫Dokerfile基于Dockerfile制作zm:v1應用鏡像運行動態(tài)Web服務(1)編寫yaml腳本定義創(chuàng)建dami容器的Deployment(2)創(chuàng)建外部訪問的nodePortService50%(1)編寫yaml腳本定義創(chuàng)建織夢容器服務的Deployment(2)創(chuàng)建外部訪問的nodePortService80%運行大米內(nèi)容管理系統(tǒng)應用運行dedecms內(nèi)容管理系統(tǒng)應用部署應用有狀態(tài)Mysql服務安裝NFS服務配置NFS服務配置NFS服務,使用創(chuàng)建的2個共享目錄啟動NFS服務,查看配置信息。創(chuàng)建PV1.創(chuàng)建持久化存儲服務在集群中需要部署兩個動態(tài)內(nèi)容管理Web服務,這就要求每個Web服務都要有自己的持久化數(shù)據(jù)存儲,使用pv和pvc實現(xiàn)。2.部署headlessservice服務(1)編寫headlessservice的yaml腳本(2)創(chuàng)建Service并檢查結(jié)果3.部署有狀態(tài)的Mysql服務(1)編寫yaml腳本(2)創(chuàng)建服務檢查結(jié)果單擊編輯標題4.動態(tài)Web應用Mysql服務(1)檢查pvc綁定情況(2)配置程序使用數(shù)據(jù)庫謝謝觀看項目8部署Ingress服務目錄CONTENTS1Ingress的作用2Ingress的組成3Ingress的配置和使用任務1理解Ingress的作用8.1.1理解Ingress的作用任務實施
集群外部常用訪問方式為了使外部的應用能夠訪問集群內(nèi)的服務,在Kubernetes目前提供了以下幾種方案:NodePort
創(chuàng)建NodePort類型的Service可以實現(xiàn)從集群外部訪問內(nèi)部,采用
NodePort
方式暴露服務面臨問題是,服務一旦多起來,NodePort
在每個節(jié)點上開啟的端口會及其龐大,而且難以維護,而且開啟端口多了以后,會面臨安全隱患。LoadBalancerLoadBalance方式受限于云平臺,且通常在云平臺部署ELB還需要額外的費用。Ingress
Ingress是集群外部訪問服務最多的方式,也是在生產(chǎn)環(huán)境下經(jīng)常使用的方式。Ingress的組成Ingress由Ingress資源對象和IngressController組成,兩者作用如下:1.Ingress資源對象Ingress資源對象是反向代理規(guī)則,用來規(guī)定HTTP/HTTPS的外部請求應該被轉(zhuǎn)發(fā)到的Service,如根據(jù)請求中不同的Host和Url路徑請求到不同Service上。2.IngressControllerIngressController是一個反向代理程序,它負責解析Ingress的反向代理規(guī)則,如果Ingress有增刪改的變動,所有的IngressController都會及時更新自己相應的轉(zhuǎn)發(fā)規(guī)則,當IngressController收到請求后就會根據(jù)這些規(guī)則將請求轉(zhuǎn)發(fā)到對應的Service。簡單講就是Ingress資源對象定義訪問規(guī)則,IngressController實現(xiàn)訪問規(guī)則。Ingress的實現(xiàn)原理首先由Ingress資源對象定義規(guī)則,即哪些域名訪問哪些集群Service。2.Ingresscontroller通過與Kubernetesapi進行交互,動態(tài)的讀取集群中Ingress資源對象定義的規(guī)則,按照這個規(guī)則,生成一段nginx配置,再寫到nginx-ingress-controller的pod里,這個Ingresscontroller的pod里運行著一個Nginx服務,控制器會把生成的nginx配置寫入/etc/nginx.conf文件中,然后reload一下使配置生效,實現(xiàn)動態(tài)更新。Ingress訪問架構(gòu)圖1.七層訪問與四層訪問的區(qū)別如圖8-2所示,ingresscontroller讀取ingress的配置,然后實現(xiàn)不同的域名訪問不同的集群內(nèi)部Service,進而實現(xiàn)訪問Service匹配的每個Pod資源,在internet和ingresscontroller之間配置ingress-nginxservice的作用是通過NodePort的方式暴露ingresscontroller的Pod服務,這樣無論域名對應的是集群的哪個IP地址,都可以訪問到后端的Pod服務了。(1)七層訪問當代理服務器收到請求時,首先將報文拆開至應用層,分析用戶請求的資源,然后代替用戶請求后端服務器的資源,這樣就可以實現(xiàn)根據(jù)不同的域名、URL、加密證書等信息實現(xiàn)轉(zhuǎn)發(fā)請求。(2)四層訪問會把請求報文拆開至傳輸層,根據(jù)請求的服務器的IP加端口號進行轉(zhuǎn)發(fā),四層代理是由后端服務器進行處理,包括報文的封裝都是后端服務器進行封裝。2.Ingress實現(xiàn)的七層訪問架構(gòu)圖Ingress實現(xiàn)外部域名訪問的架構(gòu)如圖8-2所示。圖8-2Ingress外部訪問架構(gòu)圖ingresscontroller目前主要有兩種,分別是基于nginx服務的ingresscontroller和基于traefik的ingresscontroller,其中traefik的ingresscontroller,目前支持http和https協(xié)議。由于對nginx比較熟悉,而且需要使用TCP負載,所以選擇基于nginx服務的ingresscontroller。8.1.2部署Ingress-Nginx控制器實現(xiàn)http訪問
部署Ingress-Nginx控制器1.下載Ingress-Nginx控制器鏡像和yaml腳本(1)下載鏡像可以通過dockerhub網(wǎng)站下載Ingress-Nginx的鏡像,這里已經(jīng)下載到了本地,只需上傳到k8s系統(tǒng)節(jié)點上即可,這里將nginx-ingress.tar鏡像上傳到node1節(jié)點,并使用dockerload命令加載到鏡像中(2)下載yaml腳本同樣可以在github等網(wǎng)站下載運行nginx-ingress-controller控制器的腳本,這里已經(jīng)提前下載好,上傳到master節(jié)點即可。在集群中需要部署多個Web服務,每個Web服務都是一個公司的網(wǎng)站,這就要求每個Web服務都要有自己的持久化數(shù)據(jù)存儲,這里使用PV和PVC實現(xiàn)。(3)修改腳本創(chuàng)建控制器服務使用yaml腳本創(chuàng)建控制器Pod
配置Ingress規(guī)則1.構(gòu)建Web服務在yaml目錄下創(chuàng)建文件httpd.yaml2.創(chuàng)建Ingress資源對象創(chuàng)建Ingress的目的就是使用一個域名對應到service服務,然后通過這個域名房訪問集群內(nèi)的service,進而訪問每個Pod容器服務,在yaml目錄下,創(chuàng)建一個文件ingress.yaml3.檢查配置結(jié)果在windows中,修改C:\Windows\System32\drivers\etc下的hosts本地域名解析文件,加入一行4.為nginx-ingress控制器創(chuàng)建NodePortService8.1.3配置https實現(xiàn)安全訪問在8.1.2中實現(xiàn)了使用ingress-nginx為后端pod提供統(tǒng)一的入口,但有個問題需要考慮,就是如何為pod配置CA證書來實現(xiàn)HTTPS訪問,如果在每個pod中配置CA需要太多的重復性操作,而且po是隨時可能被kubelet殺掉重新創(chuàng)建的,當然這些問題有很多解決方法,如直接將CA配置到鏡像中,但是這樣又需要很多個CA證書。解決的方法是在ingress規(guī)則,為域名配置CA證書,只要可以通過HTTPS訪問到域名,至于這個域名是怎么關聯(lián)到后端提供服務的pod,這就是屬于k8s群集內(nèi)部的通信了,即便使用http來通信,也是可以接受的。生成證書和私匙創(chuàng)建Secret存儲證書和私匙修改Ingress配置檢
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年水上公園救生員就業(yè)保障服務合同3篇
- 跆拳道教練聘用合同
- 電子設備租賃合同范本
- 2025年度水利設施PPP項目合同模板
- 專利許可合同模板
- 北京政法職業(yè)學院《土木工程施工安全與風險管控》2023-2024學年第一學期期末試卷
- 贊助合同協(xié)議
- 二零二五年國際知識產(chǎn)權(quán)交易合同磋商簽訂細則3篇
- 2024年鎳鈦鋁合金腳手架項目可行性研究報告
- 車體廣告合同流動宣傳車
- 噎食風險評估和預防措施
- 幼兒繪本故事:小福變成大漢堡
- 常寶精特能源概況
- 政治經(jīng)濟學結(jié)構(gòu)圖解
- 服裝品質(zhì)管理人員工作手冊
- 國家開放大學電大??啤东F醫(yī)基礎》2023-2024期末試題及答案試卷編號:2776
- 初三畢業(yè)班后期管理措施
- 示教機械手控制系統(tǒng)設計
- 氧化鋁生產(chǎn)工藝教學(拜耳法)
- 選礦學基礎PPT課件
- 安利食品經(jīng)銷商合同協(xié)議范本模板
評論
0/150
提交評論