flannel网络组件部署(代码片段)

author author     2022-11-02     351

关键词:

在部署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

# 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二进制程序文件和证书文件复制到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 

技术分享图片

# 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

技术分享图片

kubernetes二进制部署——flannel网络(代码片段)

Kubernetes二进制部署——Flannel网络一、Flannel简介二、Flannel原理三、Flannel的作用四、Flannel网络配置1.node节点安装docker2.master配置1、写入分配的子网段到ETCD中,供flannel使用(master主机)3、node节点操作1、上传flannel软件包到... 查看详情

k8s单master部署二:flannel网络部署(代码片段)

以下所有操作均在node节点进行Flannel网络概述Flannel通过给每台宿主机分配一个子网的方式为容器提供虚拟网络,它基于LinuxTUN/TAP,使用UDP/VXLAN封装IP包来创建overlay网络,并借助etcd(也支持kubernetes)维护网络的分配情况。服务器角... 查看详情

kubadm方式安装k8s----flannel网络插件(代码片段)

一:本章目录Kubernetes介绍所需组件功能介绍环境规划与说明部署流程小结二:Kubernetes介绍1·概述:kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kuber... 查看详情

kubernetes二进制部署——flannel网络(代码片段)

Kubernetes二进制部署——Flannel网络一、Flannel简介二、Flannel原理三、Flannel的作用四、Flannel网络配置1.node节点安装docker2.master配置1、写入分配的子网段到ETCD中,供flannel使用(master主机)3、node节点操作1、上传flannel软件包到... 查看详情

kubernetes二进制部署——flannel网络(代码片段)

Kubernetes二进制部署——Flannel网络一、Flannel简介二、Flannel原理三、Flannel的作用四、Flannel网络配置1.node节点安装docker2.master配置1、写入分配的子网段到ETCD中,供flannel使用(master主机)3、node节点操作1、上传flannel软件包到... 查看详情

dockerflannel网络部署和路由走向分析(代码片段)

1.flannel介绍flannel是coreos开发的容器网络解决方案。flannel为每个host分配一个subnet,容器从此subnet中分配ip。这些ip可以在host间路由,容器间无需nat和portmapping就可以跨主机通讯。每个subnet都是从一个更大的ip池中划分的,flannel会... 查看详情

运维实战容器部分kubernetes集群部署(代码片段)

...实践ClusterIP方式创建ServiceMatalLBIngressK8S网络通信使用场景Flannelvxlan模式跨主机通信原理Flannel网络Flannel网络原理Flannel支持的后端配置FlannelCalico网络插件入门简介网络架构Calico网络插件Calico网络策略实验限制访问指定服务允许指... 查看详情

kubernetes二进制部署(单master节点)(理论部分,详细部署步骤在下一篇哦~)(代码片段)

...流程5、使用证书访问的工作流程:四、部署docker引擎五、flannel网络配置1、K8S中Pod网络通信:2、Flannel3、Flannel工作原理:4、搭建flannel5、flannel的操作流程一、部署master组件二、部署node组件三、搭建流程master搭建流程node搭建流程k8s... 查看详情

二进制部署k8s单节点(代码片段)

...群状态二、Node部署docker1.所有node部署docker2.镜像加速三、Flannel容器集群网络部署1.写入分配的子网段到etcd中,供flanel使用2.拷贝flannel包到node节点3.配置文件和启动脚本4.启动flannel5.配置docker连接flannel6.重启docker7.查看flannel网... 查看详情

第三篇(二进制部署k8s集群---flannel网络和keepalived+haproxy高可用)(代码片段)

此文将搭建flannel网络,目的使跨主机的docker能够互相通信,也是保障kubernetes集群的网络基础和保障,和ha高可用。部署的服务器为:master1192.168.206.31master2192.168.206.32master3192.168.206.33node1192.168.206.41node2192.168.206.42node3192.168.206.43VIP... 查看详情

kubernetes集群之二进制安装部署(单master节点)(代码片段)

...验证etcd集群状态四、在所有Node节点上部署Docker引擎五、Flannel网络配置5.1不同Node上Pod之间的通信?5.2通信方式之:OverlayNetwork与VXLAN5.3Flannel介绍5.4Flannel的工作流程5.5ETCD之Flannel提供说明5.6Flannel配置配置步骤5.6.1在Master01节... 查看详情

kubernetes节点服务搭建————二进制部署|单master节点配置(一)(etcd和flannel)(代码片段)

...集群master01上操作部署在node节点上修改配置部署Docker引擎flannel网络配置常见的通信方式flannel的工作流程flannel的搭建部署总结常见的K8s按照部署方式MinikubeMinikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用... 查看详情

kubernetes节点服务搭建————二进制部署|单master节点配置(一)(etcd和flannel)(代码片段)

...集群master01上操作部署在node节点上修改配置部署Docker引擎flannel网络配置常见的通信方式flannel的工作流程flannel的搭建部署总结常见的K8s按照部署方式MinikubeMinikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用... 查看详情

kubernetes节点服务搭建————二进制部署|单master节点配置(一)(etcd和flannel)(代码片段)

...集群master01上操作部署在node节点上修改配置部署Docker引擎flannel网络配置常见的通信方式flannel的工作流程flannel的搭建部署总结常见的K8s按照部署方式MinikubeMinikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用... 查看详情

07-0.部署worker节点(代码片段)

kuberneteswork节点运行如下组件:dockerkubeletkube-proxy安装和配置flanneld参考05-部署flannel网络.md安装依赖包CentOS:source/opt/k8s/bin/environment.shfornode_ipin$NODE_IPS[@]doecho">>>$node_ip"ssh[email protec 查看详情

k8s安装pod网络插件(flannel)报错(代码片段)

问题描述:我在用kubeadm方式部署k8s,安装pod网络插件的时候出现以下报错[root@masterk8s]#kubectlapply-fhttps://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-f 查看详情

flannel网络问题:node节点flannel网络问题导致该node上的pod与其他node节点网络不通的排查思路与解决(代码片段)

flannel网络问题:node节点flannel网络问题导致该node上的pod与其他node节点网络不通的排查思路与解决一、问题发现二、问题排查一、问题发现在部署一个replicas:4的nginxdeployment之后在master节点通过curl+podIP+端口的形式... 查看详情

kubernetes二进制部署单节点master(代码片段)

...部署2.在node1与node2节点修改3.在master1节点上进行启动三.flannel网络配置四.部署master组件五.部署node组件六.总结k8s集群单节点搭建:一.环境准备k8s集群master1:192.168.116.60kube-apiserverkube-cont 查看详情