OpenShift和hostnetwork = true

dpl*_*esa 5 redhat openshift kubernetes

我已经部署了两个POD-s,其中hostnetwork设置为true.当POD-s部署在同一个OpenShfit节点上时,一切正常,因为它们可以使用节点IP发现彼此.

当POD-s部署在不同的OpenShift节点上时,他们无法发现彼此,如果我想使用节点IP将一个POD指向另一个POD,我就没有到主机的路由.如何解决这个问题?

hec*_*ckj 0

如果您希望两个容器共享同一台物理机并利用环回进行快速通信,那么最好将它们一起定义为具有两个容器的单个 Pod。

如果这两个容器旨在漂浮在更大的集群上并且更加松散耦合,那么我建议利用 Kubernetes 中的服务构造(在 OpenShift 下)并使用它进行适当的发现。

服务记录在https://kubernetes.io/docs/concepts/services-networking/service/,并且与内部 DNS 服务(如果实现 - 常见于 Kubernetes 1.4 及更高版本)一起提供了一种让 Kubernetes 管理位置的方法事情是,以<servicename>.<namespace>.svc.cluster.local. 例如,如果您在默认命名空间中设置了一个名为“backend”的服务的 Pod,则另一个 Pod 可以将其引用为backend.default.svc.cluster.local. 有关 DNS 部分的 Kubernetes 文档可在https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/上找到。

这也避免了“hostnetwork=true”的复杂性,并让 OpenShift(或特别是 Kubernetes)管理网络。