首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes环境变量未在命令中正确使用

Kubernetes环境变量未在命令中正确使用
EN

Stack Overflow用户
提问于 2018-11-18 05:17:06
回答 2查看 414关注 0票数 3

我正在尝试引导kubernetes集群中的etcd集群,下面是pod定义的相关部分

代码语言:javascript
复制
  - 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环境变量时,它似乎被破坏了,这从日志中可以看出:

代码语言:javascript
复制
 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]

有没有人见过类似的东西?

EN

回答 2

Stack Overflow用户

发布于 2018-11-18 12:38:03

这些参数不是由shell解释的,所以大括号不会得到您想要的行为。如果要在arg中使用envav值,可以使用容器的环境扩展变量引用,如$(VAR_NAME)

票数 5
EN

Stack Overflow用户

发布于 2018-11-18 06:26:07

初始化容器用例:

https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

将值放入配置文件中,并运行模板工具来动态生成主应用程序容器的配置文件。例如,将Jinja值放置在配置中,并使用POD_IP

生成主应用程序配置文件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53355665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档