【笔记】Kubernetes环境变量

前言

Kubernetes环境变量学习笔记

设置环境变量

spec.containers.env:设置环境变量

spec.containers.env.name:环境变量名
spec.containers.env.value:环境变量值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
apiVersion: v1
kind: Pod
metadata:
name: fortune
labels:
app: fortune
spec:
containers:
- image: luksa/fortune:env
env:
- name: INTERVAL
value: "5"
name: html-genrator
imagePullPolicy: Never
volumeMounts:
- name: html
mountPath: /var/htdocs
volumes:
- name: html
emptyDir: {}

引用Map中的值作为环境变量

创建一个ConfigMap

data:Map中的键值对

1
2
3
4
5
6
apiVersion: v1
kind: ConfigMap
metadata:
name: fortune-config
data:
<key>: <value>

使用ConfigMap作为环境变量

spec.containers.env.valueFrom.configMapKeyRef:通过ConfigMap设置环境变量

spec.containers.env.valueFrom.configMapKeyRef.name:指定ConfigMap的名称
spec.containers.env.valueFrom.configMapKeyRef.key:指定对应名称ConfigMap中的键名,使用该键值对作为环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
apiVersion: v1
kind: Pod
metadata:
name: fortune
labels:
<key>: <value>
spec:
containers:
- image: luksa/fortune:env
imagePullPolicy: Never
env:
- name: INTERVAL
valueFrom:
configMapKeyRef:
name: fortune-config
key: <key>
name: html-genrator
volumeMounts:
- name: html
mountPath: /var/htdocs
volumes:
- name: html
emptyDir: {}

通过目录及文件的方式生成ConfigMap

  • 创建一个目录,目录名即为ConfigMap名

  • 在目录下创建文件,每个文件的文件名,即为ConfigMap中的键

  • 每个文件中包含的文本内容,即为对应文件名的键所对应的值

  • 通过这个目录生成ConfigMap

<name>:目录名

1
kubectl create configmap fortune-config --from-file=<name>

查看ConfigMap

1
kubectl get cm <name> -o yaml

完成