【问题标题】:What environment variables are created in kubernetes by defaultkubernetes默认创建了哪些环境变量
【发布时间】:2023-03-14 11:47:01
【问题描述】:

我在 k8s 文档中找不到这个,我只是想知道 k8s 在每个容器中创建的默认环境变量是什么。不是用户创建的默认值,而是像(这只是一个例子)可能像{service_name}_PORT 或类似的东西。我只想知道默认情况下容器中有哪些信息可用。

【问题讨论】:

  • 您可以通过$ kubectl exec podName env 快速浏览
  • @oe18 非常感谢!

标签: environment-variables containers kubernetes


【解决方案1】:

来自 K8S 文档;

容器信息 - ENV 的

Container 的主机名是运行 Container 的 Pod 的名称。可通过 hostname 命令或 libc 中的 gethostname 函数调用获得。

Pod 名称和命名空间可用作环境变量。

这些是我运行的 MiniKube 集群中的额外 ENV:

HOSTNAME=something-api-234234234-skm70
SHLVL=1
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_HOST=x.x.x.x
PWD=/

Pod 定义中的用户定义环境变量也可用于容器,就像在 Docker 映像中静态指定的任何环境变量一样。

集群信息 - ENV 的

创建容器时正在运行的所有服务的列表可供该容器用作环境变量。这些环境变量与 Docker 链接的语法相匹配。

对于映射到名为bar 的容器端口的名为foo 的服务,定义了以下变量:

FOO_SERVICE_HOST=<the host the service is running on>
FOO_SERVICE_PORT=<the port the service is running on>

参考:https://kubernetes.io/docs/concepts/containers/container-environment/

【讨论】:

  • 是详尽的吗?它是否包括所有创建的环境变量?
  • 我不能说 100%,但我已经添加了我拥有的其他 ENV,它们不是服务。
  • 您还应该考虑discovering-services 上的这些变量,因为这些变量是为enableServiceLinks 注入的(默认值为true)
  • 我可以看到很多环境变量甚至没有在 docker 文件或 k8s 清单中定义。
  • @sureshPalemoni 是什么?
猜你喜欢
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 2021-05-01
  • 1970-01-01
  • 2015-11-14
相关资源
最近更新 更多