一、Flannel vxlan模式跨主机通信原理
网络桥接到cni0上
[root@server2 ~]# yum install -y bridge-utils
1、1网段主机和2网段主机如何通信:
pod通过内部的网关达到cni0,数据包存在就会存在一个1网段访问2网段的需求,flannel会在每个节点上创建一个数据表。可以直接拿到网关地址,
[root@server2 ~]# route -n #查看
[root@server2 ~]# arp -n
真机ip和容器分配ip地址如何匹配:172.24.1.4和10.244.2.0对应
[root@server2 ~]# bridge fdb
二、Headless Service“无头服务“
不分配ip地址,直接用DNS记录的方式解析出被代理Pod的ip地址。
[wjjk8s@server1 manifest]$ vim service.yaml
clusterIP: None
[wjjk8s@server1 manifest]$ kubectl get svc
myservice ClusterIP None <none> 80/TCP 6s
[wjjk8s@server1 manifest]$ kubectl attach test -it
/ # nslookup myservice #直接监测myservice的ip地址
滚动更新后pod的id变了但是使用namespace依旧可以解析
[wjjk8s@server1 manifest]$ vim deployment.yaml #更改镜像版本
[wjjk8s@server1 manifest]$ kubectl apply -f deployment.yaml
[wjjk8s@server1 manifest]$ kubectl attach test -it
/ # nslookup myservice #ip更改但依旧可以解析