kubernetes集群实战--node节点配置flannel网络(三)

为什么要使用flannel网络??

目前有3个node节点(master、node1、node2),当大规模使用容奇的时候容器和容器之间是需要相互通信的,那么这时候就需要实现跨docker宿主机容器之间的通信,这时需要一个网络插件来实现宿主机与容器之间的相互通信

flannel网络的配置
所有节点安装flannel网络插件

[root@k8s-master /]# yum install flannel -y
[root@k8s-node1  /]# yum install flannel -y
[root@k8s-node2  /]# yum install flannel -y

master配置flannel配置文件

[root@k8s-master /]# vim /etc/sysconfig/flanneld 

配置etcd地址,下面etcd key使用默认的路径
kubernetes集群实战--node节点配置flannel网络(三)_第1张图片
设置etcd config key
在这里插入图片描述

启动flannel网络
在这里插入图片描述
当flannel网络开启之后会多一块网卡
kubernetes集群实战--node节点配置flannel网络(三)_第2张图片
地址为172.16.59.0,59.0是随机分配的,172.16是在etcd config key自定的

docker的网段为172.17
在这里插入图片描述

重启docker服务
在这里插入图片描述
重启完成之后docker和flannel网络是在同一个网段
kubernetes集群实战--node节点配置flannel网络(三)_第3张图片
node1节点配置flannel网络
编辑flannel配置文件

[root@k8s-node1 kubernetes]# vim /etc/sysconfig/flanneld 
[root@k8s-node1 kubernetes]# 

kubernetes集群实战--node节点配置flannel网络(三)_第4张图片
启动flannel服务
kubernetes集群实战--node节点配置flannel网络(三)_第5张图片
node1重启docker后docker网段与flannel在一个网段中
kubernetes集群实战--node节点配置flannel网络(三)_第6张图片

node2节点操作同node1

测试容器之间是否能正常通信
master上docker0的 IP为172.16.59.1
node2上的docker0 IP为172.16.17.1
kubernetes集群实战--node节点配置flannel网络(三)_第7张图片
可以正常ping通

测试跨宿主机之间容器之间的互通性
三个节点运行busybox容器进行互通测试

[root@k8s-master /]# docker run -it busybox
[root@k8s-node1 /]# docker run -it busybox
[root@k8s-node2 /]# docker run -it busybox

kubernetes集群实战--node节点配置flannel网络(三)_第8张图片
发现ping 不通,相互之间ping不通

将iptables 的FORWARD改为ACCEPT

[root@k8s-master /]# iptables -P FORWARD ACCEPT
[root@k8s-node1 /]# iptables -P FORWARD ACCEPT
[root@k8s-node2 /]# iptables -P FORWARD ACCEPT

此时发现不同宿主机之间的容器之间可以相互ping通
kubernetes集群实战--node节点配置flannel网络(三)_第9张图片
但是,每次开启虚拟机都需要执行iptables -P FORWARD ACCEPT命令才能实现跨宿主机之间的容器互通,此种方法太过于繁琐

将策略加入到docker的配置文件中,实现自动启动

查看docker的自动启动文件的配置目录

kubernetes集群实战--node节点配置flannel网络(三)_第10张图片

如图所示docker的启动文件在/usr/lib/systemd/system/docker.service中

查看iptables命令的路径

[root@k8s-master ~]# which iptables
/usr/sbin/iptables

编辑配置文件

[root@k8s-master ~]# vim /usr/lib/systemd/system/docker.service

编写配置规则

ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT

kubernetes集群实战--node节点配置flannel网络(三)_第11张图片
执行daemon-reload命令使其生效
在这里插入图片描述

node1以及node2节点如上操作
在这里插入图片描述
在这里插入图片描述
至此,实现k8s跨宿主机容器之间的互通

你可能感兴趣的:(kubernetes,kubernetes)