所有节点都要部署Flannel网络,在所有节点操作。

1.为Flannel生成证书

[root@k8s-master ssl]# pwd
/usr/local/src/ssl[root@k8s-master ssl]# vim flanneld-csr.json
{"CN": "flanneld","hosts": [],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","ST": "BeiJing","L": "BeiJing","O": "k8s","OU": "System"}]
}

2.生成证书

[root@k8s-master ssl]# cfssl gencert -ca=/opt/kubernetes/ssl/ca.pem \
>    -ca-key=/opt/kubernetes/ssl/ca-key.pem \
>    -config=/opt/kubernetes/ssl/ca-config.json \
>    -profile=kubernetes flanneld-csr.json | cfssljson -bare flanneld

3.分发证书

[root@k8s-master ssl]# cp flanneld*.pem /opt/kubernetes/ssl/
[root@k8s-master ssl]# scp flanneld*.pem 10.0.3.226:/opt/kubernetes/ssl/
[root@k8s-master ssl]# scp flanneld*.pem 10.0.3.227:/opt/kubernetes/ssl/

4.下载Flannel软件包

[root@k8s-master ssl]# cd /usr/local/src
[root@k8s-master src]# tar zxf flannel-v0.10.0-linux-amd64.tar.gz
[root@k8s-master src]# cp flanneld mk-docker-opts.sh /opt/kubernetes/bin/#复制到Node节点
[root@k8s-master src]# scp flanneld mk-docker-opts.sh 10.0.3.226:/opt/kubernetes/bin/
[root@k8s-master src]# scp flanneld mk-docker-opts.sh 10.0.3.227:/opt/kubernetes/bin/         

 #复制对应脚本到/opt/kubernetes/bin下
[root@k8s-master src]# cd /usr/local/src/kubernetes/cluster/centos/node/bin/
[root@k8s-master bin]# cp remove-docker0.sh /opt/kubernetes/bin/
[root@k8s-master bin]# scp remove-docker0.sh 192.168.56.12:/opt/kubernetes/bin/
^C[root@k8s-master bin]# scp remove-docker0.sh 10.0.3.226:/opt/kubernetes/bin/
[root@k8s-master bin]# scp remove-docker0.sh 10.0.3.227:/opt/kubernetes/bin/下载地址:
# wget https://github.com/coreos/flannel/releases/download/v0.10.0/flannel-v0.10.0-linux-amd64.tar.gz

5.配置Flannel

[root@k8s-master bin]# vim /opt/kubernetes/cfg/flannel
FLANNEL_ETCD="-etcd-endpoints=https://10.0.3.225:2379,https://10.0.3.226:2379,https://10.0.3.227:2379"
FLANNEL_ETCD_KEY="-etcd-prefix=/kubernetes/network"
FLANNEL_ETCD_CAFILE="--etcd-cafile=/opt/kubernetes/ssl/ca.pem"
FLANNEL_ETCD_CERTFILE="--etcd-certfile=/opt/kubernetes/ssl/flanneld.pem"
FLANNEL_ETCD_KEYFILE="--etcd-keyfile=/opt/kubernetes/ssl/flanneld-key.pem"

复制配置到其它节点上
[root@linux-node1 ~]# scp /opt/kubernetes/cfg/flannel 10.0.3.226:/opt/kubernetes/cfg/
[root@linux-node1 ~]# scp /opt/kubernetes/cfg/flannel 10.0.3.227:/opt/kubernetes/cfg/

6.设置Flannel系统服务

[root@linux-node1 ~]# vim /usr/lib/systemd/system/flannel.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
Before=docker.service[Service]
EnvironmentFile=-/opt/kubernetes/cfg/flannel
ExecStartPre=/opt/kubernetes/bin/remove-docker0.sh
ExecStart=/opt/kubernetes/bin/flanneld ${FLANNEL_ETCD} ${FLANNEL_ETCD_KEY} ${FLANNEL_ETCD_CAFILE} ${FLANNEL_ETCD_CERTFILE} ${FLANNEL_ETCD_KEYFILE}
ExecStartPost=/opt/kubernetes/bin/mk-docker-opts.sh -d /run/flannel/dockerType=notify[Install]
WantedBy=multi-user.target
RequiredBy=docker.service
复制系统服务脚本到其它节点上
# scp /usr/lib/systemd/system/flannel.service 10.0.3.226:/usr/lib/systemd/system/
# scp /usr/lib/systemd/system/flannel.service 10.0.3.227:/usr/lib/systemd/system/

Flannel CNI集成

1.下载CNI插件

下载地址:https://github.com/containernetworking/plugins/releases
wget https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz

[root@linux-node1 ~]# mkdir /opt/kubernetes/bin/cni
[root@linux-node1 src]# tar zxf cni-plugins-amd64-v0.7.1.tgz -C /opt/kubernetes/bin/cni
# scp -r /opt/kubernetes/bin/cni/* 10.0.3.226:/opt/kubernetes/bin/cni/
# scp -r /opt/kubernetes/bin/cni/* 10.0.3.227:/opt/kubernetes/bin/cni/

2.创建Etcd的key

/opt/kubernetes/bin/etcdctl --ca-file /opt/kubernetes/ssl/ca.pem --cert-file /opt/kubernetes/ssl/flanneld.pem --key-file /opt/kubernetes/ssl/flanneld-key.pem \--no-sync -C https://10.0.3.225:2379,https://10.0.3.226:2379,https://10.0.3.227:2379 \
mk /kubernetes/network/config '{ "Network": "10.2.0.0/16", "Backend": { "Type": "vxlan", "VNI": 1 }}' >/dev/null 2>&1

3.启动flannel

[root@k8s-master src]# systemctl daemon-reload
[root@k8s-master src]# systemctl enable flannel
[root@k8s-master src]# chmod +x /opt/kubernetes/bin/*
[root@k8s-master src]# systemctl start flannel

4.查看服务状态

[root@k8s-master src]# systemctl status flannel

配置Docker使用Flannel

[root@k8s-mastrt ~]# vim /usr/lib/systemd/system/docker.service
[Unit] #在Unit下面修改After和增加Requires
After=network-online.target firewalld.service flannel.service
Wants=network-online.target
Requires=flannel.service[Service] #增加EnvironmentFile=-/run/flannel/docker
Type=notify
EnvironmentFile=-/run/flannel/docker
ExecStart=/usr/bin/dockerd $DOCKER_OPTS

将配置复制到另外两个节点

# scp /usr/lib/systemd/system/docker.service 10.0.3.226:/usr/lib/systemd/system/
# scp /usr/lib/systemd/system/docker.service 10.0.3.227:/usr/lib/systemd/system/

重启Docker

[root@k8s-master ~]# systemctl daemon-reload
[root@k8s-master ~]# systemctl restart docker

执行ifconfig可以看到docker容器 和 Flannel在一个网段。

转载于:https://www.cnblogs.com/root0/p/9959569.html

K8s集群部署(四)------ Flannel网络部署相关推荐

  1. k8s集群监控cadvisor+prometheus+grafana部署

    目录 1.新建命名空间monitor 2.部署 2.1部署cadvisor 2.2部署node_exporter 2.3部署prometheus 2.4部署rbac权限 2.5.部署 metrics ...

  2. openstack vlan配置_为OpenStack和K8s集群提供无缝虚拟网络

    在数据中心里,同时拥有OpenStack和Kubernetes集群的情况正变得越来越普遍. 一边是由OpenStack管理的虚拟机,另一边是由K8s控制的容器化工作负载.现实情况下,可能会发生虚拟机和 ...

  3. 搭建K8s集群(kubeadm方式)-部署node节点和集群测试

    部署CNI网络插件 上面的状态还是NotReady,下面我们需要网络插件,来进行联网访问 # 下载网络插件配置 wget https://raw.githubusercontent.com/coreo ...

  4. K8S章节2 — k8s集群中通过rook方式部署ceph

    1.k8s部署 参考:kubernetes简介及单master集群搭建. 部署完成后如下: hostname IPADDR k8s-master 192.168.1.11 k8s-node01 192 ...

  5. 搭建K8s集群(kubeadm方式)-部署master节点

    安装Docker/kubeadm/kubelet 所有节点安装Docker/kubeadm/kubelet ,Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker 安装D ...

  6. 搭建K8s集群(平台规划和部署方式介绍)

    服务器硬件配置要求 测试环境 master:2核 4G 20G node: 4核 8G 40G 生产环境 master:8核 16G 100G node: 16核 64G 200G 目前生产部署Kub ...

  7. Docker+K8S 集群环境搭建及分布式应用部署

    互联网正在飞速发展,早已由最初的单体架构演变为如今的分布式架构,而分布式架构也为系统运维带来了挑战.架构在发展,系统运维技术也在不断升级.而伴随着系统运维的是如今炒的火热的容器技术,Docker 就是 ...

  8. k8s 集群之使用 nfs 网络存储挂载外部目录和文件

    如果使用 k8s 部署 mysql.redis.minio等数据和文件存储服务,k8s 默认容器如果重建,则容器中的数据文件将会丢失,所以为了解决这些问题,通常就需要将容器中需要持久化的文件存储到其它 ...

  9. 搭建K8S集群之node节点部署

    在上一篇文章中,我们完成了K8S系列之K8S集群之Master节点部署,在这篇文章中,我们将开始部署Node节点相关的组件.在node节点上,需要部署kubelet和kube-proxy两个K8S组件 ...

  10. 阿里云-ECS云服务器跨地域部署k8s集群

    阿里云-ECS云服务器跨地域部署k8s集群 一 .背景介绍 二.环境准备 2.1 ECS云服务资源清单 2.2 K8s软件列表 三.阿里云ECS服务器网络问题 3.1 问题阐述 3.2 解决方案 四. ...

最新文章

  1. 同时上哈佛,还一起一作发Nature!这对95后学霸情侣让人慕了……
  2. NEC中标里斯本智慧城市项目 助力城市整体数字化变革
  3. 监测你的SQL SERVER--让瓶颈暴露
  4. 解决cmd命令查看python版本“python不是内部命令或外部命令,也不是可执行程序解决方案”的问题
  5. 模拟浏览器自动化测试工具Selenium之三页面窗口切换开发篇
  6. python将文本中的数据处理成图像(matplotlib)
  7. POJ-2407 欧拉函数
  8. 程序员书籍哪里找?有这个GitHub项目就够了
  9. oracle的pl sql教程,Oracle PL SQL从入门到精通_IT教程网
  10. java毕向东学习笔记——day09
  11. wps怎么下载仿宋gb2312_仿宋|如何下载仿宋gb2312字体_wps仿宋gb2312字体下载方法_234游戏网...
  12. swarm主网BZZ挖矿:钱包如何添加BZZ合约?如何查钱包余额?
  13. 微信开发工具(小程序)
  14. 漂亮特殊字体可复制_特殊字体生成器 漂亮特殊字体可复制
  15. macOS安装MySQL,使用Navicat连接MySQL数据库/2022
  16. CodeForces - 348A Mafia (贪心)
  17. 廖雪峰的官方网站Python教程练习题
  18. HTML:1分钟实现简单网站导航栏
  19. [pytorch]torch.roll函数
  20. sql 查询除某列之外的数据

热门文章

  1. linux日志文件优缺点,Linux日志文件总结
  2. 帮你快速拿Offer!java基础入门课后答案第二版
  3. 第 17 章 命令模式
  4. php后端接收数据,后端如何接收fetch方式发送的数据?
  5. android 自定义权限弹窗_Android-开源通用弹窗的封装CommonPopupWindow(总得向别人学点什么)...
  6. 云服务器磁盘挂载_云服务器快照是备份的吗?
  7. 三元一次方程组步骤_人教版数学七年级下册8.4三元一次方程组的解法精讲
  8. android select下拉列表_Python+selenium自动化之下拉列表操作(一)
  9. java jsch shell_如何在字符串中获取jsch shell命令输出
  10. 低压抽屉柜常见故障处理方法_传真机常见故障如何处理 传真机常见故障处理方法【详解】...