Kubernetes 从mountPath获取configMap的值

Kubernetes 从mountPath获取configMap的值,kubernetes,volumes,configmap,Kubernetes,Volumes,Configmap,我用这种方式创建了configmap kubectl create configmap some-config --from-literal=key4=value1 在那之后,我创建了一个看起来像这样的豆荚 我用这种方式连接到这个吊舱 k exec -it nginx-configmap -- /bin/sh 我找到了文件夹/some/path,但我可以从键4获得值。如果您在Pod中以这种方式引用ConfigMap: apiVersion: v1 kind: Pod metadata:

我用这种方式创建了configmap

kubectl create configmap some-config --from-literal=key4=value1
在那之后,我创建了一个看起来像这样的豆荚

我用这种方式连接到这个吊舱

k exec -it nginx-configmap -- /bin/sh

我找到了文件夹
/some/path
,但我可以从键4获得值。

如果您在
Pod中以这种方式引用
ConfigMap

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: nginx
      volumeMounts:
      - mountPath: "/var/www/html"
        name: config-volume
  volumes:
    - name: config-volume
      configMap:
        name: some-config
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: nginx
      envFrom:
      - configMapRef:
          name: some-config
它将在您的
Pod
中作为文件
/var/www/html/key4
提供,内容为
value1

如果您更希望它作为一个环境变量可用,您需要以以下方式引用它:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: nginx
      volumeMounts:
      - mountPath: "/var/www/html"
        name: config-volume
  volumes:
    - name: config-volume
      configMap:
        name: some-config
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: nginx
      envFrom:
      - configMapRef:
          name: some-config
正如您所看到的,您不需要任何卷和卷装载

一旦通过运行连接到此类
Pod

kubectl exec -ti mypod -- /bin/bash
您将看到您的环境变量已定义为:

root@mypod:/# echo $key4
value1

对于文字值的用法,请您尝试过
ls/some/path/
来验证它吗?是的,我尝试过。结果是key4。key4文件的内容应具有值1i我尝试了echo$key4命令,但当我尝试cat key4时,命令行显示值value1。谢谢