一步一脚印
二进制部署Flannel分为以下几个步骤
- 写入分配的子网到etcd中,供flannel使用
- 下载二进制包
- 部署与配置flannel(node节点)
- systemd管理Flannel
- 配置Docker使用的Flannel生成的子网
- 启动Flannel
1.节点IP
lnhMaster01 192.168.176.128
lnhNode01 192.168.176.135
lnhNode02 192.168.176.137
2.下载flannel二进制文件
wget https://github.com/coreos/flannel/releases/download/v0.12.0/flannel-v0.12.0-linux-amd64.tar.gz
解压后将两个可执行文件flanneld, mk-docker-opts.sh 复制到/opt/kubernetes/bin中
3.linMaster02节点将flannel网络配置存入etcd
/opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.176.128:2379,https://192.168.176.135:2379,https://192.168.176.137:2379" set /coreos.com/network/config '{"Network": "172.15.0.0/16", "Backend": {"Type": "vxlan"}}'
4.lnhNode01节点: 编辑flannel配置文件 /opt/kubernetes/cfg/flanneld
注意: lnhNode01和lnhNode00都有和lnhMaster01 /opt/etcd/ssl/目录下的证书文件
FLANNEL_OPTIONS="-etcd-cafile=/opt/etcd/ssl/ca.pem -etcd-certfile=/opt/etcd/ssl/server.pem -etcd-keyfile=/opt/etcd/ssl/server-key.pem "
5.lnhNode01节点: 编辑flannel.sh脚本生成flanned.service,并配置docker.service以使用flannel分配的网络
#!/bin/bash
cat <<EOF >/usr/lib/systemd/system/flanneld.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network-online.target network.target
Before=docker.service
[Service]
Type=notify
EnvironmentFile=/opt/kubernetes/cfg/flanneld
ExecStart=/opt/kubernetes/bin/flanneld --ip-masq $FLANNEL_OPTIONS
ExecStartPost=/opt/kubernetes/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/subnet.env
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
EnvironmentFile=/run/flannel/subnet.env
ExecStart=/usr/bin/dockerd \$DOCKER_NETWORK_OPTIONS
ExecReload=/bin/kill -s HUP \$MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable flanneld
systemctl restart flanneld
systemctl restart docker
6.lnhNode01节点:执行./flannel.sh,成功后会生成/run/flannel/subnet.env 文件记录了本机可分配的ip
7.lnhNode02执行同lnhNode01一样的操作,即可配置flannel网络
8.检查flannel是否配置成功
首先看flanneld.service服务是否正常启动
如果正常启动,执行route命令看是否有flannel路由信息
ifconfig 查看是否有flannel开头的桥接网卡信息
如果以上都正常,那么用node1的docker0和node2的docker0相互ping,是可以ping通的
充满鲜花的世界到底在哪里