首页 > 解决方案 > 为 sidecar 创建一个 ip 别名

问题描述

我们有一个在 localhost:myportnumber 上运行 API 的 sidecar(在这个例子中假设为 8888),我们试图从同一个 pod 中的主容器中引用它。

主容器是否需要知道边车运行的端口?(比如通过创建一个等于 8888 的环境变量?)

或者有没有一种方便的方法我们可以使用类似于集群 ip 的东西(如 namespace.servicename.sidecarname)或通过创建HostAlias来引用 sidecar ?

标签: kuberneteskubernetes-helmkubernetes-ingresskubernetes-pod

解决方案


主容器是否需要知道边车运行的端口?(比如通过创建一个等于 8888 的环境变量?)

是的,sidecar 容器共享相同的网络(IP,命名空间),所以你必须让主容器知道它可以到达 sidecar 容器的端口号。

有没有一种方便的方法可以使用类似于集群 ip 的东西(如 namespace.servicename.sidecarname)或通过创建 HostAlias 来引用 sidecar?

我认为 DNS/类似的东西不能扩展到在 pods 内运行的容器。因为如上所述,一个 pod 内的所有 contianers 共享相同的网络(IP,网络命名空间)


推荐阅读