使用配置项
您可以在 Pod 中使用配置项,主要包括以下使用场景:
说明
在 Pod 里使用配置项时,需两者处于同一命名空间中。
更多关于配置项的信息,参见 Configure a Pod to Use a ConfigMap。
用配置项定义 Pod 环境变量
您可以使用配置项定义 Pod 中环境变量,使用 valueFrom
引用配置项数据。
登录控制台,在左侧导航栏单击 集群管理 > 集群详情。
在集群列表页,单击集群名称进入集群详情页。
在左侧导航栏单击 工作负载 > 容器组(Pods)。
单击 从 YAML 创建,在输入框中输入以下内容,单击 创建。下面是一个编排示例。
apiVersion: v1 kind:Pod metadata: name: config-pod-1 namespace: yournamespace #改成当前的命名空间名称 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
通过配置项设置命令行参数
您可以使用配置项设置容器中的命令或者参数值,使用环境变量替换语法 $(VAR_NAME)
来进行。
登录控制台,在左侧导航栏单击 集群管理 > 集群详情。
在集群列表页,单击集群名称进入集群详情页。
在左侧导航栏单击 工作负载 > 容器组(Pods)。
单击 从 YAML 创建,在输入框中输入以下内容,单击 创建。下面是一个编排示例。
apiVersion: v1 kind:Pod metadata: name: config-pod-3 namespace: yournamespace # 改成当前的命名空间名称 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
运行该 pod 后,会输出如下结果。
very charm
在数据卷中使用配置项
您也可以在数据卷里面使用配置项,在 volumes 下指定配置项名称,会将 key/values 的数据存储到 mountPath 路径下(本例中是 /etc/config
)。最终生成以 key 为文件名,values 为文件内容的配置文件。
登录控制台,在左侧导航栏单击 集群管理 > 集群详情。
在集群列表页,单击集群名称进入集群详情页。
在左侧导航栏单击 工作负载 > 容器组(Pods)。
单击 从 YAML 创建,在输入框中输入以下内容,单击 创建。下面是一个编排示例。
apiVersion: v1 kind:Pod metadata: name: config-pod-4 namespace: yournamespace #改成当前的命名空间名称 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