潇湘夜雨移动版

主页 > 系统 > 云计算与云原生 >

k8s存储卷与数据持久化(17)

label- alu
metadata.annotations : Pod 对象 所有注解信息,每行一个 格式为 nnotat n￾key escaped-annotation value
下面的 源配置清单示 downwardAPI vo l. yaml )中定义的 对象通过 ow wa dAPI
容器 volume test container 注入了 Pod 对象隶属 名称空 、标签、注解以及容
器自身 CPU 资源 和内存资源请求等信息 存储卷在容器中的挂载点为/ podinfo
录,因 ,注入的每一项信息均会映射为 路径下的一个文件
kind : Pod 
apiVersion : vl 
metadata : 
labels : 
zone : east-china 
rack : rack-101 
app: dap 工- vol-pod
name: dapi-vol pod 
annotat ons:
annotationl :”test-value-1" 
spec : 
containers : 
- name : volume-test-conta ner
image: busybox 
command : ["sh" ," - c",”s leep 86400
resources : 
requests : 
memory :" 32Mi" 
cpu :”125m” 
limits : 
memory :”64Mi" 
仅供自商业用 主峡交流学习仪ITI
200 Kubernetes 进阶实战
cpu :”250m” 
volumeMounts: 
- name : podinfo 
mountPath: /etc/podinfo 
readOnly : false 
volumes: 
- name : podinfo 
downwardAPI: 
defaultMode: 420 
items : 
- fieldRef : 
fieldPath: metadata . namespace 
path : pod_namespace 
- fieldRef: 
fieldPath : metadata . labels 
path : pod_labels 
- fieldRef: 
fieldPath: metadata . annotations 
path : pod_annotations 
- resourceF eldRef:
containerName : volume-test- container 
resource limits.cpu 
path .”cpu_ limit" 
- resourceFieldRef : 
containerName : volume-test- container 
resource: requests .memory 
divisor:”lMi" 
path:”mem_ reques t" 
建资源配置清单中定义的 Pod 象后 即可测试访问由 downwardAPI 存储卷映射的文
pod_namespace pod lab ls pod_annotations limits_cpu mem quest
~]$ kubectl create -f downwardAPI vol . yaml 
pod dap vol-pod" created 
接下来即可测试访问上述的映射 例如, 查看 Pod 的标 列表:
~]$ kubectl exec dapi-vol-pod -- cat /etc/pod nfo/pod_labels
app=”dapi-vol-pod" 
rack=”rack-101 " 
zone east-ch na
如命令结果所示, Pod 象的标签信息每行一个地映射于自定义 的路径/ tc podinfo
pod_labels 文件中,类似地,注解信息也以这种方式进行处理 如前面的章节中所述,标签
注解支持运行时修改,其改动的结果也会实时映射进 downwardAPI 生成的文件中 例如,
dapi-vol pod 添加新的标签
~]$ kubectl label pods dapi-vol-pod env=”test" 
pod "dapi vol-pod" labeled 
仅{)飞刊 11ll, 用途旦旦交流宇斗使用
章存储卷与数据持久化 201
而后再次查看容器内的 pod_labels 文件的内容,由如下的命令结果可知新的标签已经能
够通过相关的文件获取到
~)$ kubectl exec dapi-vol-pod -- cat /etc/podinfo/pod_ labels 
app=" dapi-vol - pod" 
env=" t es t" 
rack=" rack-101" 
zone= "east-china" 
 
downwardAPI 存储卷为Kubernetes 运行容器 应用提供了获取外部环境信息的有效
途径,这一点对那些非为云原生开发的应用程序在不进行代码重构的前提下,获取环境信息
进行自身配置等操作时尤为有用
 
本章小结
本章主要讲解了 Kubernetes 的存储卷及其功用,并通过应用示例给出了部署存储卷类
型的使用方法,具体如下
临时存储卷 emptyDir itRepo 的生命周期与 Pod 对象相同,但 gitRepo 够通过
引用外部 git 库的数据来实现数据的持久性 (责任编辑:liangzh)