作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出于调试原因,我尝试通过 kubectl run
运行容器 (alpine),并从 ConfigMap 或 Secret 设置一些环境变量。为此,我了解使用 --override=
参数。但是,如果我执行容器并回显变量,则不会设置任何内容。我的内联 json 结构有误吗?
kubectl run --dry-run=client --restart=Never --image=alpine -n app-ns psql-demo --overrides='
{
"apiVersion": "v1",
"spec": {
"env": [
{
"name": "POSTGRES_HOST",
"valueFrom": {
"configMapKeyRef": {
"key": "POSTGRES_HOST",
"name": "db-config"
}
}
}
]
}
}' -o yaml -- sh
我尝试通过 echo ${POSTGRES_HOST}
检查它。
此处的 ConfigMap 配置:
apiVersion: v1
data:
POSTGRES_HOST: db.host.com
kind: ConfigMap
metadata:
labels:
component: postgres
name: db-config
namespace: app-ns
有什么想法吗?非常感谢!
最佳答案
你的json结构有点不对,应该是这样的:
{
"spec": {
"containers": {
"env": [
{
"name": "POSTGRES_HOST",
"valueFrom": {
"configMapKeyRef": {
"name": "db-config",
"key": "POSTGRES_HOST"
}
}
}
]
}
}
}
请注意,第一个“名称”是将出现在容器内的实际环境变量名称,它不必与您在 configmap 中使用的实际 key 相同。
kubectl run
会忽略未知字段。要调试这个,你可以运行你指定的命令,然后在另一个终端:
kubectl get pod POD_NAME -o json
从那里您可以查看实际的 env 规范结构是否与您的 json 覆盖值不同。
关于kubernetes - 如何在 kubectl run 中从 ConfigMap 设置 Env?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61712203/
我是一名优秀的程序员,十分优秀!