参考:https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/
本文描述如何将定义pod时的字段如标签、注释等某些字段以文件的形式暴露给容器,使容器在运行时能读到这些字段,注意这里是以文件的形式不是以环境变量的形式。这个特性的主要目的是将定义pod、容器时的信息很方便的传递向运行中的容器,比如说容器运行时对cpu、内存等的限定,运行中的容器可以不用通过与集群交互,直接可以很方便的获得这些信息。
Store Pod fields
假设有如下的pod定义:
apiVersion: v1
kind: Pod
metadata:
name: kubernetes-downwardapi-volume-example
labels:
zone: us-est-coast
cluster: test-cluster1
rack: rack-22
annotations:
build: two
builder: john-doe
spec:
containers:
- name: client-container
image: k8s.gcr.io/busybox
command: ["sh", "-c"]
args:
- while true; do
if [[ -e /etc/podinfo/labels ]]; then
echo -en '\n\n'; cat /etc/podinfo/labels; fi;
if [[ -e /etc/podinfo/annotations ]]; then
echo -en '\n\n'; cat /etc/podinfo/annotations; fi;
sleep 5;
done;
volumeMounts:

本文详细介绍了如何使用Kubernetes的Downward API将Pod的字段,如标签和注解,以文件形式暴露给容器。这种方式使得容器在运行时能够访问到Pod的定义信息,例如CPU和内存限制,而无需直接与集群交互。Downward API支持fieldRef和resourceFieldRef来获取特定的Pod和Container字段。
最低0.47元/天 解锁文章
890

被折叠的 条评论
为什么被折叠?



