gpt4 book ai didi

kubernetes - Kubernetes上环境变量的字符串操作

转载 作者:行者123 更新时间:2023-12-03 08:16:01 24 4
gpt4 key购买 nike

我对Kubernetes YAML字符串操作有疑问。

我需要根据部署的容器的主机名设置一个env变量,并将端口号附加到此变量。

 env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name

How do I create another env variable that uses MY_POD_NAME and makes it look like this uri://$MY_POD_NAME:9099/



必须将其定义为env变量。 Kubernetes YAML文件中是否允许字符串操作?

最佳答案

你可以做类似的事情

- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_URI
value: "uri://$(MY_POD_NAME):9099/"

从K8s 1.4开始我们就使用它
$()由k8s本身处理,并非在所有地方都有效,但适用于env变量。

如果您的容器包含bash,则还可以利用bash变量扩展
"command": ["/bin/bash"],
"args": [ "-c",
"MY_POD_URI_BASH=uri://${MY_POD_NAME}:9099/ originalEntryPoint.sh
],
${}不会被k8s所触及,但稍后会由bash在容器中进行评估。如果有机会,请选择带有 $()的第一个选项

注意:声明中的顺序事项。在上面的示例中,如果稍后在env数组中定义了 MY_POD_NAME,则扩展将无法正常工作。

关于kubernetes - Kubernetes上环境变量的字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40889743/

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