当前位置: 首页 > news >正文

Flannel网络组件部署

在部署K8S之前,需要在集群服务器上部署CNI容器网络组件,从而实现集群的网络互联互通。目前可选的组件比较多,例如flannel、calico、weave等,各容器网络组件对比可参考文档:http://dockone.io/article/2599

本文介绍flannel网络组件的部署,配置环境在完成前文etcd集群和tls认证配置后。
一、生成flannel证书文件

# mkdir flanneld
# cd flanneld
# cat flanneld-csr.json 
{
  "CN": "flanneld",
  "hosts": [],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "ST": "FuZhou",
      "L": "FuZhou",
      "O": "k8s",
      "OU": "System"
    }
  ]
}

# cfssl gencert -ca=/etc/ssl/etcd/ca.pem  \
 -ca-key=/etc/ssl/etcd/ca-key.pem   \
-config=/etc/ssl/etcd/ca-config.json  \
 -profile=kubernetes flanneld-csr.json | cfssljson -bare flanneld

# mkdir /etc/ssl/flanneld
# cp *.pem /etc/ssl/flanneld/

二、向etcd注册flannel相关信息并验证(执行一次即可)

# cat env.sh   
#!/usr/bin/bash
export CLUSTER_CIDR="172.30.0.0/16"
export ETCD_ENDPOINTS="https://192.168.115.5:2379,https://192.168.115.6:2379,https://192.168.115.7:2379"
export FLANNEL_ETCD_PREFIX="/kubernetes/network"
# source  env.sh

# etcdctl \
  --endpoints=${ETCD_ENDPOINTS} \
  --ca-file=/etc/ssl/etcd/ca.pem \
  --cert-file=/etc/ssl/flanneld/flanneld.pem \
  --key-file=/etc/ssl/flanneld/flanneld-key.pem \
  set ${FLANNEL_ETCD_PREFIX}/config '{"Network":"'${CLUSTER_CIDR}'", "SubnetLen": 24, "Backend": {"Type": "vxlan"}}'

# etcdctl \
   --endpoints=${ETCD_ENDPOINTS} \
   --ca-file=/etc/ssl/etcd/ca.pem \
   --cert-file=/etc/ssl/flanneld/flanneld.pem \
   --key-file=/etc/ssl/flanneld/flanneld-key.pem \
 get ${FLANNEL_ETCD_PREFIX}/config

Flannel网络组件部署
三、下载部署flannel

# cd /usr/local/src/
# wget  \
https://github.com/coreos/flannel/releases/download/v0.10.0/flannel-v0.10.0-linux-amd64.tar.gz

# tar -zxvpf flannel-v0.10.0-linux-amd64.tar.gz 
# cp {flanneld,mk-docker-opts.sh}  /usr/local/bin/ 

# cat /usr/lib/systemd/system/flanneld.service 
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
After=etcd.service
Before=docker.service

[Service]
Type=notify
ExecStart=/usr/local/bin/flanneld \
  -etcd-cafile=/etc/ssl/etcd/ca.pem \
  -etcd-certfile=/etc/ssl/flanneld/flanneld.pem \
  -etcd-keyfile=/etc/ssl/flanneld/flanneld-key.pem \
  -etcd-endpoints=https://192.168.115.5:2379,https://192.168.115.6:2379,https://192.168.115.7:2379 \
  -etcd-prefix=/kubernetes/network
ExecStartPost=/usr/local/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
Restart=on-failure

[Install]
WantedBy=multi-user.target
RequiredBy=docker.service

# systemctl daemon-reload
# systemctl start flanneld 
# systemctl status flanneld -l

Flannel网络组件部署
将flannel二进制程序文件和证书文件复制到vm2和vm3

# cd /usr/lib/systemd/system/
# scp flanneld.service  vm2:$(pwd)
# scp flanneld.service  vm3:$(pwd)

# scp -rp /etc/ssl/flanneld/ vm2:/etc/ssl/
# scp -rp /etc/ssl/flanneld/ vm3:/etc/ssl/
# scp -rp /usr/local/bin/flanneld  /usr/local/bin/mk-docker-opts.sh  vm2:/usr/local/bin/
# scp -rp /usr/local/bin/flanneld  /usr/local/bin/mk-docker-opts.sh  vm3:/usr/local/bin/

四、验证

# ifconfig flannel.1 && ssh vm2 ifconfig flannel.1  && ssh vm3 ifconfig flannel.1 

Flannel网络组件部署

# etcdctl \
   --endpoints=${ETCD_ENDPOINTS} \
   --ca-file=/etc/ssl/etcd/ca.pem \
   --cert-file=/etc/ssl/flanneld/flanneld.pem \
   --key-file=/etc/ssl/flanneld/flanneld-key.pem \
 ls ${FLANNEL_ETCD_PREFIX}/subnets

Flannel网络组件部署

相关文章:

  • EXCEL应用技巧:如何在每行下插入一个空行
  • docker 关闭镜像后,容器无法启动---Conflict. The container nam
  • 【翻译】Nova国际化
  • stm 常用头文件
  • mysql中去重复记录
  • 开源母语编程 说明 (持续更新)
  • 你不懂js系列学习笔记-作用域和闭包- 03
  • Mac 平台下功能强大的Shimo软件使用指南
  • 初学redis分页缓存方法实现
  • Redis 安装及配置
  • chroot 命令小记
  • Bugzilla安装问题总结-神奇
  • js 原型链(转)
  • 理解PHP中会话控制
  • LAMP架构应用实战—Apache服务介绍与安装01
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • es6--symbol
  • EventListener原理
  • IOS评论框不贴底(ios12新bug)
  • java小心机(3)| 浅析finalize()
  • React-生命周期杂记
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Web设计流程优化:网页效果图设计新思路
  • 规范化安全开发 KOA 手脚架
  • 区块链分支循环
  • 事件委托的小应用
  • 数组的操作
  • 听说你叫Java(二)–Servlet请求
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​插件化DPI在商用WIFI中的价值
  • #考研#计算机文化知识1(局域网及网络互联)
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (2)Java 简介
  • (2)nginx 安装、启停
  • (笔试题)分解质因式
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • ./和../以及/和~之间的区别
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET轻量级ORM组件Dapper葵花宝典
  • @requestBody写与不写的情况
  • [ JavaScript ] JSON方法
  • [20170728]oracle保留字.txt
  • [asp.net core]project.json(2)
  • [Assignment] C++1
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [C#]winform部署PaddleOCRV3推理模型
  • [C#]使用PaddleInference图片旋转四种角度检测
  • [DM复习]关联规则挖掘(下)
  • [HJ56 完全数计算]
  • [ICCV2017]Neural Person Search Machines