kebernetes集群——部署FLANNEL

kebernetes集群——部署FLANNEL

环境:
两台虚拟机:
k8s-master:192.168.3.138
k8s-node1:192.168.3.178

操作系统:redhat-7.3_x86_64
ETCD:3.3.8-linux-amd64
FANNEL:0.10.0-linux-amd64

一、下载FLANNEL至服务器
1、下载二进制包,本例使用的包为flannel-v0.10.0-linux-amd64.tar.gz
下载地址:https://github.com/coreos/flannel/releases

2、将二进制包解压至/usr/local/。
目录结构如下图。注:flanneld.conf为后续步骤添加
这里写图片描述

二、配置FLANNEL及systemd、ETCD
1、在ETCD中添加键值

etcdctl mk /k8s/network/config '{"Network":"172.10.0.0/16", "SubnetMin":"172.10.1.0", "SubnetMax":"172.10.254.0", "Backend":{"Type":"vxlan"}}'

说明:此步骤执行条件为已安装ETCD,etcdctl可执行文件已拷贝至/usr/bin目录下。FLANNEL启动后,会从ETCD读取此项配置,据此设置flannel网络。“Network”定义了flannel的网段。“SubnetMin”和“SubnetMax”定义了flannel集群网络地址空间中最小和最大的可分配子网网段。“Backend”定义了flannel的网络模式,默认为非vxlan,然而vxlan模式较优;如果使用vxlan模式,flannel会使用UDP 8472端口转发报文,否则,使用UDP 8285端口。

2、创建/usr/local/flannel-v0.10.0-linux-amd64/flanneld.conf文件,文件内容如下:

FLANNELD_ETCD_ENDPOINTS="http://192.168.3.138:2379,http://192.168.3.178:2379"
FLANNELD_ETCD_PREFIX="/k8s/network"

说明:FLANNELD_ETCD_ENDPOINTS为ETCD集群的服务地址。FLANNELD_ETCD_PREFIX为ETCD中设置的flannel的配置信息的key值的前缀,flannel会读取ETCD中key为“{FLANNELD_ETCD_PREFIX}/config”对应的值的信息,作为flannel网络的配置信息,请参考上一操作步骤进行理解。

3、创建并编辑/usr/lib/systemd/system/flanneld.service文件,服务器k8s-master上的文件内容见下图:

[Unit]
Description=Flannel Server
After=etcd.service
Before=docker.service

[Service]
Type=notify
EnvironmentFile=/usr/local/flannel-v0.10.0-linux-amd64/flanneld.conf
ExecStart=/usr/local/flannel-v0.10.0-linux-amd64/flanneld
ExecStartPost=/usr/local/flannel-v0.10.0-linux-amd64/mk-docker-opts.sh -d /run/flannel/docker_opts.env -c
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

说明:ExecStartPost为启动flannel后执行的命令;这里表示,系统启动flannel成功后,会立即执行“/usr/local/flannel-v0.10.0-linux-amd64/mk-docker-opts.sh -d /run/flannel/docker_opts.env -c”这一条命令;这条命令根据flannel的具体配置,生成了“/run/flannel/docker_opts.env”文件;这个文件是给docker使用的,文件只有一行,是docker的启动参数,将其加入到docker的启动参数中,docker启动后,就会使用flannel配置的网段,具体操作请参考下文“五、与docker集成”。
此文件的作用及配置项的含义,请百度“centos7 systemd”相关知识。

4、将FLANNEL设置为开机启动

systemctl enable flanneld.service

三、启动FLANNEL

systemctl start flanneld.service 

四、查看FLANNEL
1、执行:systemctl status flanneld.service,查看flannel运行状态。
2、使用ifconfig命令,查看是否有flannel的网络配置

五、与docker集成
1、修改“/usr/lib/systemd/system/docker.service”文件,如下图所示:
这里写图片描述
说明:我们在docker.service文件中增加了三处地方。“After=flanneld.service”表示docker在flannel之后启动,以确保docker启动时存在“/run/flannel/docker_opts.env”文件。“EnvironmentFile=/run/flannel/docker_opts.env”定义了docker的环境变量文件,里面定义了“DOCKER_OPTS”变量。在“ExecStart”配置项的值的最后增加“ DOCKEROPTSdocker使 D O C K E R O P T S ” , 表 示 启 动 d o c k e r 时 使 用 “ DOCKER_OPTS”指代的值作为参数。
关于“/run/flannel/docker_opts.env”文件,请参考上文“步骤二.3”的说明。

2、重载docker的systemd配置,重启docker,执行:

systemctl daemon-reload
systemctl restart docker.service

注意:
FLANNEL默认使用UDP 8285端口作为虚拟网络的转发端口,如果使用VxLAN模式,端口为UDP 8472。因此,如果有防火墙,需要视情况开放UDP 8285、8472端口,否则,虚拟网络中的容器无法互通。详情可参考https://www.hi-linux.com/posts/30481.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值