二进制部署Flannel网络

一步一脚印

二进制部署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网络

扫描二维码关注公众号,回复: 12386650 查看本文章

8.检查flannel是否配置成功

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

参考学习:https://blog.csdn.net/zhenliang8

猜你喜欢

转载自blog.csdn.net/qq_37640410/article/details/108989900