首页 > 解决方案 > 显示完成的 Kubernetes ConfigMap

问题描述

我已经使用 Kubernetes DameonSet 资源部署了以下 ConfigMap :

apiVersion: v1
kind: ConfigMap
metadata:
  name: fluentd-config
  namespace: fluentd
data:
  source: "#{ENV['MY_SOURCE']}"

source当我的 DameonSet 被部署时,我怎样才能知道评估结果是什么?

我尝试了以下方法,但没有帮助:

kubectl describe configmaps fluentd-config

输出仅显示模板化的 ConfigMap:

Name:         fluentd-config
Namespace:    fluentd
Labels:       <none>
Annotations:  <none>

Data
====
source: "#{ENV['MY_SOURCE']}"

标签: kubernetesconfigmap

解决方案


默认情况下,您不能对 kubernetes yaml 清单文件进行模板化。你必须使用类似的工具helm,还有更多的工具。

为了说明这个问题,如果你kubectl create -f在下面的文件上做,它不会将$HOME变量插入到/home/ps,一个文字字符串$HOME将被分配到home-dir.

apiVersion: v1
data:
  home-dir: $HOME
kind: ConfigMap
metadata:
  creationTimestamp: null
  name: my-data-1

但是,如果您要强制执行此操作,则可以对变量进行插值。

kubectl create  cm my-data-2 --from-literal=home-dir="$HOME" --dry-run=client -o yaml
apiVersion: v1
data:
  home-dir: /home/ps
kind: ConfigMap
metadata:
  creationTimestamp: null
  name: my-data-2

您还可以进行变量扩展,如下所示:

cat << EOF |kubectl create -f -
apiVersion: v1
data:
  user-name: $USER
kind: ConfigMap
metadata:
  creationTimestamp: null
  name: my-data-3
EOF

推荐阅读