版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Kubernetes集群實(shí)戰(zhàn)(微課版)工業(yè)和信息化精品系列教材——云計(jì)算技術(shù)項(xiàng)目6
管理存儲(chǔ)和配置信息能力CAPACITY要求了解Kubernetes卷的概念和類型,學(xué)會(huì)使用卷實(shí)現(xiàn)基本存儲(chǔ)理解PV和PVC的概念并掌握其基本用法學(xué)會(huì)組合使用PV和PVC實(shí)現(xiàn)持久化卷的管理理解StorageClass的概念,掌握使用StorageClass實(shí)現(xiàn)動(dòng)態(tài)卷制備的方法學(xué)會(huì)使用ConfigMap和Secret為容器提供配置和敏感信息任務(wù)6.2配置和使用持久化卷任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)6.3管理配置信息和敏感信息任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)說明01OPTION02OPTION03OPTION了解卷的概念和常用的卷類型學(xué)會(huì)使用Empty卷存儲(chǔ)數(shù)據(jù)學(xué)會(huì)使用HostPath卷存儲(chǔ)數(shù)據(jù)04OPTION掌握NFS卷的配置和使用方法任務(wù)6.1配置和使用基本存儲(chǔ)相關(guān)知識(shí)6.1.1什么是卷卷是Pod的一部分,卷不是單獨(dú)的對(duì)象,不能獨(dú)立創(chuàng)建,只能在Pod中定義。卷關(guān)聯(lián)到外部的存儲(chǔ)設(shè)備之上的存儲(chǔ)空間,獨(dú)立于容器自身的文件系統(tǒng)。卷是Pod中所有容器掛載的共享目錄,Pod中所有容器都可以訪問卷,但必須要掛載,卷可以掛載到容器中的任何目錄。卷的生命周期與掛載它的Pod相同,但是卷中的文件可能在卷消失后仍然存在,這取決于具體的卷類型。任務(wù)6.1配置和使用基本存儲(chǔ)相關(guān)知識(shí)6.1.2卷的類型EmptyDirHostPathConfigMapPersistentVolumeClaimNFS任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)實(shí)現(xiàn)任務(wù)6.1.1使用EmptyDir卷存儲(chǔ)數(shù)據(jù)了解EmptyDir卷EmptyDir掛載后就是一個(gè)空目錄。EmptyDir卷的生命周期與Pod相同。EmptyDir的主要使用場景用作緩存空間為耗時(shí)較長的計(jì)算任務(wù)提供檢查點(diǎn)Pod不同容器之間共享文件任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)實(shí)現(xiàn)任務(wù)6.1.1使用EmptyDir卷存儲(chǔ)數(shù)據(jù)測試EmptyDir卷的使用編寫定義Pod的配置文件apiVersion:v1kind:Podmetadata:name:emptydir-demospec:containers:-name:busyboximage:busyboxvolumeMounts:#容器掛載卷
-name:pod-volume#要掛載的卷名稱
mountPath:/pod-data#掛載到容器的路徑
#容器啟動(dòng)命令及參數(shù)
command:["/bin/sh"]args:["-c","whiletrue;do/bin/echo$(date+%T)'記錄'>>/pod-data/test.txt;sleep60;done;"]volumes:#在Pod級(jí)別定義卷
-name:pod-volume#卷名稱
emptyDir:{}#emptyDir卷任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)實(shí)現(xiàn)任務(wù)6.1.1使用EmptyDir卷存儲(chǔ)數(shù)據(jù)測試EmptyDir卷的使用創(chuàng)建名為emptydir-demo的Pod。進(jìn)入該P(yáng)od的容器的Shell,列出該容器根目錄下的子目錄。#kubectlexec-itemptydir-demo--/bin/sh/#lsbindevetchomepod-dataprocrootsystmpusrvar/#cat/pod-data/test.txt02:52:26記錄02:53:26記錄/#exit查看該P(yáng)od所在的節(jié)點(diǎn),本例的Pod在node02節(jié)點(diǎn)上運(yùn)行。登錄到node02節(jié)點(diǎn)主機(jī)上,從根目錄下查找名稱為EmptyDir卷名稱的文件,可以發(fā)現(xiàn)Kubernetes在節(jié)點(diǎn)上自動(dòng)創(chuàng)建了以EmptyDir卷名稱命名的目錄。任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)實(shí)現(xiàn)任務(wù)6.1.1使用EmptyDir卷存儲(chǔ)數(shù)據(jù)測試EmptyDir卷的使用繼續(xù)查看EmptyDir卷所在目錄的內(nèi)容,可以發(fā)現(xiàn)Pod容器所使用的文件。ls/var/lib/kubelet/pods/33a2a82d-1a1e-45c5-90a2-38f64a88464c/volumes/kubernetes.io~empty-dir/pod-volumetest.txt切回控制平面節(jié)點(diǎn)上,執(zhí)行kubectldeletepodemptydir-demo命令刪除上述Pod。轉(zhuǎn)到node02節(jié)點(diǎn)上查找pod-volume文件,可以發(fā)現(xiàn)已找不到了,這就表明隨著Pod的刪除,EmptyDir卷也被自動(dòng)刪除了。任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)實(shí)現(xiàn)任務(wù)6.1.2使用HostPath卷掛載宿主機(jī)文件了解HostPath卷HostPath是主機(jī)路徑,能將節(jié)點(diǎn)主機(jī)的文件系統(tǒng)上的文件或目錄直接掛載到Pod中。HostPath卷中的內(nèi)容不會(huì)隨著Pod的刪除而消失。HostPath卷的主要使用場景運(yùn)行一個(gè)需要訪問Docker內(nèi)部的容器。在容器中運(yùn)行cAdvisor進(jìn)行監(jiān)控時(shí),以HostPath方式掛載/sys目錄。其他用到節(jié)點(diǎn)主機(jī)文件的場景。任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)實(shí)現(xiàn)任務(wù)6.1.2使用HostPath卷掛載宿主機(jī)文件測試HostPath卷的使用創(chuàng)建定義Pod的配置文件。
volumes:#在Pod級(jí)別定義卷
-name:pod-volume#卷名稱
hostPath:path:/test-data#hostPath卷所在的路徑創(chuàng)建名為hostpath-demo的Pod。進(jìn)入該P(yáng)od的容器的Shell,查看由容器命令寫入的test.txt文件,可發(fā)現(xiàn)該文件中記錄的內(nèi)容。[root@master01~]#kubectlexec-ithostpath-demo--/bin/sh/#cat/pod-data/test.txt06:47:58記錄06:48:58記錄/#exit任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)實(shí)現(xiàn)任務(wù)6.1.2使用HostPath卷掛載宿主機(jī)文件測試HostPath卷的使用查看該P(yáng)od所在的節(jié)點(diǎn),可發(fā)現(xiàn)本例的Pod在node02節(jié)點(diǎn)上運(yùn)行。登錄到node02節(jié)點(diǎn)主機(jī)上,可以發(fā)現(xiàn)Kubernetes在該節(jié)點(diǎn)主機(jī)上自動(dòng)創(chuàng)建了以hostPath卷名稱命名的目錄,且容器寫入的文件位于該目錄。#ls/test-datatest.txt回到控制平面節(jié)點(diǎn)上,執(zhí)行kubectldeletepodhostpath-demo命令刪除所創(chuàng)建的Pod。回到node02節(jié)點(diǎn)上查看,可以發(fā)現(xiàn)用作hostPath卷的目錄仍然存在,其中容器操作的文件也存在。[root@node02~]#cat/test-data/test.txt06:47:58記錄......06:51:58記錄任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)實(shí)現(xiàn)任務(wù)6.1.3使用NFS卷掛載NFS共享目錄準(zhǔn)備NFS共享目錄(1)部署NFS服務(wù)器。直接在控制平面節(jié)點(diǎn)上安裝NFS服務(wù)器。(2)配置NFS共享目錄。#mkdir-p/test-storage/nfs編輯/etc/exports文件。/test-storage/nfs/24(rw,sync,no_subtree_check,no_root_squash)(3)在Kubernetes集群中的其他節(jié)點(diǎn)上測試對(duì)NFS共享目錄的訪問。#showmount-e0Exportlistfor0:/test-storage/nfs/24任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)實(shí)現(xiàn)任務(wù)6.1.3使用NFS卷掛載NFS共享目錄測試NFS卷的使用(1)創(chuàng)建定義Pod的配置文件。volumes:#在Pod級(jí)別定義卷
-name:pod-volume#卷名稱
nfs:server:0#NFS服務(wù)器地址
path:/test-storage/nfs#共享文件路徑(2)創(chuàng)建名為nfs-demo的Pod。(3)進(jìn)入該P(yáng)od的容器的Shell,查看由容器命令寫入的test.txt文件,可發(fā)現(xiàn)該文件中記錄的內(nèi)容。#kubectlexec-itnfs-demo--/bin/sh/#cat/pod-data/test.txt09:56:19記錄/#exit(4)查看NFS共享目錄中的文件內(nèi)容,可以發(fā)現(xiàn)Pod中容器寫入的新數(shù)據(jù)。[root@master01~]#cat/test-storage/nfs/test.txt09:56:19記錄09:57:19記錄任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)實(shí)現(xiàn)任務(wù)6.1.3使用NFS卷掛載NFS共享目錄測試NFS卷的使用(5)查看該P(yáng)od所在的節(jié)點(diǎn),發(fā)現(xiàn)本例的Pod在node02節(jié)點(diǎn)上運(yùn)行。(6)執(zhí)行kubectldeletepodnfs-demo命令刪除該P(yáng)od。(7)再次執(zhí)行kubectlcreate-f/k8sapp/06/nfs-pod.yaml命令創(chuàng)建Pod。(8)查看該P(yáng)od所在的節(jié)點(diǎn),發(fā)現(xiàn)Pod已改到node01節(jié)點(diǎn)上運(yùn)行。#kubectlgetpod-owideNAMEREADYSTATUSRESTARTSAGEIPNODE...nfs-demo1/1Running07s30node01...(9)進(jìn)入該P(yáng)od的容器的Shell,查看由容器命令寫入的test.txt文件。[root@master01~]#kubectlexec-itnfs-demo--/bin/sh/#cat/pod-data/test.txt09:56:19記錄......10:02:42記錄任務(wù)6.2配置和使用持久化卷任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)6.3管理配置信息和敏感信息任務(wù)6.2配置和使用持久化卷任務(wù)說明01OPTION02OPTION03OPTION了解PV和PVC的概念和持久化存儲(chǔ)機(jī)制了解PV和PVC的定義方法理解StorageClass的概念和運(yùn)行機(jī)制04OPTION掌握PV和PVC的創(chuàng)建和使用方法05OPTION學(xué)會(huì)創(chuàng)建StorageClass并在NFS后端存儲(chǔ)中實(shí)現(xiàn)PV的動(dòng)態(tài)制備任務(wù)6.2配置和使用持久化卷相關(guān)知識(shí)6.2.1PV與PVC的持久化存儲(chǔ)機(jī)制PV描述的是具體的持久化卷,是對(duì)底層各類存儲(chǔ)資源的一種抽象,能夠屏蔽底層存儲(chǔ)實(shí)現(xiàn)的具體細(xì)節(jié)。PV主要由Kubernetes管理員進(jìn)行創(chuàng)建和配置。PVC是對(duì)存儲(chǔ)需求的聲明,描述的是Pod希望使用的持久化存儲(chǔ)的屬性,比如卷存儲(chǔ)的大小、可讀寫權(quán)限等。任務(wù)6.2配置和使用持久化卷相關(guān)知識(shí)6.2.2PV的定義apiVersion:v1#API版本kind:PersistentVolume#資源類型metadata:#元數(shù)據(jù)
name:string#資源名稱
labels:#標(biāo)簽
-name:stringannotations:#注解
-name:stringspec:capacity:#存儲(chǔ)能力,目前只支持存儲(chǔ)空間的設(shè)置
storage:stringvolumeMode:string#卷模式
accessModes:[]#訪問模式
storageClassName:sring#StorageClass(存儲(chǔ)類)名稱
persistentVolumeReclaimPolicy:string#回收策略
type(string):#后端存儲(chǔ)類型,與底層存儲(chǔ)資源對(duì)應(yīng)
......#后端存儲(chǔ)的詳細(xì)定義
mountOptions:#可選的掛載選項(xiàng)
......任務(wù)6.2配置和使用持久化卷相關(guān)知識(shí)6.2.3PVC的定義apiVersion:v1#API版本kind:PersistentVolumeClaim#資源類型metadata:#元數(shù)據(jù)(可以指定名稱空間)
......spec:accessModes:[]#訪問模式
volumeMode:string#卷模式
resources:#資源
requests:#資源請(qǐng)求
storage:string#請(qǐng)求的存儲(chǔ)空間
storageClassName:sring#StorageClass名稱
selector:#標(biāo)簽選擇器
......任務(wù)6.2配置和使用持久化卷相關(guān)知識(shí)6.2.4PV和PVC的生命周期資源制備資源綁定資源使用資源保護(hù)資源回收任務(wù)6.2配置和使用持久化卷相關(guān)知識(shí)6.2.5StorageClass什么是StorageClassStorageClass提供了一種描述存儲(chǔ)“類”的方法。不同的類可能會(huì)映射到不同的存儲(chǔ)服務(wù)質(zhì)量等級(jí)、存儲(chǔ)備份策略,或者是其他策略等。通過StorageClass的定義,管理員可以將存儲(chǔ)資源定義為某種類型的資源,利用StorageClass根據(jù)PVC請(qǐng)求實(shí)現(xiàn)PV的動(dòng)態(tài)創(chuàng)建,進(jìn)一步簡化運(yùn)維管理成本。任務(wù)6.2配置和使用持久化卷相關(guān)知識(shí)6.2.5StorageClassStorageClass的工作機(jī)制任務(wù)6.2配置和使用持久化卷相關(guān)知識(shí)6.2.5StorageClassStorageClass的定義apiVersion:storage.k8s.io/v1#API版本kind:StorageClass#資源類型metadata:#元數(shù)據(jù)
name:standard#名稱provisioner:kubernetes.io/aws-ebs#制備器parameters:#參數(shù)
type:gp2reclaimPolicy:Retain#回收策略allowVolumeExpansion:true#是否允許擴(kuò)展mountOptions:#掛載選項(xiàng)
-debugvolumeBindingMode:Immediate#卷綁定模式任務(wù)6.2配置和使用持久化卷相關(guān)知識(shí)6.2.5StorageClass動(dòng)態(tài)卷制備啟用動(dòng)態(tài)卷制備功能。使用動(dòng)態(tài)卷制備功能。apiVersion:v1kind:PersistentVolumeClaimmetadata:name:test-dvpspec:accessModes:-ReadWriteOncestorageClassName:standardresources:requests:storage:30Gi使用默認(rèn)的StorageClass。任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.1創(chuàng)建基于NFS的PV準(zhǔn)備NFS共享目錄(1)創(chuàng)建要共享的物理目錄。#mkdir-p/test-storage/nfs1/test-storage/nfs2(2)修改/etc/exports配置文件,增加兩個(gè)共享目錄。/test-storage/nfs1/24(rw,sync,no_subtree_check,no_root_squash)/test-storage/nfs2/24(rw,sync,no_subtree_check,no_root_squash)(3)使該配置文件生效。#exportfs-avexporting/24:/test-storage/nfs2exporting/24:/test-storage/nfs1exporting/24:/test-storage/nfs任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.1創(chuàng)建基于NFS的PV創(chuàng)建PV(1)編寫定義PV的配置文件。apiVersion:v1kind:PersistentVolumemetadata:name:nfs-pv1spec:capacity:storage:5Gi#定義PV的大小
volumeMode:Filesystem#卷模式
accessModes:-ReadWriteMany#訪問模式
persistentVolumeReclaimPolicy:Recycle#回收策略
nfs:#存儲(chǔ)類型
path:/test-storage/nfs1server:0---任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.1創(chuàng)建基于NFS的PV創(chuàng)建PV(1)編寫定義PV的配置文件。apiVersion:v1kind:PersistentVolumemetadata:name:nfs-pv2spec:capacity:storage:3Gi#定義PV的大小
volumeMode:Filesystem#卷模式
accessModes:-ReadWriteOnce#訪問模式
persistentVolumeReclaimPolicy:Recycle#回收策略
nfs:#存儲(chǔ)類型
path:/test-storage/nfs2server:0任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.1創(chuàng)建基于NFS的PV創(chuàng)建PV(2)基于該配置文件創(chuàng)建PV。#kubectlcreate-f/k8sapp/06/nfs-pv.yamlpersistentvolume/nfs-pv1createdpersistentvolume/nfs-pv2created(3)查看所創(chuàng)建的PV。#kubectlgetpvNAMECAPACITYACCESSMODESRECLAIMPOLICYSTATUSCLAIM...AGEnfs-pv15GiRWXRecycleAvailable12snfs-pv23GiRWORecycleAvailable8s任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.2基于PVC使用PV創(chuàng)建PVC(1)編寫定義PVC的配置文件。apiVersion:v1kind:PersistentVolumeClaimmetadata:name:nfs-pvc1spec:accessModes:-ReadWriteMany#訪問模式
volumeMode:Filesystem#卷模式
resources:requests:storage:4Gi#聲明存儲(chǔ)的大小---任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.2基于PVC使用PV創(chuàng)建PVC(1)編寫定義PVC的配置文件。apiVersion:v1kind:PersistentVolumeClaimmetadata:name:nfs-pvc2spec:accessModes:-ReadWriteOnce#訪問模式
volumeMode:Filesystem#卷模式
resources:requests:storage:3Gi#聲明存儲(chǔ)的大小任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.2基于PVC使用PV創(chuàng)建PVC(2)基于配置文件創(chuàng)建PVC。(3)查看所創(chuàng)建的PVC。#kubectlgetpvcNAMESTATUSVOLUMECAPACITYACCESSMODESSTORAGECLASSAGEnfs-pvc1Boundnfs-pv15GiRWX83snfs-pvc2Boundnfs-pv23GiRWO83s(4)查看之前的PV。#kubectlgetpvNAMECAPACITYACCESSMODESRECLAIMPOLICYSTATUSCLAIM...AGEnfs-pv15GiRWXRecycleBounddefault/nfs-pvc155mnfs-pv23GiRWORecycleBounddefault/nfs-pvc254m任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.2基于PVC使用PV使用PVC——Pod將PVC作為卷使用,并通過卷訪問存儲(chǔ)資源(1)編寫定義Pod的配置文件。volumes:#在Pod級(jí)別定義卷
-name:pod-volume#卷名稱
persistentVolumeClaim:claimName:nfs-pvc1#PVC名稱
readOnly:false#不使用只讀模式(2)創(chuàng)建名為pvc-demo的Pod。(3)進(jìn)入該P(yáng)od的容器的Shell,查看由容器命令寫入的test.txt文件。#kubectlexec-itpvc-demo--/bin/sh/#cat/pod-data/test.txt09:55:03記錄/#exit任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.2基于PVC使用PV使用PVC——Pod將PVC作為卷使用,并通過卷訪問存儲(chǔ)資源(4)刪除該P(yáng)od。(5)觀察PVC,可以發(fā)現(xiàn)所用的PVC沒有發(fā)生變化。#kubectlgetpvcNAMESTATUSVOLUMECAPACITYACCESSMODESSTORAGECLASSAGEnfs-pvc1Boundnfs-pv15GiRWX15mnfs-pvc2Boundnfs-pv23GiRWO15m(6)刪除所創(chuàng)建的PVC。(7)觀察PV,可以發(fā)現(xiàn)PV處于Released(已釋放)狀態(tài)。#kubectlgetpvNAMECAPACITYACCESSMODESRECLAIMPOLICYSTATUSCLAIM...AGEnfs-pv15GiRWXRecycleReleaseddefault/nfs-pvc159mnfs-pv23GiRWORecycleReleaseddefault/nfs-pvc259m(8)刪除所創(chuàng)建的PV。(9)查看PV對(duì)應(yīng)的NFS共享目錄,發(fā)現(xiàn)由Pod容器寫入的test.txt文件仍然保存下來。任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.3基于StorageClass實(shí)現(xiàn)動(dòng)態(tài)卷制備獲取NFS服務(wù)器的連接信息獲取nfs-subdir-external-provisioner軟件包創(chuàng)建ServiceAccount部署nfs-subdir-external-provisioner組件apiVersion:apps/v1kind:Deploymentmetadata:name:nfs-client-provisionerlabels:app:nfs-client-provisionernamespace:default#可以根據(jù)項(xiàng)目需要替換名稱空間spec:replicas:1strategy:type:Recreate#設(shè)置升級(jí)策略為刪除再創(chuàng)建(默認(rèn)為滾動(dòng)更新)
selector:matchLabels:app:nfs-client-provisioner任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.3基于StorageClass實(shí)現(xiàn)動(dòng)態(tài)卷制備部署nfs-subdir-external-provisioner組件template:metadata:labels:app:nfs-client-provisionerspec:serviceAccountName:nfs-client-provisionercontainers:-name:nfs-client-provisioner#針對(duì)國內(nèi)網(wǎng)絡(luò)環(huán)境修改其中鏡像倉庫的地址
#image:registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2image:/weiyigeek/nfs-subdir-external-provisioner:v4.0.2
任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.3基于StorageClass實(shí)現(xiàn)動(dòng)態(tài)卷制備部署nfs-subdir-external-provisioner組件volumeMounts:#卷掛載點(diǎn)
-name:nfs-client-rootmountPath:/persistentvolumesenv:#制備器名稱和值,以后創(chuàng)建的StorageClass的provisioner字段要用到它
-name:PROVISIONER_NAMEvalue:k8s-sigs.io/nfs-subdir-external-provisioner-name:NFS_SERVERvalue:0#NFS服務(wù)器設(shè)置,需與卷定義的配置保持一致
-name:NFS_PATHvalue:/test-storage/nfs#NFS共享目錄,需與卷定義的配置保持一致
volumes:#卷定義
-name:nfs-client-rootnfs:server:0#NFS服務(wù)器設(shè)置
path:/test-storage/nfs#NFS共享目錄任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.3基于StorageClass實(shí)現(xiàn)動(dòng)態(tài)卷制備創(chuàng)建基于NFS共享存儲(chǔ)的StorageClassapiVersion:storage.k8s.io/v1kind:StorageClassmetadata:name:nfs-storage#StorageClass對(duì)象名稱,供PVC引用
annotations:#設(shè)置為默認(rèn)的StorageClassstorageclass.kubernetes.io/is-default-class:"true"#卷制備器名稱,必須和nfs-subdir-external-provisioner組件的PROVISIONER_NAME的值一致provisioner:k8s-sigs.io/nfs-subdir-external-provisionerparameters:archiveOnDelete:"true"#設(shè)置為"false"時(shí)刪除PVC不會(huì)保留數(shù)據(jù),"true"則保留數(shù)據(jù)任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.3基于StorageClass實(shí)現(xiàn)動(dòng)態(tài)卷制備創(chuàng)建用于測試的PVCkind:PersistentVolumeClaimapiVersion:v1metadata:name:test-sc-pvcspec:storageClassName:nfs-storage#需要與前面創(chuàng)建的StorageClass名稱一致
accessModes:-ReadWriteOnceresources:requests:storage:1Mi任務(wù)6.2配置和使用持久化卷任務(wù)實(shí)現(xiàn)任務(wù)6.2.3基于StorageClass實(shí)現(xiàn)動(dòng)態(tài)卷制備創(chuàng)建Pod測試PV的使用spec:containers:-name:test-sc-podimage:busybox:latestcommand:-"/bin/sh"args:-"-c"-"touch/mnt/SUCCESS&&exit0||exit1"#創(chuàng)建名為"SUCCESS"的文件
volumeMounts:-name:nfs-pvcmountPath:"/mnt"restartPolicy:"Never"volumes:-name:nfs-pvcpersistentVolumeClaim:claimName:test-sc-pvc#通過PVC請(qǐng)求PV任務(wù)6.2配置和使用持久化卷任務(wù)6.1配置和使用基本存儲(chǔ)任務(wù)6.3管理配置信息和敏感信息任務(wù)6.3管理配置信息和敏感信息任務(wù)說明01OPTION02OPTION03OPTION了解ConfigMap及其基本用法了解Secret及其基本用法學(xué)會(huì)使用ConfigMap為應(yīng)用程序注入配置信息04OPTION學(xué)會(huì)使用Secret為應(yīng)用程序提供敏感信息任務(wù)6.3管理配置信息和敏感信息相關(guān)知識(shí)6.3.1什么是ConfigMapConfigMap是一種用于存儲(chǔ)應(yīng)用程序所需配置信息的API對(duì)象,用于保存配置信息的鍵值對(duì),可以用來保存單個(gè)屬性,也可以用來保存整個(gè)配置文件。ConfigMap適合將非機(jī)密性的信息保存到鍵值對(duì)中。使用ConfigMap時(shí),Pod可以將其用作環(huán)境變量、命令行參數(shù)或者卷中的配置文件。ConfigMap不適合用來保存大量數(shù)據(jù)。任務(wù)6.3管理配置信息和敏感信息相關(guān)知識(shí)6.3.2創(chuàng)建ConfigMap使用命令行創(chuàng)建ConfigMapkubectlcreateconfigmap<map-name><data-source>kubectlcreateconfigmapmap-name--from-file=[key=]source--from-file=[key=]sourcekubectlcreateconfigmapmap-name--from-file=config-files-dirkubectlcreateconfigmapmap-name--from-literal=key1=value1--from-literal=key2=value2kubectlcreateconfigmapmap-name--from-env-file=env-file任務(wù)6.3管理配置信息和敏感信息相關(guān)知識(shí)6.3.2創(chuàng)建ConfigMap基于配置文件創(chuàng)建ConfigMapapiVersion:v1#API版本kind:ConfigMap#資源類型為ConfigMapmetadata:#元數(shù)據(jù)(主要定對(duì)象義名稱、名稱空間)
name:stringnamespace:stringdata:#ConfigMap對(duì)象的數(shù)據(jù)
KEY1:Value1#鍵值對(duì)
KEY2:Value2......任務(wù)6.3管理配置信息和敏感信息相關(guān)知識(shí)6.3.3使用ConfigMap通過環(huán)境變量獲取ConfigMap的數(shù)據(jù)spec:containers:......command:["/bin/sh","-c","env"]env:#定義環(huán)境變量
-name:string#環(huán)境變量名稱
valueFrom:configMapKeyRef:#定義要賦給環(huán)境變量的值
name:string#指定要引用的ConfigMap對(duì)象
key:string#指定要引用的ConfigMap對(duì)象中的鍵名
-name:string#可以定義多個(gè)環(huán)境變量
......任務(wù)6.3管理配置信息和敏感信息相關(guān)知識(shí)6.3.3使用ConfigMap通過掛載卷的方式使用ConfigMap的數(shù)據(jù)spec:containers:......volumeMounts:#在容器級(jí)定義掛載點(diǎn)
-name:string#要掛載的卷名稱
mountPath:string#容器中的掛載目錄
volumes:#在Pod級(jí)定義卷
-name:string#卷名稱
configMap:name:string#填充卷的ConfigMap對(duì)象的名稱任務(wù)6.3管理配置信息和敏感信息相關(guān)知識(shí)6.3.4什么是SecretSecret是一種加密存儲(chǔ)的資源對(duì)象。適合提供密碼、令牌或密鑰這類數(shù)據(jù)量較小的敏感信息。Secret與ConfigMap非常類似,都是鍵值對(duì)形式,創(chuàng)建和使用方法基本相同,不同的是Secret會(huì)加密存儲(chǔ)。Secret有很多類型。任務(wù)6.3管理配置信息和敏感信息相關(guān)知識(shí)6.3.4什么是SecretSecret是一種加密存儲(chǔ)的資源對(duì)象。適合提供密碼、令牌或密鑰這類數(shù)據(jù)量較小的敏感信息。Secret與ConfigMap非常類似,都是鍵值對(duì)形式,創(chuàng)建和使用方法基本相同,不同的是Secret會(huì)加密存儲(chǔ)。Secret有很多類型。任務(wù)6.3管理配置信息和敏感信息相關(guān)知識(shí)6.3.5創(chuàng)建Secret使用kubectl命令創(chuàng)建Secret(1)分別將用戶名和密碼寫入存儲(chǔ)相應(yīng)的文本文件中。(2)執(zhí)行以下命令將上述文本文件打包并創(chuàng)建一個(gè)名為db-user-pass的Secret對(duì)象。(3)查看所創(chuàng)建的Secret對(duì)象的詳細(xì)信息。(4)查看創(chuàng)建的Secret的具體內(nèi)容,可以發(fā)現(xiàn)其中的值已被編碼。(5)通用型Secret采用Base64編碼,可以進(jìn)行解碼。任務(wù)6.3管理配置信息和敏感信息相關(guān)知識(shí)6.3.5創(chuàng)建Secret基于配置文件管理SecretapiVersion:v1kind:Secret#資源類型metadata:name:demo-secret#Secret名稱type:Opaque#Secret類型stringData:#提供未編碼數(shù)據(jù)
username:admindata:#提供已編碼的數(shù)據(jù)
password:YWJjMTIz任務(wù)6.3管理配置信息和敏感信息相關(guān)知識(shí)6.3.6使用SecretSecret可以作為環(huán)境變量暴露給Pod中的容器使用,也可以以卷的形式掛載Secret也可用于系統(tǒng)中的其他部分。在Pod的容器定義中可以使用valueFrom字段將Secret的單個(gè)鍵值對(duì)作為環(huán)境變量。在Pod中通過掛載卷的方式使用Secret的數(shù)據(jù),用法基本同ConfigMap。任務(wù)6.3管理配置信息和敏感信息任務(wù)實(shí)現(xiàn)任務(wù)6.3.1使用ConfigMap為Tomcat提供配置文件(1)編寫Tomcat配置文件。(2)基于tomcat-users.xml文件創(chuàng)建一個(gè)名為tomcat-users-config的ConfigMap對(duì)象。(3)查看該ConfigMap對(duì)象的信息,獲知其存儲(chǔ)的鍵值對(duì)數(shù)據(jù)中,tomcat-users.xml文件名為鍵名,tomcat-users.xml文件內(nèi)容為鍵值。(4)編寫定義Tomcat的Deployment和Service對(duì)象的配置文件。volumeMounts:-name:tomcat-users-config#要掛載的卷的名稱
#容器掛載的目錄路徑為/usr/local/tomcat/conf,文件名為tomcat-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)互聯(lián)網(wǎng)智能制造與管理升級(jí)解決方案
- 共享經(jīng)濟(jì)下平臺(tái)資源共享協(xié)議
- 經(jīng)典故事小王子的故事解讀
- 基于人工智能算法優(yōu)化工業(yè)互聯(lián)網(wǎng)平臺(tái)合作協(xié)議
- 循環(huán)農(nóng)業(yè)模式構(gòu)建與優(yōu)化方案
- 2025年貨運(yùn)資格證模擬場景考試題庫
- 2025年福州貨運(yùn)從業(yè)資格證試題庫及答案大全
- 在線教育服務(wù)免責(zé)合同
- 2025年吉林貨運(yùn)從業(yè)資格模擬考試題app
- 2025年珠??钾涍\(yùn)從業(yè)資格證
- 《監(jiān)考人員培訓(xùn)》課件
- 期末綜合測試卷(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
- 分布式光伏發(fā)電項(xiàng)目計(jì)劃書
- 水土保持方案投標(biāo)文件技術(shù)部分
- 2024-2025學(xué)年廣東省肇慶鼎湖中學(xué)高三上學(xué)期9月考試英語試題(含答案)
- 專題3-6 雙曲線的離心率與常用二級(jí)結(jié)論【12類題型】(原卷版)-A4
- 黑龍江省哈爾濱市2023-2024學(xué)年七年級(jí)上學(xué)期期末統(tǒng)考學(xué)業(yè)水平調(diào)研測試語文試卷(解析版)
- 2024年人力資源年度工作總結(jié)參考(2篇)
- DB52T 1776.1-2023 耕地質(zhì)量等別評(píng)價(jià) 第1部分:評(píng)價(jià)規(guī)范
- 社工個(gè)人工作述職報(bào)告
- 《人力資源管理》大學(xué)期末測試題庫500題(含答案)
評(píng)論
0/150
提交評(píng)論