1、获取服务地址
# kubectl get svc
地址为10.98.214.176
2、查看服务
# kubectl describe service nginx-svc
3、10.98.214.176 vip实现
查看iptables规则,报文发出规则:
-A KUBE-SERVICES -d 10.98.214.176/32 -p tcp -m comment --comment "default/nginx-svc cluster IP" -m tcp --dport 8080 -j KUBE-SVC-HL5LMXD5JFHQZ6LN
-A KUBE-SVC-HL5LMXD5JFHQZ6LN ! -s 10.244.0.0/16 -d 10.98.214.176/32 -p tcp -m comment --comment "default/nginx-svc cluster IP" -m tcp --dport 8080 -j KUBE-MARK-MASQ
请求地址为 10.98.214.176地址的包,转到链 KUBE-SVC-HL5LMXD5JFHQZ6LN中匹配。
查看 KUBE-SVC-HL5LMXD5JFHQZ6LN链中规则:
-A KUBE-SVC-HL5LMXD5JFHQZ6LN -m comment --comment "default/nginx-svc -> 10.244.0.28:80" -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-XDTHROYXYONPUT23
-A KUBE-SVC-HL5LMXD5JFHQZ6LN -m comment --comment "default/nginx-svc -> 10.244.1.29:80" -j KUBE-SEP-MHA7YE3UTOP3E2TG
分别按比例进行转换,dnat规则如下:
-A KUBE-SEP-XDTHROYXYONPUT23 -p tcp -m comment --comment "default/nginx-svc" -m tcp -j DNAT --to-destination 10.244.0.28:80
-A KUBE-SEP-MHA7YE3UTOP3E2TG -p tcp -m comment --comment "default/nginx-svc" -m tcp -j DNAT --to-destination 10.244.1.29:80
参考:
iptables相关学习:路由规则添加和iptable规则添加