本文为您介绍如何在Pod中使用配置项。
背景信息
您可以在Pod中使用配置项,有多种使用场景,主要包括:
- 使用配置项定义Pod环境变量
- 通过配置项设置命令行参数
- 在数据卷中使用配置项
更多关于配置项的信息,可以参见Configure a Pod to Use a ConfigMap。
使用限制
您在Pod里使用配置项时,需要两者处于同一集群和命名空间中。
创建配置项
本示例创建配置项Special_Config,包含SPECIAL_LEVEL: very
和SPECIAL_TYPE: charm
两个键值对。
YAML示例模板如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: special-config
namespace: default
data:
SPECIAL_LEVEL: very
SPECIAL_TYPE: charm
使用配置项定义Pod环境变量
使用配置项的数据定义Pod环境变量
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,选择。
- 在无状态页面中,单击使用YAML创建资源。
- 选择示例模板或自定义,然后单击创建。
您可以在Pod中定义环境变量,使用valueFrom
引用SPECIAL_LEVEL的Value值,从而定义Pod的环境变量。
下面是一个编排示例。
apiVersion: v1
kind: Pod
metadata:
name: config-pod-1
spec:
containers:
- name: test-container
image: busybox
command: [ "/bin/sh", "-c", "env" ]
env:
- name: SPECIAL_LEVEL_KEY
valueFrom: ##使用valueFrom来指定env引用配置项的value值。
configMapKeyRef:
name: special-config ##引用的配置文件名称。
key: SPECIAL_LEVEL ##引用的配置项key。
restartPolicy: Never
将配置项的所有Key/Values配置为Pod的环境变量
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,选择。
- 在无状态页面中,单击使用YAML创建资源。
- 选择示例模板或自定义,然后单击创建。
如果您想在一个Pod中将配置项的所有Key/Values键值对配置为Pod的环境变量,可以使用envFrom参数,配置项中的Key会成为Pod中的环境变量名称。
下面是一个编排示例。
apiVersion: v1
kind: Pod
metadata:
name: config-pod-2
spec:
containers:
- name: test-container
image: busybox
command: [ "/bin/sh", "-c", "env" ]
envFrom: ##引用sepcial-config配置文件的所有key/values键值对。
- configMapRef:
name: special-config
restartPolicy: Never
通过配置项设置命令行参数
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,选择。
- 在无状态页面中,单击使用YAML创建资源。
- 选择示例模板或自定义,然后单击创建。
您可以使用配置项设置容器中的命令或者参数值,使用环境变量替换语法$(VAR_NAME)
来进行。
下面是一个编排示例。
apiVersion: v1
kind: Pod
metadata:
name: config-pod-3
spec:
containers:
- name: test-container
image: busybox
command: [ "/bin/sh", "-c", "echo $(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY)" ]
env:
- name: SPECIAL_LEVEL_KEY
valueFrom:
configMapKeyRef:
name: special-config
key: SPECIAL_LEVEL
- name: SPECIAL_TYPE_KEY
valueFrom:
configMapKeyRef:
name: special-config
key: SPECIAL_TYPE
restartPolicy: Never
在数据卷中使用配置项
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,选择。
- 在无状态页面中,单击使用YAML创建资源。
- 选择样例模板或自定义,然后单击创建。
您也可以在数据卷里面使用配置项,在Volumes下指定配置项名称,会将Key/Values的数据存储到MountPath路径下(本例中是/ETC/Config)。最终生成以Key为文件名,Values为文件内容的配置文件。
下面是一个编排示例。
apiVersion: v1
kind: Pod
metadata:
name: config-pod-4
spec:
containers:
- name: test-container
image: busybox
command: [ "/bin/sh", "-c", "ls /etc/config/" ] ##列出该目录下的文件名。
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: special-config
restartPolicy: Never
运行Pod后,会输出配置项的Key。
SPECIAL_TYPE
SPECIAL_LEVEL