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

提交评论