所有节点安装flannel插件4
k8s是大规模的使用容器
有的容器是在node1上启动的,有的容器是在node2上启动的,有的容器是在node3上启动的;容器和容器之间需要相互通信。相互通讯就涉及到跨宿主机的容器之间的通信。
接下来配置flannel网络,flannel网络需要用到etcd,
flannel和k8s可以共用一个etcd,要装flannel网络的话,是所有节点(master节点,node1节点,node2节点)都要装,包括master节点。如下图所示
yum install flannel -y
接下来修改配置文件
vim /etc/sysconfig/flanneld
在master节点上创建key,如下图所示
接下来进行批量替换
sed -i 's#http://127.0.0.1:2379#http://10.0.0.11:2379#g' /etc/sysconfig/flanneld #批量替换
cat /etc/sysconfig/flanneld #查看配置文件是否改对
查看配置文件是否改对,如下图所示
所有节点都需要替换一下,执行以下命令
sed -i 's#http://127.0.0.1:2379#http://10.0.0.11:2379#g' /etc/sysconfig/flanneld #批量替换
下一步在master节点上去创建key,如下图所示
我们检验一下获取他的值,如下图所示
etcdctl get /atomic.io/network/config #检验一下获取值
我们flannel网络必须依赖这个值,
如果内存资源足够的话,是不需要在master节点上装docker的,现在是用k8s来管理所有的docker宿主机,docker宿主机有很多,这么多的宿主机需要有自己的私有仓库,这个私有仓库就需要占有一台机器。现在我们就直接把这个私有仓库装到master节点上。让master节点在兼职私有仓库的作用。后面我们把镜像传到这个私有仓库里面。其他机器在使用镜像的时候,直接从这个私有仓库里面去拉取。这样速度就更快。
在master节点上装docker
etcdctl get /atomic.io/network/config #检验一下获取值
装完docker之后,把flannel网络全都重启,master节点执行这些命令,如下图所示
两个node节点分别都执行下面的命令,如下图所示
所有节点ifconfig看一下
ifconfig
把flannel装上去之后,每个节点上都多出来一个flannel0,每个节点上的flannel0的网段都不一样。这个每个人的网段都是不一样的,从这个大网段里面给它分一个24位的子网掩码,当你把这个flannel网络跑起来之后,再来重启docker,docker默认的网络也变成了另外一个网段,之前docker的网段是172.17的网段,现在变成了172.16.的网段,变成了和flannel一个网段的了。这个时候一个跨宿主机的网络就已经准备好了。接下来就直接启动容器测试了。启动容器我们都用docker busybox.tar.gz的一个镜像。不想用wget来导入的话,这个镜像特别小,我们在所有节点上都把这个镜像wget下来,如下图所示
wget完之后就是导入docker load -i
现在测的是所有节点跨宿主机网络通不通,三个节点都导入镜像,如下图命令所示。
之后发现所有节点上都启动了一个busybox的容器,如下图所示
再次输入ifconfig,发现ip地址都有了。如下图所示
现在每个容器的ip地址全局为1,但我们装的docker版本是1.13的时候,会有个bug,它改了iptables的规则,如下图所示,所以我们要在每个节点上都执行一条命令,给他改回去,把它的forward链给他改回去,iptables -P FORWARD ACCEPT,三个节点都执行一下这条命令,如下图所示。
接下来进行测试,在master节点上测试网络是否连通另外两个node节点。
标签:插件,网段,master,所示,docker,节点,flannel From: https://www.cnblogs.com/ypyyds/p/16817631.html