【发布时间】:2020-01-22 06:33:54
【问题描述】:
我正在尝试在 kubernetes 容器中传递一个环境变量。
到目前为止我做了什么?
-
创建部署
kubectl create deployment foo --image=foo:v1 -
创建一个 NODEPORT 服务并公开端口
kubectl expose deployment/foo --type=NodePort --port=9000 -
查看豆荚
kubectl get pods -
转储配置(以便添加环境变量)
kubectl get deployments -o yaml > dev/deployment.yamlkubectl get svc -o yaml > dev/services.yamlkubectl get pods -o yaml > dev/pods.yaml -
将环境变量添加到 pod 环境:
- 名称:FOO_KEY 值:“Hellooooo”
-
删除 svc、pods、部署
kubectl delete -f dev/ --recursive -
应用配置
kubectl apply -f dev/ --recursive -
验证环境参数
kubectl describe pods
有些奇怪
如果我手动更改了 pod yaml 的元信息并硬编码了 pod 的名称。它获取环境变量。然而,这一次有两个 pod 出现了一个带有硬编码名称,另一个带有哈希值。例如,如果我硬编码的名称是“foo”,则两个 pod,即 foo 和 foo-12314faf(示例)将出现在“kubectl get pods”中。你能解释一下为什么吗?
问题
为什么验证步骤不显示环境变量?
【问题讨论】:
-
您好,您能否验证部署 yaml 中的变量?
-
你应该对部署进行变异,如果是部署创建的,直接变异不是好主意
-
kubectl get deploy foo -o yaml将是命令 -
我在 pod yaml 文件中添加了 env 变量。我不知道它们是否也可以在部署中传递。是吗?
-
我看到 env 也可以在 kind: Pod 下给出。无论如何,在部署 yaml 中声明 env 是有效的。感谢您的建议。
标签: kubernetes