如下图,三台虚拟机k8s-master、k8s-node-1、k8s-node-2组成k8s集群,网络拓扑和节点IP分配如下图:
一、flannel组网方案
https://github.com/coreos/flannel
在flannel方案中,每台服务器被当作一个VXLAN的VTEP设备,ETCD根据每个docker网桥分配一个网段,集群中的所有容器通过UDP封装形成VXLAN的大二层,所有Pod之间都可以IP可达,发布业务可以通过SVC或者ingress的方式。
部署步骤如下:
Step1:检查k8s集群中的节点
Step2:安装Flannel(所有节点)
Step3:修改Flannel配置文件,标红部分为修改内容
[root@k8s-master ~]# vi /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://127.0.0.1:2379" //修改为:FLANNEL_ETCD_ENDPOINTS="http://etcd:2379"
Step4:启动flannel服务并且设置开机启动(所有节点)
[root@k8s-master ~]# systemctl enable flanneld.service
Created symlink from /etc/systemd/system/multi-user.target.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service.
Created symlink from /etc/systemd/system/docker.service.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service.
[root@k8s-master ~]# systemctl start flanneld.service
Step5:配置etcd中关于flannel的key(仅在master节点)
Step6:重启docker和k8s服务后在节点上查看网络信息
发现多了一个flannel0的网卡,分配了一个/24的地址段,网桥docker0也有了地址
Step7:在节点上ping测试容器IP
二、Calico组网方案
Calico组网方案是一个单纯的L3组网方案,使用虚拟路由代替虚拟交换,每一台虚拟路由通过BGP协议传播可达信息
https://github.com/projectcalico/calico
原文:https://www.cnblogs.com/networking/p/11878194.html