Kubernetes部署(八):Flannel网络部署 原创 李永峰Billy 2018-12-26 16:22:13 博主文章分类:kubernetes ©著作权 文章标签 kubetnetes k8s部署 flannel dockers 文章分类 云平台 云计算 ©著作权归作者所有:来自51CTO博客作者李永峰Billy的原创作品,如需转载,请与作者联系,否则将追究法律责任 相关内容: Kubernetes部署(一):架构及功能说明 Kubernetes部署(二):系统环境初始化 Kubernetes部署(三):CA证书制作 Kubernetes部署(四):ETCD集群部署 Kubernetes部署(五):Haproxy、Keppalived部署 Kubernetes部署(六):Master节点部署 Kubernetes部署(七):Node节点部署 Kubernetes部署(八):Flannel网络部署 Kubernetes部署(九):CoreDNS、Dashboard、Ingress部署 Kubernetes部署(十):储存之glusterfs和heketi部署 Kubernetes部署(十一):管理之Helm和Rancher部署 Kubernetes部署(十二):helm部署harbor企业级镜像仓库 Flannel 需要在所有的master和node都部署 1.为Flannel生成证书 [root@node-01 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@node-01 ssl]# cfssl gencert -ca=/data/kubernetes/ssl/ca.pem \ -ca-key=/data/kubernetes/ssl/ca-key.pem \ -cOnfig=/data/kubernetes/ssl/ca-config.json \ -profile=kubernetes flanneld-csr.json | cfssljson -bare flanneld 3.分发证书 [root@node-01 ssl]# for n in `seq 201 206`; do scp flanneld*.pem 10.31.90.$n:/data/kubernetes/ssl/;done 4.下载Flannel软件包 [root@node-01 k8s]#wget https://github.com/coreos/flannel/releases/download/v0.10.0/flannel-v0.10.0-linux-amd64.tar.gz [root@node-01 k8s]# tar zxf flannel-v0.10.0-linux-amd64.tar.gz [root@node-01 k8s]# for n in `seq 201 206`;do scp flanneld mk-docker-opts.sh 10.31.90.$n:/data/kubernetes/bin/;done 复制对应脚本到/data/kubernetes/bin目录下。 [root@node-01 k8s]# for n in `seq 201 206`;do scp remove-docker0.sh 10.31.90.$n:/data/kubernetes/bin/;done 5.配置Flannel [root@node-04 ssl]# vim /data/kubernetes/cfg/flannel FLANNEL_ETCD="-etcd-endpoints=https://10.31.90.201:2379,https://10.31.90.202:2379,https://10.31.90.203:2379" FLANNEL_ETCD_KEY="-etcd-prefix=/kubernetes/network" FLANNEL_ETCD_CAFILE="--etcd-cafile=/data/kubernetes/ssl/ca.pem" FLANNEL_ETCD_CERTFILE="--etcd-certfile=/data/kubernetes/ssl/flanneld.pem" FLANNEL_ETCD_KEYFILE="--etcd-keyfile=/data/kubernetes/ssl/flanneld-key.pem" 复制配置到其它节点上 [root@node-01 ~]# for n in `seq 201 206`;do scp /data/kubernetes/cfg/flannel 10.31.90.$n:/data/kubernetes/cfg/;done 6.设置Flannel系统服务 [root@node-01 ~]# vim /usr/lib/systemd/system/flannel.service [Unit] Description=Flanneld overlay address etcd agent After=network.target Before=docker.service [Service] EnvirOnmentFile=-/data/kubernetes/cfg/flannel ExecStartPre=/data/kubernetes/bin/remove-docker0.sh ExecStart=/data/kubernetes/bin/flanneld ${FLANNEL_ETCD} ${FLANNEL_ETCD_KEY} ${FLANNEL_ETCD_CAFILE} ${FLANNEL_ETCD_CERTFILE} ${FLANNEL_ETCD_KEYFILE} ExecStartPost=/data/kubernetes/bin/mk-docker-opts.sh -d /run/flannel/docker Type=notify [Install] WantedBy=multi-user.target RequiredBy=docker.service 复制系统服务脚本到其它节点上 [root@node-01 k8s]# for n in `seq 201 206`;do scp /usr/lib/systemd/system/flannel.service 10.31.90.$n:/usr/lib/systemd/system/flannel.service;done Flannel CNI集成 下载CNI插件 [root@node-01 ~]# wget https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz [root@node-01 ~]# mkdir /data/kubernetes/bin/cni [root@node-01 src]# tar zxf cni-plugins-amd64-v0.7.1.tgz -C /data/kubernetes/bin/cni [root@node-01 k8s]# for n in `seq 201 206`;do scp /data/kubernetes/bin/cni/* 10.31.90.$n:/data/kubernetes/bin/cni/;done 创建Etcd的key [root@node-01 ~]# /data/kubernetes/bin/etcdctl --ca-file /data/kubernetes/ssl/ca.pem --cert-file /data/kubernetes/ssl/flanneld.pem --key-file /data/kubernetes/ssl/flanneld-key.pem \ --no-sync -C https://10.31.90.201:2379,https://10.31.90.202:2379,https://10.31.90.203:2379 \ mk /kubernetes/network/config '{ "Network": "10.2.0.0/16", "Backend": { "Type": "vxlan", "VNI": 1 }}' >/dev/null 2>&1 启动flannel [root@node-01 ~]# systemctl daemon-reload [root@node-01 ~]# systemctl enable flannel [root@node-01 ~]# chmod +x /data/kubernetes/bin/* [root@node-01 ~]# systemctl start flannel 查看服务状态 [root@node-01 ~]# systemctl status flannel 配置Docker使用Flannel [root@node-01 ~]# 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 将配置复制到其它所有的node [root@node-01 k8s]# for n in `seq 201 206`;do scp /usr/lib/systemd/system/docker.service 10.31.90.$n:/usr/lib/systemd/system/docker.service;done 重启Docker [root@node-01 ~]# systemctl daemon-reload [root@node-01 ~]# systemctl restart docker 再查看各个节点会发现docker0网卡和flannel网卡的ip地址都是我们上面配置的网段了。 [root@node-01 k8s]# ifconfig docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 10.2.84.1 netmask 255.255.255.0 broadcast 10.2.84.255 ether 02:42:5e:c6:0c:aa txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450 inet 10.2.84.0 netmask 255.255.255.255 broadcast 0.0.0.0 inet6 fe80::8ccc:15ff:fedd:c00d prefixlen 64 scopeid 0x20<link> ether 8e:cc:15:dd:c0:0d txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 8 overruns 0 carrier 0 collisions 0 至此k8s的集群就已经全部部署完成,后续会继续补充管理、监控、存储等方面的文档。 后续会陆续更新所有的安装文档,如果你觉得我写的不错,希望大家多多关注点赞,非常感谢! 赞 收藏 评论 分享 举报 上一篇:Kubernetes部署(七):Node节点部署 下一篇:Kubernetes部署(九):CoreDNS、Dashboard、Ingress部署 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 Kubernetes — containerd 安装和部署 Kubernetes — 基于containerd 安装和部署,现在很多人说起容器都会说到docker,docker凭借镜像(images)快捷的部署,占领了极大的技术市场,docker公司将自己的核心依赖 Contanerd 捐给了 CNCF,这个就是contanerd的由来,containerd 在kubernetes在 v1.24之后的版本作为底层核心进行使用。 Kubernetes containerd Linux Kubernetes 集群中部署项目 在 Kubernetes 集群中部署项目并交付容器,通常涉及以下几个步骤:Docker 镜像构建:使用 Dockerfile 定义应用程序的环境和依赖,然后使用 Docker Engine 构建出 Docker 镜像。可以使用一些构建工具如 Docker Compose 或 Docker Buildx 来简化构建过程。Docker 镜像推送:将构建好的 Docker 镜像推送到一个容器镜像仓库,例 Docker Java java kubeadm快速部署Kubernetes集群指南 介绍Kubernetes是一个开源的容器编排引擎,用于自动化容器的部署、扩展和操作。本指南将帮助你在CentOS 7.x上详细部署Kubernetes集群。环境准备在开始之前,确保你的机器满足以下要求:操作系统:CentOS 7.x-86_x64硬件配置:2GB以上RAM、2个以上CPU、30GB以上硬盘空间可以访问外网并拉取镜像,或提前下载镜像并导入节点禁用swap分区处理3.x内核存在的内存泄 docker k8s 云原生 Kubernetes Flannel网络部署 之前的博客已经介绍了部署一个简单的Kubernetes集群,但是这个集群环境没有一个合理的网络配置。在实际生产中要实现集群中各个组件的通信,就需要使用第三方提供的网络插件。Flannel二进制安装1、下载fannel组件wgethttps://github.com/coreos/flannel/releases/download/v0.10.0/flannel-v0.10.0-linux-amd6 flannel kubernetes 网络部署 kubernetes之Flannel网络插件部署 Kubernetes系统上Pod网络的实现依赖于第三方插件,而Flannel是由CoreOS主推的目前比较主流的容器网络解决方案,CNI插件有两种功能:网络配置和网络策略,由于flannel比较简单,并不支持网络策略,flanne项目自身只是一个框架,真正提供网络功能的是它的后端实现,目前,Flannel支持三种不同后端实现,分别是:UDPVXLANhost-gwUDP是Flannel项目最早支持 Flannel flanneld flannel部署 kubernetes集群网络配置方案——flannel部署 部署环境: CentOS Linux release 7.2 64位 10.10.0.103 node01 10.10.0.49 node02安装过程: # yum install flannel # tar zxf flannel-v0.8.0-l docker kubernetes flannel 部署flannel网络 部署flannel网络## 什么是flannel网络flannel是一个用于容器网络的开源项目,它提供了一个简单而有效的方法来连接容器,使它们可以在不同的主机上通信。flannel使用了虚拟网络的概念,在现有的物理网络之上创建了一个虚拟网络,使得容器可以通过这个虚拟网络进行通信。## flannel的工作原理flannel的核心原理是使用了Linux内核的TUN/TAP内核模块,通 网络接口 桥接 虚拟网络 kubernetes集群安装指南:Flannel网络插件部署 kuernetes部署flannel网络插件 kubernetes network flannel Flannel网络组件部署 在部署K8S之前,需要在集群服务器上部署CNI容器网络组件,从而实现集群的网络互联互通。目前可选的组件比较多,例如flannel、calico、weave等,各容器网络组件对比可参考文档:http://dockone.io/article/2599本文介绍flannel网络组件的部署,配置环境在完整前文etcd集群和tls认证配置后。一、生成flannel证书文件#mkdirflanneld#cd K8S flannel kubernetes v1.18.2 部署flannel kubernetes v1.18.2 部署flannel flannel E. 部署 flannel 网络 tags:flanneldE.部署flannel网络<!--TOC-->E.部署flannel网络下载和分发flanneld二进制文件创建flannel证书和私钥向etcd写入集群Pod网段信息创建flanneld的systemdunit文件分发flanneldsystemdunit文件到所有节点启动flanneld服务检查启动结果检查分配给各flanneld的Pod网段信息检查节点f docker 6.K8S部署--------Flannel网络部署 最后一章。flannel部署完成后,k8s全部部署就算完成了。 k8s docker 云计算 虚拟化 kubernetes部署网络 Kubernetes(简称K8S)是一个开源的容器编排平台,可以用于在分布式环境中自动化部署、扩展和管理应用程序。在Kubernetes中,网络是一个非常重要的组成部分,负责容器之间的通信和容器与外部网络的连接。本文将介绍如何在Kubernetes中部署网络,并为小白开发者提供了详细的代码示例。一、整体流程下面是在Kubernetes中部署网络的整体流程,我们将使用Flannel作为网络插 nginx Deployment 代码示例 k8s部署flannel网络 1yum安装flannel包:yuminstallflannel-y2编辑配置文件vim/etc/sysconfig/flanneldFlanneldconfigurationoptionsetcdurllocation.PointthistotheserverwhereetcdrunsFLANNEL_ETCD_ENDPOINTS="http://192.168.233.130:2379 docker flannel k8s Centos7部署Kubernetes集群+flannel centos7 部署Kubernetes+flannel https://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html kubernetes集群部署DashBoardhttp://www.cnblogs.com/zhenyuyaodidiao/p/6500897.html kubernetes flannel Centos7 kubernetes(K8S) 集群部署之ETCD数据库部署、flannel网络组件安装 kubernetes(K8S) 集群部署之ETCD数据库部署、flannel网络组件安装 ETCD数据库部署;flannel网络 K8S单master部署二:Flannel网络部署 以下所有操作均在node节点进行Flannel网络概述Flannel通过给每台宿主机分配一个子网的方式为容器提供虚拟网络,它基于LinuxTUN/TAP,使用UDP/VXLAN封装IP包来创建overlay网络,并借助etcd(也支持kubernetes)维护网络的分配情况。服务器角色分配角色地址安装组件master192.168.142.220kube-apiserverkube-control kubernetes flannel docker 容器 kubernetes flannel部署 kubernetes nodeport 本篇文章主要介绍Kubernetes-NodePort的概念及使用。 nodeport kubernetes k8s IP 客户端 kubernetes flannel 部署后 没有flannel pod kubeadm flannel kubernetes windows Kubernetes系列(一)windows 环境安装本文主要介绍如何在 windows 环境下安装部署 Kubernetes 实验环境,主要包括 Docker Desktop 以及 Minikube 程序的安装配置说明。Docker Desktop 安装前提条件• Windows 11 64 位:家庭版或专业版 21H2 或更高版本,或企业版或教育版 21 kubernetes windows docker Docker Windows kubernetes flannel 部署后 没有flannel pod kubeadm flannel 1下载安装包地址https://github.com/coreos/flannel/releases2.部署flannel网路之前,提前安装好docker 参考《Yum 安装Docker》同时,需要向etcd 中写入一个子网,该子网就是为每一个docker 节点分配一个不同的小子网[root@dn01 ~]# /opt/etcd/bin/etcdctl --ca-file=/root/k8s/e docker Code 配置文件