更多内容可参考本人博客:https://blog.51cto.com/tryingstuff/2121707
之前的博客已经介绍了部署一个简单的Kubernetes集群,但是这个集群环境没有一个合理的网络配置。在实际生产中要实现集群中各个组件的通信,就需要使用第三方提供的网络插件。
Flannel 二进制安装
1、下载fannel组件
wget https://github.com/coreos/flannel/releases/download/v0.10.0/flannel-v0.10.0-linux-amd64.tar.gz
2、安装Flannel 网络组件
tar xf flannel-v0.10.0-linux-amd64.tar.gz
cp flanneld /usr/bin/
cp mk-docker-opts.sh /usr/bin/
3、由于是二进制的文件,将flanneld拷贝到有系统环境变量的可执行路径就完成了安装。下面讲解具体的配置过程和原理。
Flannel 配置
我们之所以要单独使用第三方的网络插件来扩展k8s,主要原因是在使用docker的环境中,在每个node节点的docker0默认的网段都是172.17.0.0/16的网络。如果要实现不同宿主node上pod(这里也可以理解为容器)互相通信,就不能使用默认的docker0提供的网段,我们需要部署一个覆盖网络,让每个node节点的docker0网络都处于不同的网段,这样,通过添加一些路由转发策略,就能让集群中各个pod在同一个虚拟的网络中实现通信。
1、这里编写flanneld的systemd文件ÿ