Kubernetes 集群實戰(微課版)課件 項目6 管理存儲和配置信息_第1頁
Kubernetes 集群實戰(微課版)課件 項目6 管理存儲和配置信息_第2頁
Kubernetes 集群實戰(微課版)課件 項目6 管理存儲和配置信息_第3頁
Kubernetes 集群實戰(微課版)課件 項目6 管理存儲和配置信息_第4頁
Kubernetes 集群實戰(微課版)課件 項目6 管理存儲和配置信息_第5頁
已閱讀5頁,還剩54頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Kubernetes集群實戰(微課版)工業和信息化精品系列教材——云計算技術項目6

管理存儲和配置信息能力CAPACITY要求了解Kubernetes卷的概念和類型,學會使用卷實現基本存儲理解PV和PVC的概念并掌握其基本用法學會組合使用PV和PVC實現持久化卷的管理理解StorageClass的概念,掌握使用StorageClass實現動態卷制備的方法學會使用ConfigMap和Secret為容器提供配置和敏感信息任務6.2配置和使用持久化卷任務6.1配置和使用基本存儲任務6.3管理配置信息和敏感信息任務6.1配置和使用基本存儲任務說明01OPTION02OPTION03OPTION了解卷的概念和常用的卷類型學會使用Empty卷存儲數據學會使用HostPath卷存儲數據04OPTION掌握NFS卷的配置和使用方法任務6.1配置和使用基本存儲相關知識6.1.1什么是卷卷是Pod的一部分,卷不是單獨的對象,不能獨立創建,只能在Pod中定義。卷關聯到外部的存儲設備之上的存儲空間,獨立于容器自身的文件系統。卷是Pod中所有容器掛載的共享目錄,Pod中所有容器都可以訪問卷,但必須要掛載,卷可以掛載到容器中的任何目錄。卷的生命周期與掛載它的Pod相同,但是卷中的文件可能在卷消失后仍然存在,這取決于具體的卷類型。任務6.1配置和使用基本存儲相關知識6.1.2卷的類型EmptyDirHostPathConfigMapPersistentVolumeClaimNFS任務6.1配置和使用基本存儲任務實現任務6.1.1使用EmptyDir卷存儲數據了解EmptyDir卷EmptyDir掛載后就是一個空目錄。EmptyDir卷的生命周期與Pod相同。EmptyDir的主要使用場景用作緩存空間為耗時較長的計算任務提供檢查點Pod不同容器之間共享文件任務6.1配置和使用基本存儲任務實現任務6.1.1使用EmptyDir卷存儲數據測試EmptyDir卷的使用編寫定義Pod的配置文件apiVersion:v1kind:Podmetadata:name:emptydir-demospec:containers:-name:busyboximage:busyboxvolumeMounts:#容器掛載卷

-name:pod-volume#要掛載的卷名稱

mountPath:/pod-data#掛載到容器的路徑

#容器啟動命令及參數

command:["/bin/sh"]args:["-c","whiletrue;do/bin/echo$(date+%T)'記錄'>>/pod-data/test.txt;sleep60;done;"]volumes:#在Pod級別定義卷

-name:pod-volume#卷名稱

emptyDir:{}#emptyDir卷任務6.1配置和使用基本存儲任務實現任務6.1.1使用EmptyDir卷存儲數據測試EmptyDir卷的使用創建名為emptydir-demo的Pod。進入該Pod的容器的Shell,列出該容器根目錄下的子目錄。#kubectlexec-itemptydir-demo--/bin/sh/#lsbindevetchomepod-dataprocrootsystmpusrvar/#cat/pod-data/test.txt02:52:26記錄02:53:26記錄/#exit查看該Pod所在的節點,本例的Pod在node02節點上運行。登錄到node02節點主機上,從根目錄下查找名稱為EmptyDir卷名稱的文件,可以發現Kubernetes在節點上自動創建了以EmptyDir卷名稱命名的目錄。任務6.1配置和使用基本存儲任務實現任務6.1.1使用EmptyDir卷存儲數據測試EmptyDir卷的使用繼續查看EmptyDir卷所在目錄的內容,可以發現Pod容器所使用的文件。ls/var/lib/kubelet/pods/33a2a82d-1a1e-45c5-90a2-38f64a88464c/volumes/kubernetes.io~empty-dir/pod-volumetest.txt切回控制平面節點上,執行kubectldeletepodemptydir-demo命令刪除上述Pod。轉到node02節點上查找pod-volume文件,可以發現已找不到了,這就表明隨著Pod的刪除,EmptyDir卷也被自動刪除了。任務6.1配置和使用基本存儲任務實現任務6.1.2使用HostPath卷掛載宿主機文件了解HostPath卷HostPath是主機路徑,能將節點主機的文件系統上的文件或目錄直接掛載到Pod中。HostPath卷中的內容不會隨著Pod的刪除而消失。HostPath卷的主要使用場景運行一個需要訪問Docker內部的容器。在容器中運行cAdvisor進行監控時,以HostPath方式掛載/sys目錄。其他用到節點主機文件的場景。任務6.1配置和使用基本存儲任務實現任務6.1.2使用HostPath卷掛載宿主機文件測試HostPath卷的使用創建定義Pod的配置文件。

volumes:#在Pod級別定義卷

-name:pod-volume#卷名稱

hostPath:path:/test-data#hostPath卷所在的路徑創建名為hostpath-demo的Pod。進入該Pod的容器的Shell,查看由容器命令寫入的test.txt文件,可發現該文件中記錄的內容。[root@master01~]#kubectlexec-ithostpath-demo--/bin/sh/#cat/pod-data/test.txt06:47:58記錄06:48:58記錄/#exit任務6.1配置和使用基本存儲任務實現任務6.1.2使用HostPath卷掛載宿主機文件測試HostPath卷的使用查看該Pod所在的節點,可發現本例的Pod在node02節點上運行。登錄到node02節點主機上,可以發現Kubernetes在該節點主機上自動創建了以hostPath卷名稱命名的目錄,且容器寫入的文件位于該目錄。#ls/test-datatest.txt回到控制平面節點上,執行kubectldeletepodhostpath-demo命令刪除所創建的Pod。回到node02節點上查看,可以發現用作hostPath卷的目錄仍然存在,其中容器操作的文件也存在。[root@node02~]#cat/test-data/test.txt06:47:58記錄......06:51:58記錄任務6.1配置和使用基本存儲任務實現任務6.1.3使用NFS卷掛載NFS共享目錄準備NFS共享目錄(1)部署NFS服務器。直接在控制平面節點上安裝NFS服務器。(2)配置NFS共享目錄。#mkdir-p/test-storage/nfs編輯/etc/exports文件。/test-storage/nfs/24(rw,sync,no_subtree_check,no_root_squash)(3)在Kubernetes集群中的其他節點上測試對NFS共享目錄的訪問。#showmount-e0Exportlistfor0:/test-storage/nfs/24任務6.1配置和使用基本存儲任務實現任務6.1.3使用NFS卷掛載NFS共享目錄測試NFS卷的使用(1)創建定義Pod的配置文件。volumes:#在Pod級別定義卷

-name:pod-volume#卷名稱

nfs:server:0#NFS服務器地址

path:/test-storage/nfs#共享文件路徑(2)創建名為nfs-demo的Pod。(3)進入該Pod的容器的Shell,查看由容器命令寫入的test.txt文件,可發現該文件中記錄的內容。#kubectlexec-itnfs-demo--/bin/sh/#cat/pod-data/test.txt09:56:19記錄/#exit(4)查看NFS共享目錄中的文件內容,可以發現Pod中容器寫入的新數據。[root@master01~]#cat/test-storage/nfs/test.txt09:56:19記錄09:57:19記錄任務6.1配置和使用基本存儲任務實現任務6.1.3使用NFS卷掛載NFS共享目錄測試NFS卷的使用(5)查看該Pod所在的節點,發現本例的Pod在node02節點上運行。(6)執行kubectldeletepodnfs-demo命令刪除該Pod。(7)再次執行kubectlcreate-f/k8sapp/06/nfs-pod.yaml命令創建Pod。(8)查看該Pod所在的節點,發現Pod已改到node01節點上運行。#kubectlgetpod-owideNAMEREADYSTATUSRESTARTSAGEIPNODE...nfs-demo1/1Running07s30node01...(9)進入該Pod的容器的Shell,查看由容器命令寫入的test.txt文件。[root@master01~]#kubectlexec-itnfs-demo--/bin/sh/#cat/pod-data/test.txt09:56:19記錄......10:02:42記錄任務6.2配置和使用持久化卷任務6.1配置和使用基本存儲任務6.3管理配置信息和敏感信息任務6.2配置和使用持久化卷任務說明01OPTION02OPTION03OPTION了解PV和PVC的概念和持久化存儲機制了解PV和PVC的定義方法理解StorageClass的概念和運行機制04OPTION掌握PV和PVC的創建和使用方法05OPTION學會創建StorageClass并在NFS后端存儲中實現PV的動態制備任務6.2配置和使用持久化卷相關知識6.2.1PV與PVC的持久化存儲機制PV描述的是具體的持久化卷,是對底層各類存儲資源的一種抽象,能夠屏蔽底層存儲實現的具體細節。PV主要由Kubernetes管理員進行創建和配置。PVC是對存儲需求的聲明,描述的是Pod希望使用的持久化存儲的屬性,比如卷存儲的大小、可讀寫權限等。任務6.2配置和使用持久化卷相關知識6.2.2PV的定義apiVersion:v1#API版本kind:PersistentVolume#資源類型metadata:#元數據

name:string#資源名稱

labels:#標簽

-name:stringannotations:#注解

-name:stringspec:capacity:#存儲能力,目前只支持存儲空間的設置

storage:stringvolumeMode:string#卷模式

accessModes:[]#訪問模式

storageClassName:sring#StorageClass(存儲類)名稱

persistentVolumeReclaimPolicy:string#回收策略

type(string):#后端存儲類型,與底層存儲資源對應

......#后端存儲的詳細定義

mountOptions:#可選的掛載選項

......任務6.2配置和使用持久化卷相關知識6.2.3PVC的定義apiVersion:v1#API版本kind:PersistentVolumeClaim#資源類型metadata:#元數據(可以指定名稱空間)

......spec:accessModes:[]#訪問模式

volumeMode:string#卷模式

resources:#資源

requests:#資源請求

storage:string#請求的存儲空間

storageClassName:sring#StorageClass名稱

selector:#標簽選擇器

......任務6.2配置和使用持久化卷相關知識6.2.4PV和PVC的生命周期資源制備資源綁定資源使用資源保護資源回收任務6.2配置和使用持久化卷相關知識6.2.5StorageClass什么是StorageClassStorageClass提供了一種描述存儲“類”的方法。不同的類可能會映射到不同的存儲服務質量等級、存儲備份策略,或者是其他策略等。通過StorageClass的定義,管理員可以將存儲資源定義為某種類型的資源,利用StorageClass根據PVC請求實現PV的動態創建,進一步簡化運維管理成本。任務6.2配置和使用持久化卷相關知識6.2.5StorageClassStorageClass的工作機制任務6.2配置和使用持久化卷相關知識6.2.5StorageClassStorageClass的定義apiVersion:storage.k8s.io/v1#API版本kind:StorageClass#資源類型metadata:#元數據

name:standard#名稱provisioner:kubernetes.io/aws-ebs#制備器parameters:#參數

type:gp2reclaimPolicy:Retain#回收策略allowVolumeExpansion:true#是否允許擴展mountOptions:#掛載選項

-debugvolumeBindingMode:Immediate#卷綁定模式任務6.2配置和使用持久化卷相關知識6.2.5StorageClass動態卷制備啟用動態卷制備功能。使用動態卷制備功能。apiVersion:v1kind:PersistentVolumeClaimmetadata:name:test-dvpspec:accessModes:-ReadWriteOncestorageClassName:standardresources:requests:storage:30Gi使用默認的StorageClass。任務6.2配置和使用持久化卷任務實現任務6.2.1創建基于NFS的PV準備NFS共享目錄(1)創建要共享的物理目錄。#mkdir-p/test-storage/nfs1/test-storage/nfs2(2)修改/etc/exports配置文件,增加兩個共享目錄。/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任務6.2配置和使用持久化卷任務實現任務6.2.1創建基于NFS的PV創建PV(1)編寫定義PV的配置文件。apiVersion:v1kind:PersistentVolumemetadata:name:nfs-pv1spec:capacity:storage:5Gi#定義PV的大小

volumeMode:Filesystem#卷模式

accessModes:-ReadWriteMany#訪問模式

persistentVolumeReclaimPolicy:Recycle#回收策略

nfs:#存儲類型

path:/test-storage/nfs1server:0---任務6.2配置和使用持久化卷任務實現任務6.2.1創建基于NFS的PV創建PV(1)編寫定義PV的配置文件。apiVersion:v1kind:PersistentVolumemetadata:name:nfs-pv2spec:capacity:storage:3Gi#定義PV的大小

volumeMode:Filesystem#卷模式

accessModes:-ReadWriteOnce#訪問模式

persistentVolumeReclaimPolicy:Recycle#回收策略

nfs:#存儲類型

path:/test-storage/nfs2server:0任務6.2配置和使用持久化卷任務實現任務6.2.1創建基于NFS的PV創建PV(2)基于該配置文件創建PV。#kubectlcreate-f/k8sapp/06/nfs-pv.yamlpersistentvolume/nfs-pv1createdpersistentvolume/nfs-pv2created(3)查看所創建的PV。#kubectlgetpvNAMECAPACITYACCESSMODESRECLAIMPOLICYSTATUSCLAIM...AGEnfs-pv15GiRWXRecycleAvailable12snfs-pv23GiRWORecycleAvailable8s任務6.2配置和使用持久化卷任務實現任務6.2.2基于PVC使用PV創建PVC(1)編寫定義PVC的配置文件。apiVersion:v1kind:PersistentVolumeClaimmetadata:name:nfs-pvc1spec:accessModes:-ReadWriteMany#訪問模式

volumeMode:Filesystem#卷模式

resources:requests:storage:4Gi#聲明存儲的大小---任務6.2配置和使用持久化卷任務實現任務6.2.2基于PVC使用PV創建PVC(1)編寫定義PVC的配置文件。apiVersion:v1kind:PersistentVolumeClaimmetadata:name:nfs-pvc2spec:accessModes:-ReadWriteOnce#訪問模式

volumeMode:Filesystem#卷模式

resources:requests:storage:3Gi#聲明存儲的大小任務6.2配置和使用持久化卷任務實現任務6.2.2基于PVC使用PV創建PVC(2)基于配置文件創建PVC。(3)查看所創建的PVC。#kubectlgetpvcNAMESTATUSVOLUMECAPACITYACCESSMODESSTORAGECLASSAGEnfs-pvc1Boundnfs-pv15GiRWX83snfs-pvc2Boundnfs-pv23GiRWO83s(4)查看之前的PV。#kubectlgetpvNAMECAPACITYACCESSMODESRECLAIMPOLICYSTATUSCLAIM...AGEnfs-pv15GiRWXRecycleBounddefault/nfs-pvc155mnfs-pv23GiRWORecycleBounddefault/nfs-pvc254m任務6.2配置和使用持久化卷任務實現任務6.2.2基于PVC使用PV使用PVC——Pod將PVC作為卷使用,并通過卷訪問存儲資源(1)編寫定義Pod的配置文件。volumes:#在Pod級別定義卷

-name:pod-volume#卷名稱

persistentVolumeClaim:claimName:nfs-pvc1#PVC名稱

readOnly:false#不使用只讀模式(2)創建名為pvc-demo的Pod。(3)進入該Pod的容器的Shell,查看由容器命令寫入的test.txt文件。#kubectlexec-itpvc-demo--/bin/sh/#cat/pod-data/test.txt09:55:03記錄/#exit任務6.2配置和使用持久化卷任務實現任務6.2.2基于PVC使用PV使用PVC——Pod將PVC作為卷使用,并通過卷訪問存儲資源(4)刪除該Pod。(5)觀察PVC,可以發現所用的PVC沒有發生變化。#kubectlgetpvcNAMESTATUSVOLUMECAPACITYACCESSMODESSTORAGECLASSAGEnfs-pvc1Boundnfs-pv15GiRWX15mnfs-pvc2Boundnfs-pv23GiRWO15m(6)刪除所創建的PVC。(7)觀察PV,可以發現PV處于Released(已釋放)狀態。#kubectlgetpvNAMECAPACITYACCESSMODESRECLAIMPOLICYSTATUSCLAIM...AGEnfs-pv15GiRWXRecycleReleaseddefault/nfs-pvc159mnfs-pv23GiRWORecycleReleaseddefault/nfs-pvc259m(8)刪除所創建的PV。(9)查看PV對應的NFS共享目錄,發現由Pod容器寫入的test.txt文件仍然保存下來。任務6.2配置和使用持久化卷任務實現任務6.2.3基于StorageClass實現動態卷制備獲取NFS服務器的連接信息獲取nfs-subdir-external-provisioner軟件包創建ServiceAccount部署nfs-subdir-external-provisioner組件apiVersion:apps/v1kind:Deploymentmetadata:name:nfs-client-provisionerlabels:app:nfs-client-provisionernamespace:default#可以根據項目需要替換名稱空間spec:replicas:1strategy:type:Recreate#設置升級策略為刪除再創建(默認為滾動更新)

selector:matchLabels:app:nfs-client-provisioner任務6.2配置和使用持久化卷任務實現任務6.2.3基于StorageClass實現動態卷制備部署nfs-subdir-external-provisioner組件template:metadata:labels:app:nfs-client-provisionerspec:serviceAccountName:nfs-client-provisionercontainers:-name:nfs-client-provisioner#針對國內網絡環境修改其中鏡像倉庫的地址

#image:registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2image:/weiyigeek/nfs-subdir-external-provisioner:v4.0.2

任務6.2配置和使用持久化卷任務實現任務6.2.3基于StorageClass實現動態卷制備部署nfs-subdir-external-provisioner組件volumeMounts:#卷掛載點

-name:nfs-client-rootmountPath:/persistentvolumesenv:#制備器名稱和值,以后創建的StorageClass的provisioner字段要用到它

-name:PROVISIONER_NAMEvalue:k8s-sigs.io/nfs-subdir-external-provisioner-name:NFS_SERVERvalue:0#NFS服務器設置,需與卷定義的配置保持一致

-name:NFS_PATHvalue:/test-storage/nfs#NFS共享目錄,需與卷定義的配置保持一致

volumes:#卷定義

-name:nfs-client-rootnfs:server:0#NFS服務器設置

path:/test-storage/nfs#NFS共享目錄任務6.2配置和使用持久化卷任務實現任務6.2.3基于StorageClass實現動態卷制備創建基于NFS共享存儲的StorageClassapiVersion:storage.k8s.io/v1kind:StorageClassmetadata:name:nfs-storage#StorageClass對象名稱,供PVC引用

annotations:#設置為默認的StorageClassstorageclass.kubernetes.io/is-default-class:"true"#卷制備器名稱,必須和nfs-subdir-external-provisioner組件的PROVISIONER_NAME的值一致provisioner:k8s-sigs.io/nfs-subdir-external-provisionerparameters:archiveOnDelete:"true"#設置為"false"時刪除PVC不會保留數據,"true"則保留數據任務6.2配置和使用持久化卷任務實現任務6.2.3基于StorageClass實現動態卷制備創建用于測試的PVCkind:PersistentVolumeClaimapiVersion:v1metadata:name:test-sc-pvcspec:storageClassName:nfs-storage#需要與前面創建的StorageClass名稱一致

accessModes:-ReadWriteOnceresources:requests:storage:1Mi任務6.2配置和使用持久化卷任務實現任務6.2.3基于StorageClass實現動態卷制備創建Pod測試PV的使用spec:containers:-name:test-sc-podimage:busybox:latestcommand:-"/bin/sh"args:-"-c"-"touch/mnt/SUCCESS&&exit0||exit1"#創建名為"SUCCESS"的文件

volumeMounts:-name:nfs-pvcmountPath:"/mnt"restartPolicy:"Never"volumes:-name:nfs-pvcpersistentVolumeClaim:claimName:test-sc-pvc#通過PVC請求PV任務6.2配置和使用持久化卷任務6.1配置和使用基本存儲任務6.3管理配置信息和敏感信息任務6.3管理配置信息和敏感信息任務說明01OPTION02OPTION03OPTION了解ConfigMap及其基本用法了解Secret及其基本用法學會使用ConfigMap為應用程序注入配置信息04OPTION學會使用Secret為應用程序提供敏感信息任務6.3管理配置信息和敏感信息相關知識6.3.1什么是ConfigMapConfigMap是一種用于存儲應用程序所需配置信息的API對象,用于保存配置信息的鍵值對,可以用來保存單個屬性,也可以用來保存整個配置文件。ConfigMap適合將非機密性的信息保存到鍵值對中。使用ConfigMap時,Pod可以將其用作環境變量、命令行參數或者卷中的配置文件。ConfigMap不適合用來保存大量數據。任務6.3管理配置信息和敏感信息相關知識6.3.2創建ConfigMap使用命令行創建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任務6.3管理配置信息和敏感信息相關知識6.3.2創建ConfigMap基于配置文件創建ConfigMapapiVersion:v1#API版本kind:ConfigMap#資源類型為ConfigMapmetadata:#元數據(主要定對象義名稱、名稱空間)

name:stringnamespace:stringdata:#ConfigMap對象的數據

KEY1:Value1#鍵值對

KEY2:Value2......任務6.3管理配置信息和敏感信息相關知識6.3.3使用ConfigMap通過環境變量獲取ConfigMap的數據spec:containers:......command:["/bin/sh","-c","env"]env:#定義環境變量

-name:string#環境變量名稱

valueFrom:configMapKeyRef:#定義要賦給環境變量的值

name:string#指定要引用的ConfigMap對象

key:string#指定要引用的ConfigMap對象中的鍵名

-name:string#可以定義多個環境變量

......任務6.3管理配置信息和敏感信息相關知識6.3.3使用ConfigMap通過掛載卷的方式使用ConfigMap的數據spec:containers:......volumeMounts:#在容器級定義掛載點

-name:string#要掛載的卷名稱

mountPath:string#容器中的掛載目錄

volumes:#在Pod級定義卷

-name:string#卷名稱

configMap:name:string#填充卷的ConfigMap對象的名稱任務6.3管理配置信息和敏感信息相關知識6.3.4什么是SecretSecret是一種加密存儲的資源對象。適合提供密碼、令牌或密鑰這類數據量較小的敏感信息。Secret與ConfigMap非常類似,都是鍵值對形式,創建和使用方法基本相同,不同的是Secret會加密存儲。Secret有很多類型。任務6.3管理配置信息和敏感信息相關知識6.3.4什么是SecretSecret是一種加密存儲的資源對象。適合提供密碼、令牌或密鑰這類數據量較小的敏感信息。Secret與ConfigMap非常類似,都是鍵值對形式,創建和使用方法基本相同,不同的是Secret會加密存儲。Secret有很多類型。任務6.3管理配置信息和敏感信息相關知識6.3.5創建Secret使用kubectl命令創建Secret(1)分別將用戶名和密碼寫入存儲相應的文本文件中。(2)執行以下命令將上述文本文件打包并創建一個名為db-user-pass的Secret對象。(3)查看所創建的Secret對象的詳細信息。(4)查看創建的Secret的具體內容,可以發現其中的值已被編碼。(5)通用型Secret采用Base64編碼,可以進行解碼。任務6.3管理配置信息和敏感信息相關知識6.3.5創建Secret基于配置文件管理SecretapiVersion:v1kind:Secret#資源類型metadata:name:demo-secret#Secret名稱type:Opaque#Secret類型stringData:#提供未編碼數據

username:admindata:#提供已編碼的數據

password:YWJjMTIz任務6.3管理配置信息和敏感信息相關知識6.3.6使用SecretSecret可以作為環境變量暴露給Pod中的容器使用,也可以以卷的形式掛載Secret也可用于系統中的其他部分。在Pod的容器定義中可以使用valueFrom字段將Secret的單個鍵值對作為環境變量。在Pod中通過掛載卷的方式使用Secret的數據,用法基本同ConfigMap。任務6.3管理配置信息和敏感信息任務實現任務6.3.1使用ConfigMap為Tomcat提供配置文件(1)編寫Tomcat配置文件。(2)基于tomcat-users.xml文件創建一個名為tomcat-users-config的ConfigMap對象。(3)查看該ConfigMap對象的信息,獲知其存儲的鍵值對數據中,tomcat-users.xml文件名為鍵名,tomcat-users.xml文件內容為鍵值。(4)編寫定義Tomcat的Deployment和Service對象的配置文件。volumeMounts:-name:tomcat-users-config#要掛載的卷的名稱

#容器掛載的目錄路徑為/usr/local/tomcat/conf,文件名為tomcat-

溫馨提示

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

評論

0/150

提交評論