容器编排——安装flannel与配置

目录

1、离线安装:

(1)软件下载:

(2)软件上传:

(3)软件解压:

(4)创建目录:

(5)安装flannel:

(6)修改flannel配置文件:

(7)创建flannel服务脚本:

(8)授权flannel服务脚本:

(9)重新加载系统服务脚本:

2、在线安装:

(1)安装flannel:

(2)修改flannel配置文件:

3、修改etcd中环境变量:

4、操作flannel服务:

(1)启动服务:

(2)停止服务:

(3)查看服务状态:

(4)服务开机自启:

(5)关闭服务开机自启:

5、配置docker连接flannel:

(1)修改docker服务配置文件:

(2)重新加载系统服务脚本:

(3)重启docker服务:


1、离线安装:

(1)软件下载:

软件下载入口地址:https://github.com/flannel-io/flannel,本地下载的是0.12.0版本。

容器编排——安装flannel与配置

容器编排——安装flannel与配置

(2)软件上传:

将下载的软件包上传到服务器自定义文件夹中。

(3)软件解压:

解压服务器中的软件包。

(4)创建目录:

创建flannel配置文件目录:mkdir -p /usr/local/flannel/config

(5)安装flannel:

将解压后的flanneld移动到/usr/bin中。

将解压后的mk-docker-opts.sh移动到/usr/local/flannel中。

(6)修改flannel配置文件:

在flannel配置文件目录中,创建flanneld文件,文件有以下参数:

FLANNEL_ETCD_ENDPOINTS="http://192.168.137.180:2379"

FLANNEL_ETCD_PREFIX="/flannel/network"

FLANNEL_OPTIONS="--iface=ens33"  #设置自己的通信物理网卡

说明:IP地址为etcd服务的IP地址,如果etcd是集群那么对应的FLANNEL_ETCD_ENDPOINTS为访问etcd集群的url用英文逗号分隔;FLANNEL_ETCD_PREFIX要与下面在etcd中设置的环境变量的前缀相同。

容器编排——安装flannel与配置

查看服务器物理网卡的命令为:

ls /sys/class/net/ | grep -v "`ls /sys/devices/virtual/net/`"

容器编排——安装flannel与配置

(7)创建flannel服务脚本:

在/usr/lib/systemd/system中,创建flannel服务脚本:flanneld.service,脚本内容如下:

[Unit]

Description=Flannel Network Fabric

Documentation=https://github.com/coreos/flannel

Before=docker.service

After=etcd.service



[Service]

Type=notify

EnvironmentFile=-/usr/local/flannel/config/flanneld

ExecStart=/usr/bin/flanneld \

--etcd-endpoints=${FLANNEL_ETCD_ENDPOINTS} \

--etcd-prefix=${FLANNEL_ETCD_PREFIX} \

${FLANNEL_OPTIONS}

Restart=always

RestartSec=10s

LimitNOFILE=65536



[Install]

WantedBy=multi-user.target

(8)授权flannel服务脚本:

对flanneld.service脚本授权777:

执行命令:

chmod 777 /usr/lib/systemd/system/flanneld.service

(9)重新加载系统服务脚本:

执行命令:

systemctl daemon-reload

2、在线安装:

(1)安装flannel:

执行命令:

yum install -y flannel

(2)修改flannel配置文件:

修改文件:/etc/sysconfig/flanneld,以下参数:

FLANNEL_ETCD_ENDPOINTS="http://192.168.137.160:2379"

FLANNEL_ETCD_PREFIX="/k8s/network"

FLANNEL_OPTIONS="--iface=ens33"  #设置自己的通信物理网卡

说明:IP地址为etcd服务的IP地址,如果etcd是集群那么对应的FLANNEL_ETCD_ENDPOINTS为访问etcd集群的url用英文逗号分隔;FLANNEL_ETCD_PREFIX要与下面在etcd中设置的环境变量的前缀相同。

容器编排——安装flannel与配置

查看服务器物理网卡的命令为:

ls /sys/class/net/ | grep -v "`ls /sys/devices/virtual/net/`"

容器编排——安装flannel与配置

3、修改etcd中环境变量:

在etcd中配置flannel网段的IP:

执行命令:

etcdctl set /flannel/network/config '{ "Network":"172.16.0.0/16" }'

如果是在搭建k8s集群过程中,在etcd中设置环境变量的操作应该不需要,会在集群搭建的过程中,设置好的。执行该命令就是在etcd中存储一个key-value键值对而已。类似在redis中通过执行redis命令存入一个键值对一样。

4、操作flannel服务:

(1)启动服务:

执行命令:systemctl start flanneld

(2)停止服务:

执行命令:systemctl stop flanneld

(3)查看服务状态:

执行命令:systemctl status flanneld

(4)服务开机自启:

执行命令:systemctl enable flanneld

(5)关闭服务开机自启:

执行命令:systemctl disable flanneld

5、配置docker连接flannel:

说明:一下操作步骤只是让单独的docker容器连接上flannel网络,这样docker构建的容器分配的IP就是在flannel网络上了,这样跨服务器的docker容器之间的IP就可以ping通了。

如果是在搭建k8s集群中,那么按照对应的k8s集群中配置docker连接flannel即可,不要按照下面的操作了就。

(1)修改docker服务配置文件:

修改docker服务文件:/usr/lib/systemd/system/docker.service,增加环境变量文件的引用:EnvironmentFile=/run/flannel/subnet.env,并在ExecStart的值后追加参数:--bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU}

容器编排——安装flannel与配置

说明:因为/run/flannel/subnet.env文件中存储了当前服务器上安装的flannel的网络信息,在docker服务脚本中引入该文件作为环境变量文件,并在启动docker的命令行中指定flannel网络相关参数,表示docker使用的网络是flannel配置的网络段,这样就可以实现不同服务器之间的docker容器网络可ping通了。

(2)重新加载系统服务脚本:

执行命令:systemctl daemon-reload

(3)重启docker服务:

执行命令:systemctl restart docker.service

上一篇:K8S集群架构的单节点二进制部署(梦里小镇落雨,开花,起风,挂霜,甚至扬起烤红薯的香气,每个墙角都能够听见人们的说笑声。)


下一篇:斗鱼直播云原生实践之注册中心篇