Kubernetes -- Flannel 集群

1. 下载包

wget https://github.com/coreos/flannel/releases/download/v0.11.0/flannel-v0.11.0-linux-amd64.tar.gz

2. 把解压出来的可执行文件放到 /opt/k8s/bin 下

3. 创建 /opt/k8s/cfg/flanneld.conf 文件,内容如下:

FLANNEL_OPTIONS="--etcd-endpoints=https://192.168.137.81:2379,https://192.168.137.82:2379,https://192.168.137.83:2379 -etcd-cafile=/opt/k8s/ssl/ca.pem -etcd-certfile=/opt/k8s/ssl/server.pem -etcd-keyfile=/opt/k8s/ssl/server-key.pem"

4. 创建 /usr/lib/systemd/system/flanneld.service, 内容如下:

[Unit]
Descrition=Flanneld overlay address etcd agent
After=network-online.target network.target
Before=docker.service

[Service]
Type=notify
EnvironmentFile=/opt/k8s/cfg/flanneld.conf
ExecStart=/opt/k8s/bin/flanneld --ip-masq $FLANNEL_OPTIONS
ExecStartPost=/opt/k8s/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/subnet.env
Restart=on-failure

[Install]
WantedBy=multi-user.target

5. 运行

../bin/etcdctl --ca-file=ca.pem --cert-file=server.pem \
--key-file=server-key.pem \
--endpoints="https://192.168.137.81:2379,https://192.168.137.82:2379,https://192.168.137.83:2379" \
set /coreos.com/network/config '{"Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'

6. 启动 flannel

systemctl start flanneld

7. 查看网络配置:  ifconfig   可以看到 docker 和 flannel 不在同一个网段

8. 查看生成的文件:  cat /run/flannel/subnet.env

 

9. 修改 /usr/lib/systemd/system/docker.service (安装 docker 后会有此文件,需要改两处地方)

 

 10. 执行下面的命令

systemctl daemon-reload
systemctl restart docker

11. 再查看网络的话,会看到  docker 和 flannel 在同一个网段了

12. 在另外一台机器上做以上相同的操作后,其网络如下:

13. 我们在这台机器上就可以 ping 通另外那台机器上的 docker 的网关了:

猜你喜欢

转载自www.cnblogs.com/langfanyun/p/10526822.html