【问题标题】:i want to enable the pod to pod communication in different namespace same cluster我想在不同的命名空间同一个集群中启用 pod 到 pod 的通信
【发布时间】:2021-01-04 02:07:00
【问题描述】:

我有 1 个主 1 个工作人员的 kubernetes 集群,我有运行一个命名空间“PG”的 DB 服务 postgres,并且我在默认命名空间中运行另一个服务配置服务器,我无法从配置服务器服务访问 postgres在默认命名空间中

Kubernetes 版本 1.13 覆盖网络-calico 根据我阅读的文章,如果 pod 没有定义任何网络策略,那么 pod 可以不受任何限制地访问任何其他命名空间 pod,需要帮助来实现它

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    应该能够从同一集群上的另一个 pod 访问任何 pod。 一种快速检查方法是从另一个 pod ping pod 的服务 dns

    进入配置服务 pod 并尝试运行以下命令

    ping <postgres-service-name>.<namespace>.svc.cluster.local
    

    你应该能够得到 ping 响应

    【讨论】:

    • ping postgres.pg.svc.cluster.local 没有工作,因为 pod 试图连接 postgres 并且失败
    • 没有定义网络策略,我也尝试使用网络策略来允许来自所有命名空间的所有流量,即使这样也没有解决
    【解决方案2】:

    我使用的是带有覆盖网络的 Kubernetes 集群作为 calico,如果没有创建网络策略,默认情况下 kubernetes 核心 dns 将解析服务,但我们必须添加 .在您在另一个命名空间中调用服务的应用程序或环境变量中。这将允许跨命名空间通信

    【讨论】:

    • 如果此解决方案对您有用,请将其标记为已批准。它将在未来帮助社区。您也可以考虑在答案中添加 yaml 文件示例。
    • 添加.是什么意思?
    • 命名空间.应用程序变量
    猜你喜欢
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 2022-06-10
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多