Service IP 原理 - 天天5分钟玩转 Docker 容器技术(137)

Service Cluster IP 是一个虚拟 IP,是由 Kubernetes 节点上的 iptables 规则管理的。html

能够经过 iptables-save 命令打印出当前节点的 iptables 规则,由于输出较多,这里只截取与 httpd-svc Cluster IP 10.99.229.179 相关的信息:后端

这两条规则的含义是:负载均衡

  1. 若是 Cluster 内的 Pod(源地址来自 10.244.0.0/16)要访问 httpd-svc,则容许。ide

  2. 其余源地址访问 httpd-svc,跳转到规则 KUBE-SVC-RL3JAE4GN7VOGDGPui

KUBE-SVC-RL3JAE4GN7VOGDGP 规则以下:spa

  1. 1/3 的几率跳转到规则 KUBE-SEP-C5KB52P4BBJQ35PHcode

  2. 1/3 的几率(剩下 2/3 的一半)跳转到规则 KUBE-SEP-HGVKQQZZCF7RV4ITorm

  3. 1/3 的几率跳转到规则 KUBE-SEP-XE25WGVXLHEIRVO5htm

上面三个跳转的规则以下:blog

即将请求分别转发到后端的三个 Pod。经过上面的分析,咱们获得以下结论:

iptables 将访问 Service 的流量转发到后端 Pod,并且使用相似轮询的负载均衡策略

另外须要补充一点:Cluster 的每个节点都配置了相同的 iptables 规则,这样就确保了整个 Cluster 都可以经过 Service 的 Cluster IP 访问 Service。

除了直接经过 Cluster IP 访问到 Service,DNS 是更加便捷的方式,下一节咱们讨论。

书籍:
1.《天天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html

2.《天天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

相关文章
相关标签/搜索