二进制部署flannel

1.节点IP

master02 192.168.100.121
node1 192.168.100.122
node2 192.168.100.123

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.mastero2节点将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.100.121:2379,https://192.168.100.122:2379,https://192.168.100.123:2379" set /coreos.com/network/config '{"Network": "172.15.0.0/16", "Backend": {"Type": "vxlan"}}'

4.node1节点: 编辑flannel配置文件 /opt/kubernetes/cfg/flanneld

-iface参数需要指定网卡,一般就是本机ip,如不指定可能会出现flannel无法连通,route -n命令不显示flannel路由,甚至是分配的ip冲突

注意: node1和node2都有和master02 /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 -etcd-endpoints=https://196.168.100.121:2379,https://192.168.100.122:2379,https://192.168.100.123:2379 -iface=eth1"

5.node1节点: 编辑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.node1节点:执行./flannel.sh,成功后会生成/run/flannel/subnet.env 文件记录了本机可分配的ip

7.node2执行同node1一样的操作,即可配置flannel网络

8.检查flannel是否配置成功

1.首先看flanneld.service服务是否正常启动
2.如果正常启动,执行route命令看是否有flannel路由信息
3.ifconfig 查看是否有flannel开头的桥接网卡信息
4.如果以上都正常,那么用node1的docker0和node2的docker0相互ping,是可以ping通的

猜你喜欢

转载自www.cnblogs.com/limengchun/p/12543383.html