【问题标题】:Enabling hostNetwork: true for IPv6 oly启用 hostNetwork:仅适用于 IPv6
【发布时间】:2020-04-15 09:43:39
【问题描述】:

我正在寻找一种使用 hostNetwork: true 但仅适用于 IPv6 的方法,我需要主机 ipv6 功能,但也希望有一个用于 pod 的内部网络(例如用于 prometheus 或准备好的 HTTP 服务器) 如果我启用 hostNetwork = true 我无法绑定额外的 HTTP 服务器,因为它绑定到主机。

谢谢!

【问题讨论】:

    标签: kubernetes kubernetes-pod project-calico


    【解决方案1】:

    仅使用 IPv6

    如果您希望仅使用 IPv6(通过禁用 IPv4)或您的主机只有 IPv6 地址,则必须通过将 IP 设置为 none 来禁用 IPv4 自动检测。使用该集合,您还必须将 CALICO_ROUTER_ID 传递给每个 calico-node pod。

    要禁用 IPv4,我们需要让节点的 IPv4 为空:

      spec:
        bgp:
          ipv4Address: none
          ipv6Address: ff9b::/128
    

    但问题是在bird(6)配置中ipv4地址被用作路由器ID,不幸的是它并不像使用ipv6地址那样简单。

    看看:bgp-router-ipv6,ipv6-calico-only

    另见:calico-ipv6-only

    您可以在节点中添加默认gw。添加默认 gw 并尝试 curl 命令从您的主机访问您的 API 服务 IP 地址。除非无法访问,否则您的集群将不会启动。示例IP为2001:db8:0:f101::2,添加虚拟路由如下图:

    sudo /sbin/route -A inet6 add default gw 2001:0db8:0:f101::1
    

    如果您使用 ipvs 而不是 iptables,我可以看到它在没有任何默认路由的情况下工作,因为 ipvsadm 正在添加以下规则。 fd20::1 是我的集群IP

    TCP [fd20::1]:443 rr  
    -> [2001:db8:0:f101::2]:6443 Masq 1 5 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-27
      • 2020-10-23
      • 2014-09-23
      • 2015-04-06
      • 2018-08-10
      • 1970-01-01
      相关资源
      最近更新 更多