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机器,来避免非对称路由的限制。
父主题: 子网管理