Kubernetes自动生成的环境变量设置错误?

gajydyqb  于 2023-02-07  发布在  Kubernetes
关注(0)|答案(1)|浏览(208)

在pod启动过程中,Kubernetes正在基于我创建的服务创建一些环境变量(通过向下API?)。问题是其中一个变量MY_APPLICATION_PORT似乎初始化不正确,如下所示:

MY_APPLICATION_PORT=tcp://192.168.0.5:7777

而我希望它只保存7777值。问题是我在www.example.com中有一个具有此属性的 Boot 应用程序application.properties:

my.application.port=7777

因此,当spring解析它的属性时,它更喜欢环境变量中的值而不是.properties文件中的值,从而用不正确的值覆盖它。
我的问题是-你们知道如何控制kubernetes环境变量的创建吗?我可以在我的deployment.yaml中覆盖它,但我想知道是否有其他方法。
编辑:我发现这是我在网上看到的最接近我的问题的描述:https://github.com/kubernetes/kubernetes/issues/65130

bhmjp9jg

bhmjp9jg1#

此环境变量来自与一个非常旧的Docker功能的兼容性。您可以在Kubernetes中禁用它,方法是在Pod规范中的Container对象上设置enableServiceLinks: false(可能出现的任何位置)。例如:

apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
        - name: ...
          enableServiceLinks: false
          env: [...]

特别是语法是为了与第一代Docker网络中的容器链接生成的环境变量兼容。从那时起,Docker也在其核心引入了DNS系统,在纯Docker中使用链接现在被认为是过时的。始终设置此Kubernetes属性应该是安全的,特别是在它导致像您在这里描述的冲突时。

相关问题