Kubernetes 企业级Flannel搭建 超级详细(三)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_34125999/article/details/100643568

1、环境准备

1.1、环境准备(三台)

192.168.1.38 3G node1  Master docker etcd   
192.168.1.39 2G node2  Node   docker etcd
192.168.1.40 2G node3  Node   docker etcd

1.2、修改主机名(三台)

hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
#三台
vim /etc/hosts
192.168.1.38 node1
192.168.1.39 node2
192.168.1.40 node3
#三台 重启服务,保证三台机器都能ping通
service network restart

2、Flannel

pod之间的通信

2.1、写入分配的子网段到etcd,供flanneld使用(主节点)

#进入目录
cd /opt/etcd/ssl
#执行命令
/opt/etcd/bin/etcdctl \
--ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem \
--endpoints="https://192.168.1.38:2379,https://192.168.1.39:2379,https://192.168.1.40:2379" \
set /coreos.com/network/config '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'
#验证命令
/opt/etcd/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://192.168.1.38:2379,https://192.168.1.39:2379,https://192.168.1.40:2379" get /coreos.com/network/config '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'

2.2、上传Flannel  解压 (从节点)

mkdir -p /opt/flannel
cd /opt/flannel
tar -zxvf flannel-v0.11.0-linux-amd64.tar.gz

2.3、创建k8s目录

#两台
mkdir -p  /opt/kubernetes/{cfg,bin,ssl}
#移动
mv mk-docker-opts.sh flanneld  /opt/kubernetes/bin/

2.4、创建脚本

vim flannel.sh

#!/bin/bash
ETCD_ENDPOINTS=${1:-"http://127.0.0.1:2379"}

cat <<EOF >/opt/kubernetes/cfg/flanneld
FLANNEL_OPTIONS="--etcd-endpoints=${ETCD_ENDPOINTS} \
-etcd-cafile=/opt/etcd/ssl/ca.pem \
-etcd-certfile=/opt/etcd/ssl/server.pem \
-etcd-keyfile=/opt/etcd/ssl/server-key.pem"
EOF

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


systemctl daemon-reload
systemctl enable flanneld
systemctl restart flanneld

2.5、执行脚本

bash flannel.sh  https://192.168.1.38:2379,https://192.168.1.39:2379,https://192.168.1.40:2379
ps -ef | grep flannel
systemctl status flanneld

2.6、修改Docker配置文件

vim /usr/lib/systemd/system/docker.service

#加上两个配置文件
EnvironmentFile=/run/flannel/subnet.env
$DOCKER_NETWORK_OPTIONS
#重启docker
systemctl daemon-reload
systemctl restart docker
#查看网段,docker0和flannel要在一个网段
ifconfig

2.7、配置第二台从节点

#拷贝过去
scp -r  /opt/kubernetes/ root@node2:/opt/
scp -r  /opt/flannel/ root@node2:/opt/
#启动
bash flannel.sh  https://192.168.1.38:2379,https://192.168.1.39:2379,https://192.168.1.40:2379
systemctl status flanneld
#修改docker 
vim /usr/lib/systemd/system/docker.service
#加上两个配置文件
EnvironmentFile=/run/flannel/subnet.env
$DOCKER_NETWORK_OPTIONS
#重启docker
systemctl daemon-reload
systemctl restart docker
#查看网段,docker0和flannel要在一个网段
ifconfig

2.8、测试

node2 ping node3的docker0
node3 ping node2的docker0

猜你喜欢

转载自blog.csdn.net/qq_34125999/article/details/100643568