鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Pod IP地址直接对外暴露

Kube-OVN中可以通过静态路由的方式将Pod IP地址直接对外暴露,在这种情况下,Pod所在的子网需要将natOutgoing字段设置为false,关闭出网的NAT映射。

同时需要检查主机节点iptables的Forward链中是否有drop规则,ovn0网卡以及默认出网网卡需要放开Forward。

  • 物理环境

    若需要将Pod IP地址直接暴露给外部网络,以便外部可以直接通过Pod IP地址来访问容器,需要将对应子网的natOutgoing设置为false。同时需要在外部的路由器上加一条静态路由,将目的地址为子网CIDR的数据包下一跳设置为集群中的任意一台机器。

    子网配置示例:

    1
    vim subnet-gateway.yaml
    
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    apiVersion: kubeovn.io/v1
    kind: Subnet
    metadata:
      name: subnet-gateway
    spec:
      protocol: IPv4
      default: false
      namespaces:
      - ns1
      - ns2
      cidrBlock: 100.64.0.0/16
      gateway: 100.64.0.1
      excludeIps:
      - 100.64.0.1
      private: false
      gatewayType: distributed
      natOutgoing: false
    
    1
    kubectl create -f subnet-gateway.yaml
    
  • 虚拟网络环境

    对于虚拟网络由于安全组或Conntrack相关的限制,将容器网络的下一跳设置为集群内一台机器的做法,数据包可能会因为非对称路由的原因被drop。

    在这种情况下推荐将gatewayType设置为centralized并设置对应gatewayNode。外部访问容器需要将容器CIDR的路由下一跳设置为gatewayNode机器,来避免非对称路由的限制。