gpt4 book ai didi

kubernetes - 用一些环境变量替换configmap内容

转载 作者:行者123 更新时间:2023-12-02 12:29:59 25 4
gpt4 key购买 nike

我正在运行一个使用volumeClaimTemplates的statefulset。那里一切都很好。

我也有一个configmap,在这里我想用此配置文件所投影到的每个pod的Pod名称来替换一些条目;例如,如果configmap数据是:

ThisHost=<hostname -s>
OtherConfig1=1
OtherConfig1=2
...

然后对于名为 mypod-0的有状态集pod,配置文件应包含 ThisHost=mypod-0ThisHost=mypod-1mypod-1

我该怎么办?

最佳答案

主机名默认包含在pod中的环境变量HOSTNAME中。
如果您先进行以下操作,则可以修改configmap本身:

  • 挂载configmap并将其设置为ThisHost=hostname -s(这将使用该文本在pod的文件系统中创建一个文件)
  • 启动时将替换命令传递给pod(类似于$ sed 's/hostname/$HOSTNAME/g' -i /path/to/configmapfile)

  • 基本上,您挂载configmap,然后将其替换为pod中可用的环境变量信息。这只是一个替代操作。

    看下面的例子:
    apiVersion: v1
    kind: Pod
    metadata:
    name: command-demo
    labels:
    purpose: demonstrate-command
    spec:
    containers:
    - name: command-demo-container
    image: debian
    command: ["sed"]
    args: ["'s/hostname/$HOSTNAME'", "-i", "/path/to/config/map/mount/point"]
    restartPolicy: OnFailure

    args的语法可能需要进行一些调整,但是您明白了。

    请让我知道是否有帮助。

    关于kubernetes - 用一些环境变量替换configmap内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59302937/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com