gpt4 book ai didi

linux - 具有多个外部 IP 的 Kube-Proxy

转载 作者:行者123 更新时间:2023-12-04 19:42:50 34 4
gpt4 key购买 nike

我想运行多个 Kubernetes 服务并使用 externalIPs这些服务将特定服务绑定(bind)到特定 IP 的字段。

我有一台具有三个接口(interface)的虚拟机:

  • 内部接口(interface) (eth0)
  • 外部接口(interface) (eth1)
  • 外部接口(interface) (eth2)

  • 我已经为接口(interface) 2 和 3 添加了 iproute2 表/路由/规则,这会确保流量通过正确的接口(interface)进行反向路由。

    只要 kubelet/kube-proxy 没有运行,一切都按预期工作。 (例如,运行 nc 来提供一些数据。)

    一旦 kubelet/kube-proxy 启动,就会创建一些(我不知道是哪个)iptables 配置,这会删除包。
    (至少这是 tcpdump 中的样子。)

    如果我在节点上只运行一个 IP,一切都会按预期工作 - 所以我假设问题是第二个 IP 和某种路由。

    这里是 iptables在启动 kubelet 服务之前和之后配置。
    我已经对文件进行了匿名化,并删除了明显不相关的内容——如果我删除的内容太多,请告诉我。
  • https://gist.github.com/Thubo/7421d30288ef72ad480ac830dc19ec47

  • 有人运行类似的设置吗?
    需要如何配置 kube-proxy 和/或操作系统来设置这种网络?
    任何想法在哪里进行调试?

    我在 CentOS7 上运行 Kubernetes 1.6.4。

    最佳答案

    Kube-proxy试图管理它拥有的所有接口(interface),当然,强制一些规则(包括过滤)来提供服务。

    如果您真的想在服务器上使用多个接口(interface)并同时在接口(interface)之间保存自定义转发规则,您可以将所有组件绑定(bind)到内部接口(interface)(在您的情况下为 eth0)并根据需要手动管理所有其他接口(interface).

    对于设置一个接口(interface),您应该使用 CLI 参数:

  • 对于 kubelet守护进程 - --address
  • 对于 kube-proxy守护进程 - --bind-address
  • 对于 kube-api守护进程 - --bind-address .

  • 但请记住,您需要使用该接口(interface)进行集群内的所有相互通信和一些标志,例如 HostNetwork还将只为您提供该界面。

    关于linux - 具有多个外部 IP 的 Kube-Proxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49409482/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com