Kubernetes SERVICE_PORT环境变量显示为依赖于顺序



我在Kubernetes服务中添加了第二个TCP端口,并注意到kubelet为{SVCNAME}_SERVICE_PORT环境变量分配的端口似乎取决于顺序。

例如,如果我在我的服务中这样声明我的端口:

ports:
- name: example
port: 9000
protocol: TCP
- name: http
port: 8080
protocol: TCP

FOO_SERVICE_PORT将被分配值9000。但如果我改变顺序。。。

ports:
- name: http
port: 8080
protocol: TCP
- name: example
port: 9000
protocol: TCP

则CCD_ 4现在是CCD_。

有没有办法强制kubelet选择一个特定的端口设置到这个变量中,这样它就不依赖于我在中定义端口的顺序?也就是说,是否存在我可以设置的配置,以便它始终使用";http";端口(8080(作为它分配给该变量的值,而不管该特定端口在列表中的何处声明?

在旧版本的Kubernetes中,服务只能定义一个端口。当他们添加对多个端口的支持时,他们根据设计选择将第一个端口放在向后兼容的环境变量中。没有任何配置可以更改此行为。

但是,Kubernetes还为命名端口设置了{serviceName}_SERVICE_PORT_{portName}环境变量,因此您可以通过端口名称获得端口号。例如:

FOO_SERVICE_PORT_EXAMPLE=9000
FOO_SERVICE_PORT_HTTP=8080

相关内容

  • 没有找到相关文章

最新更新