Kubernetes 如何在configMap中获取环境变量
我正在寻找一种在configmap的数据部分获取环境变量的方法。 在下面的yml配置中,我分配了$NODE_NAME,这对我没有帮助。有什么办法得到这份工作吗Kubernetes 如何在configMap中获取环境变量,kubernetes,Kubernetes,我正在寻找一种在configmap的数据部分获取环境变量的方法。 在下面的yml配置中,我分配了$NODE_NAME,这对我没有帮助。有什么办法得到这份工作吗 apiVersion: v1 kind: ConfigMap metadata: name: config namespace: kube-system data: test.conf: | { "push": 5, "test": $NODE_N
apiVersion: v1
kind: ConfigMap
metadata:
name: config
namespace: kube-system
data:
test.conf: |
{
"push": 5,
"test": $NODE_NAME
}
我认为你不可能以任何方式摆脱束缚。ConfigMap只是按原样注入到您的Pod中
不过,您可以使用自定义脚本创建一个,以修改从ConfigMap注入的文件。在您的脚本中,您可以使用
sed
或envsubst
工具。我认为您不可能以任何方式跳出框框。ConfigMap只是按原样注入到您的Pod中
不过,您可以使用自定义脚本创建一个,以修改从ConfigMap注入的文件。在脚本中,您可以使用
sed
或envsubt
工具。实现此目的的一种方法是使用以下工具:
$ export NODE_NAME=my-node-name
$ cat << EOF | envsubst | kubectl apply -f-
apiVersion: v1
kind: ConfigMap
metadata:
name: config
namespace: kube-system
data:
test.conf: |
{
"push": 5,
"test": $NODE_NAME
}
EOF
$ kubectl exec -it example-pod -- cat /data/test.conf
{
"push": 5,
"test": minikube
}
应用上述yaml时,您可以检查文件是否被正确替换,如下所示:
$ export NODE_NAME=my-node-name
$ cat << EOF | envsubst | kubectl apply -f-
apiVersion: v1
kind: ConfigMap
metadata:
name: config
namespace: kube-system
data:
test.conf: |
{
"push": 5,
"test": $NODE_NAME
}
EOF
$ kubectl exec -it example-pod -- cat /data/test.conf
{
"push": 5,
"test": minikube
}
正如您所见,我在minikube中测试它(因此在我的例子中nodeName=minikube)实现这一点的一种方法是使用以下命令:
$ export NODE_NAME=my-node-name
$ cat << EOF | envsubst | kubectl apply -f-
apiVersion: v1
kind: ConfigMap
metadata:
name: config
namespace: kube-system
data:
test.conf: |
{
"push": 5,
"test": $NODE_NAME
}
EOF
$ kubectl exec -it example-pod -- cat /data/test.conf
{
"push": 5,
"test": minikube
}
应用上述yaml时,您可以检查文件是否被正确替换,如下所示:
$ export NODE_NAME=my-node-name
$ cat << EOF | envsubst | kubectl apply -f-
apiVersion: v1
kind: ConfigMap
metadata:
name: config
namespace: kube-system
data:
test.conf: |
{
"push": 5,
"test": $NODE_NAME
}
EOF
$ kubectl exec -it example-pod -- cat /data/test.conf
{
"push": 5,
"test": minikube
}
正如您所见,我在minikube中测试它(因此在我的例子中nodeName=minikube)这个环境在哪里?在本地主机上还是在容器中?最有可能你需要,但如果这对你没有帮助,我需要更多的信息,这个环境在哪里?在本地主机上还是在容器中?很可能你需要,但如果这对你没有帮助,我需要更多的信息