kubernetes - Kubernetes 环境变量未在命令中正确使用
问题描述
我正在尝试在我的 kubernetes 集群中引导 etcd 集群,这是 pod 定义的相关部分
- name: etcd
image: quay.io/coreos/etcd:v2.2.0
ports:
- containerPort: 2379
- containerPort: 2380
- containerPort: 4001
env:
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
args:
- "-name"
- "etcd0"
- "-advertise-client-urls"
- http://${POD_IP}:2379,http://${POD_IP}:4001
- "-initial-advertise-peer-urls"
- "http://${POD_IP}:2380"
- "-listen-peer-urls"
- "http://0.0.0.0:2380"
- "-initial-cluster"
- 'etcd0=http://${POD_IP}:2380'
- "-initial-cluster-state"
- "new"
但是,当我应用 POD_IP 环境变量时,它似乎被破坏了,日志证明了这一点:
advertise URLs of "etcd0" do not match in --initial-advertise-peer-urls [http://$%7BPOD_IP%7D:2380] and --initial-cluster [http://$%7BPOD_IP%7D:2380]
有没有人见过类似的东西?
解决方案
参数不是由 shell 解释的,所以花括号不会得到你想要的行为。如果要在 arg 中使用 envvar 值,$(VAR_NAME)
则使用容器的环境扩展变量引用。
推荐阅读
- duplicates - Power BI topn 函数:topn 函数由于重复而返回多于 n 行的问题
- laravel - 如何自动翻译 laravel 验证错误属性
- c++ - 清除标准容器而不是构造和破坏它是否有意义?
- swift - 在选择collectionView时,在Swift keyDown(带有事件:NSEvent)中不起作用
- linux - Linux 按月和年排序
- python - 如何检查和重新排列包含一系列增量值的 Python 列表
- podman - podman 不让我吃东西有什么原因吗?
- javascript - 如何以纯文本形式查看 javascript 函数的输出?
- r - 从多边形中删除与 R 中国际日期变更线相交的线(例如俄罗斯在 rnaturalearth)
- python - 从模拟的高斯数据集中计算平均值/中值/标准偏差的所有值?