kubernetes - OpenShift 和 hostnetwork=true

标签 kubernetes openshift redhat

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

当 POD-s 部署在不同的 OpenShift 节点上时,它们无法相互发现,如果我想使用节点 IP 将一个 POD 指向另一个 POD,我将无法获得主机路由。如何解决这个问题?

最佳答案

uswitch/kiam (https://github.com/uswitch/kiam) 服务是一个很好的用例示例。
它有一个在所有工作节点的主机网络上运行的代理进程,因为它修改了防火墙规则以拦截 API 请求(从主机上运行的容器)到 AWS api。
它还有一个在主机网络上运行以访问 AWS api 的服务器进程,因为 AWS api 位于仅对主机网络可用的子网上。
最后...代理使用 GRPC 与服务器对话,该服务器直接连接到查找 kiam-server 时返回的 IP 地址之一。
所以你有代理部署的 pod 在节点 A 的主机网络上运行,试图连接到在节点 B 的主机网络上运行的 kiam 服务器......这不起作用。
此外,这是一项私有(private)服务......它不应该从网络外部获得。

关于kubernetes - OpenShift 和 hostnetwork=true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46738150/

相关文章:

r - 如何在 Linux 集群中安装 R 包

macos - 如何升级minikube?

kubernetes - 具有单个 ALB、多个命名空间和外部 DNS 的 EKS Ingress

networking - 可从PAAS外部访问OpenShift路由,但不能从PAAS内部的客户端访问

java.net.SocketException : Permission denied openshift

linux - 查找使用我的 rpm 的模块

docker - 我可以在 openshift pod 终端中运行 oc 命令吗?

docker - Cassandra-Kubernetes重新启动时如何保持Pod IP

docker - GO - Docker 在 K8S 容器上询问证书

node.js - 使用 Gitlab CI 构建 Node 应用程序并将其部署到 Openshift