007.Kubernetes二进制部署Flannel
一 部署flannel
1.1 安装flannel
1 [root@k8smaster01 ~]# cd /opt/k8s/work/
2 [root@k8smaster01 work]# mkdir flannel
3 [root@k8smaster01 work]# wget https://github.com/coreos/flannel/releases/download/v0.11.0/flannel-v0.11.0-linux-amd64.tar.gz
4 [root@k8smaster01 work]# tar -xzvf flannel-v0.11.0-linux-amd64.tar.gz -C flannel
1.2 分发flannel
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]}
4 do
5 echo ">>> ${master_ip}"
6 scp flannel/{flanneld,mk-docker-opts.sh} root@${master_ip}:/opt/k8s/bin/
7 ssh root@${master_ip} "chmod +x /opt/k8s/bin/*"
8 done
1.3 创建flannel证书和密钥
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# cat > flanneld-csr.json <<EOF
3 {
4 "CN": "flanneld",
5 "hosts": [],
6 "key": {
7 "algo": "rsa",
8 "size": 2048
9 },
10 "names": [
11 {
12 "C": "CN",
13 "ST": "Shanghai",
14 "L": "Shanghai",
15 "O": "k8s",
16 "OU": "System"
17 }
18 ]
19 }
20 EOF
21 #创建flanneld的CA证书请求文件
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# cfssl gencert -ca=/opt/k8s/work/ca.pem \
3 -ca-key=/opt/k8s/work/ca-key.pem -config=/opt/k8s/work/ca-config.json \
4 -profile=kubernetes flanneld-csr.json | cfssljson -bare flanneld #生成CA密钥(ca-key.pem)和证书(ca.pem)
1.4 分发证书和私钥
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]}
4 do
5 echo ">>> ${master_ip}"
6 ssh root@${master_ip} "mkdir -p /etc/flanneld/cert"
7 scp flanneld*.pem root@${master_ip}:/etc/flanneld/cert
8 done
1.5 写入集群 Pod 网段信息
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# etcdctl \
4 --endpoints=${ETCD_ENDPOINTS} \
5 --ca-file=/opt/k8s/work/ca.pem \
6 --cert-file=/opt/k8s/work/flanneld.pem \
7 --key-file=/opt/k8s/work/flanneld-key.pem \
8 mk ${FLANNEL_ETCD_PREFIX}/config '{"Network":"'${CLUSTER_CIDR}'", "SubnetLen": 21, "Backend": {"Type": "vxlan"}}'
1.6 创建flanneld的systemd
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# cat > flanneld.service << EOF
4 [Unit]
5 Description=Flanneld overlay address etcd agent
6 After=network.target
7 After=network-online.target
8 Wants=network-online.target
9 After=etcd.service
10 Before=docker.service
11
12 [Service]
13 Type=notify
14 ExecStart=/opt/k8s/bin/flanneld \\
15 -etcd-cafile=/etc/kubernetes/cert/ca.pem \\
16 -etcd-certfile=/etc/flanneld/cert/flanneld.pem \\
17 -etcd-keyfile=/etc/flanneld/cert/flanneld-key.pem \\
18 -etcd-endpoints=${ETCD_ENDPOINTS} \\
19 -etcd-prefix=${FLANNEL_ETCD_PREFIX} \\
20 -iface=${IFACE} \\
21 -ip-masq
22 ExecStartPost=/opt/k8s/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
23 Restart=always
24 RestartSec=5
25 StartLimitInterval=0
26
27 [Install]
28 WantedBy=multi-user.target
29 RequiredBy=docker.service
30 EOF
1.7 分发flannel systemd
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]}
4 do
5 echo ">>> ${master_ip}"
6 scp flanneld.service root@${master_ip}:/etc/systemd/system/
7 done
二 启动并验证
2.1 启动flannel
1 [root@k8smaster01 ~]# source /opt/k8s/bin/environment.sh
2 [root@k8smaster01 ~]# for master_ip in ${MASTER_IPS[@]}
3 do
4 echo ">>> ${master_ip}"
5 ssh root@${master_ip} "systemctl daemon-reload && systemctl enable flanneld && systemctl restart flanneld"
6 done
2.2 检查flannel启动
1 [root@k8smaster01 ~]# source /opt/k8s/bin/environment.sh
2 [root@k8smaster01 ~]# for master_ip in ${MASTER_IPS[@]}
3 do
4 echo ">>> ${master_ip}"
5 ssh root@${master_ip} "systemctl status flanneld|grep Active"
6 done

2.3 检查pod网段信息
1 [root@k8smaster01 ~]# source /opt/k8s/bin/environment.sh
2 [root@k8smaster01 ~]# etcdctl \
3 --endpoints=${ETCD_ENDPOINTS} \
4 --ca-file=/etc/kubernetes/cert/ca.pem \
5 --cert-file=/etc/flanneld/cert/flanneld.pem \
6 --key-file=/etc/flanneld/cert/flanneld-key.pem \
7 get ${FLANNEL_ETCD_PREFIX}/config #查看集群 Pod 网段(/16)

1 [root@k8smaster01 ~]# source /opt/k8s/bin/environment.sh
2 [root@k8smaster01 ~]# etcdctl \
3 --endpoints=${ETCD_ENDPOINTS} \
4 --ca-file=/etc/kubernetes/cert/ca.pem \
5 --cert-file=/etc/flanneld/cert/flanneld.pem \
6 --key-file=/etc/flanneld/cert/flanneld-key.pem \
7 ls ${FLANNEL_ETCD_PREFIX}/subnets #查看已分配的 Pod 子网段列表(/24)
8 [root@k8smaster01 ~]# source /opt/k8s/bin/environment.sh
9 [root@k8smaster01 ~]# etcdctl \
10 --endpoints=${ETCD_ENDPOINTS} \
11 --ca-file=/etc/kubernetes/cert/ca.pem \
12 --cert-file=/etc/flanneld/cert/flanneld.pem \
13 --key-file=/etc/flanneld/cert/flanneld-key.pem \
14 get ${FLANNEL_ETCD_PREFIX}/subnets/172.30.32.0-21 #查看某一 Pod 网段对应的节点 IP 和 flannel 接口地址

2.4 检查flannel网络信息
1 [root@k8smaster01 ~]# ip addr show

1 [root@k8smaster01 ~]# ip route show |grep flannel.1
2 172.30.128.0/21 via 172.30.128.0 dev flannel.1 onlink
3 172.30.208.0/21 via 172.30.208.0 dev flannel.1 onlink
2.5 验证各节点flannel
1 [root@k8smaster01 ~]# source /opt/k8s/bin/environment.sh
2 [root@k8smaster01 ~]# for master_ip in ${MASTER_IPS[@]}
3 do
4 echo ">>> ${master_ip}"
5 ssh ${master_ip} "/usr/sbin/ip addr show flannel.1|grep -w inet"
6 done
1 >>> 172.24.8.71
2 inet 172.30.32.0/32 scope global flannel.1
3 >>> 172.24.8.72
4 inet 172.30.128.0/32 scope global flannel.1
5 >>> 172.24.8.73
6 inet 172.30.208.0/32 scope global flannel.1
1 [root@k8smaster01 ~]# source /opt/k8s/bin/environment.sh
2 [root@k8smaster01 ~]# for master_ip in ${MASTER_IPS[@]}
3 do
4 echo ">>> ${master_ip}"
5 ssh ${master_ip} "ping -c 1 172.30.32.0"
6 ssh ${master_ip} "ping -c 1 172.30.128.0"
7 ssh ${master_ip} "ping -c 1 172.30.208.0"
8 done

007.Kubernetes二进制部署Flannel的更多相关文章
- Kubernetes 二进制部署(一)单节点部署(Master 与 Node 同一机器)
0. 前言 最近受“新冠肺炎”疫情影响,在家等着,入职暂时延后,在家里办公和学习 尝试通过源码编译二进制的方式在单一节点(Master 与 Node 部署在同一个机器上)上部署一个 k8s 环境,整理 ...
- 012.Kubernetes二进制部署worker节点Flannel
一 部署flannel 1.1 安装flannel kubernetes 要求集群内各节点(包括 master 节点)能通过 Pod 网段互联互通.flannel 使用 vxlan 技术为各节点创建一 ...
- Kubernetes 二进制部署(二)集群部署(多 Master 节点通过 Nginx 负载均衡)
0. 前言 紧接上一篇,本篇文章我们尝试学习多节点部署 kubernetes 集群 并通过 haproxy+keepalived 实现 Master 节点的负载均衡 1. 实验环境 实验环境主要为 5 ...
- kubernetes二进制部署k8s-master集群controller-manager服务unhealthy问题
一.问题现象 我们使用二进制部署k8s的高可用集群时,在部署多master时,kube-controller-manager服务提示Unhealthy [root@ceph-01 system]# k ...
- k8s1.13.0二进制部署-flannel网络(二)
Flannel容器集群网络部署 Overlay Network:覆盖网络,在基础网络上叠加的一种虚拟网络技术模式,该网络中的主机通过虚拟链路连接起来.VXLAN:将源数据包封装到UDP中,并使用基础网 ...
- 003.Kubernetes二进制部署准备
一 前置准备 1.1 前置条件 相应的充足资源的Linux服务器: 设置相应的主机名,参考命令: hostnamectl set-hostname k8smaster Mac及UUID唯一: 若未关闭 ...
- 008.Kubernetes二进制部署Nginx实现高可用
一 Nginx代理实现kube-apiserver高可用 1.1 Nginx实现高可用 基于 nginx 代理的 kube-apiserver 高可用方案. 控制节点的 kube-controller ...
- 013.Kubernetes二进制部署worker节点Nginx实现高可用
一 Nginx代理实现kube-apiserver高可用 1.1 Nginx实现高可用 基于 nginx 代理的 kube-apiserver 高可用方案. 控制节点的 kube-controller ...
- 015.Kubernetes二进制部署所有节点kubelet
一 部署 kubelet kubelet 运行在每个 worker 节点上,接收 kube-apiserver 发送的请求,管理 Pod 容器,执行交互式命令,如 exec.run.logs 等. k ...
随机推荐
- 引入flask_cache时出现ModuleNotFoundError: No module named 'flask.ext'
环境: centos 7.3 python 3.6 flask 1.0.2 flask-cache 0.13.1 引入flask_cache后运行时,出现以下错误 Traceback (most re ...
- 微信小程序前端页面书写
微信小程序前端页面书写 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 一.数据绑定 1. 普通写法 <view ...
- python selenium之CSS定位
ccs的优点:css相对xpath语法比xpath简洁,定位速度比xpath快 css的缺点:css不支持用逻辑运算符来定位,而xpath支持.css定位语法形式多样,相对xpath比较难记. css ...
- 渗透测试=基于白名单执行payload--Ftp
还是自己动手复现亮神课程的过程. 环境 靶机win7 攻击机 kali Ftp.exe简介: Ftp.exe是Windows本身自带的一个程序,属于微软TP工具,提供基本的FTP访问 说明:Ftp.e ...
- 自学maya三月,为啥还是95%都还不会,那是因为你不懂这几个技巧
有一些学员经常会有这种疑问,为什么学习MAYA软件这么难,为什么自己怎么学都学不会? 结果调查,发现了下面几个问题. 游戏建模 第一: 走弯路 很多人一开始学习Maya的时候肯定第一步是安装软件,但是 ...
- Cocos2d-x 学习笔记(15.4) EventDispatcher 事件分发具体逻辑 dispatchEventToListeners函数
dispatchEvent(Event* event)方法在对事件对应的监听器进行重新排序后,进行事件分发操作.具体操作由dispatchEventToListeners方法执行. 该方法声明: vo ...
- C++ Qt基础知识
时间如流水,只能流去不流回. 学历代表你的过去,能力代表你的现在,学习能力代表你的将来. 学无止境,精益求精. 记录C++ Qt的基础知识学习记录 <C++ Qt设计模式(第二版)>
- scp -本地文件上传服务器,指定端口
scp 命令可以将本地文件上传服务器,或者将服务器上的文件下载到本地, 1. 上传服务器: scp [本地文件目录] [服务器用户名]@[服务器名]:/[服务器上文件路径] 比如 scp /Doc ...
- unity 基于scrollRect实现翻页显示
unity 基于scrollRect实现翻页显示,并定为到某一页,而不是某一页的中间方法(第二个脚本采用实际位置计算,并在update里实现平滑过渡): 组场景时,经常需要获取鼠标(或者点击)开始结束 ...
- 腾讯云上面部署PHP运行环境
现在云服务器已经很普及了,其价格.安全优势等成为不少开发者的首选.本人由于兴趣爱好,从朋友那边借了一个过来玩了两天,下面就分享整个部署流程吧. 1. 先到腾讯云官网购买服务器,这边就不演示.很简单,跟 ...