flannel

Kubernetes: 集群网络配置

戏子无情 提交于 2020-10-29 17:18:53
参考: [ Kubernetes 权威指南 ] <br> Kubernetes 集群搭建可以参考 [ Kubernetes : 多节点 k8s 集群实践 ] <br> 在多个 Node 组成的 Kubernetes 集群内, Kubernetes 本身不会对跨主机容器网络进行设置. flannel 就是解决跨主机容器间网络互通的需求. <br><br> Kubernetes 集群架构 Server List 节点名称 节点 IP k8s-master 10.10.10.10 k8s-node1 10.10.10.11 k8s-node2 10.10.10.12 <br> 节点服务说明 Master : etcd , kube-apiserver , kube-controller-manager, kube-scheduler. Node : docker, kubelet, kube-proxy <br><br> flannel 配置安装 flannel 安装于 kubernetes node 服务器上. 安装 flannel yum install flannel ln -sv /usr/libexec/flannel/mk-docker-opts.sh /usr/bin <br> 配置: /etc/sysconfig/flanneld 需要连接位于 master 上的

Docker网络解决方案

試著忘記壹切 提交于 2020-10-29 05:25:33
原文链接: https://www.cnblogs.com/kevingrace/p/6859114.html Docker跨主机容器间网络通信实现的工具有Pipework、Flannel、Weave、Open vSwitch(虚拟交换机)、Calico, 其中Pipework、Weave、Flannel,三者的区别是: Weave的思路 在每个宿主机上布置一个特殊的route的容器,不同宿主机的route容器连接起来。 route拦截所有普通容器的ip请求,并通过udp包发送到其他宿主机上的普通容器。这样在跨机的多个容器端看到的就是同一个扁平网络。 weave解决了网络问题,不过部署依然是单机的。 Flannel的思路 Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。但在默认的Docker配置中,每个节点上的Docker服务会分别负责所在节点容器的IP分配。这样导致的一个问题是,不同节点上容器可能获得相同的内外IP地址。并使这些容器之间能够之间通过IP地址相互找到,也就是相互ping通。Flannel设计目的就是为集群中所有节点重新规划IP地址的使用规则,从而使得不同节点上的容器能够获得"同属一个内网"且"不重复的"IP地址

[Kubernetes][Kubernetes容器网络2]深入解析容器跨主机网络

喜夏-厌秋 提交于 2020-10-28 10:36:22
深入解析容器跨主机网络 [TOC] 在Docker默认配置下,不同宿主机上的容器通过IP地址是无法相互通信的。 因此社区出现了很多用于解决容器跨主机通信问题的方案。 Flannel Flannel 支持三种后端实现: VXLAN host-gw UDP 先以 UDP 模式为例 Flannel UDP模式基本原理 假设有两台宿主机: Node1: container-1,IP 地址为 100.96.1.2,对应的 docker0 网桥的地址是 100.96.1.1/24 Node2:container-2,IP 地址为 100.96.2.3,对应的 docker0 网桥的地址为 100.96.2.1/24 如果 container-1 要和 container-2 通信,那么进程发起的 IP 包的目的地址为 100.96.2.3,该 IP datagram 被 docker0 转发到宿主机,Node-1 根据宿主机的路由表来决定该 IP 包的下一跳 IP 地址。 位于Node-1上的Flannel预先在Node-1上添加一系列路由规则,如下: # 在Node 1上 $ ip route default via 10.168.0.1 dev eth0 100.96.0.0/16 dev flannel0 proto kernel scope link src 100.96.1.0

kubernetes快速入门-安装篇

让人想犯罪 __ 提交于 2020-10-22 13:24:35
kubeadm安装k8s集群 kubeadm的实现设计请参考: https://github.com/kubernetes/kubeadm/blob/master/docs/design/design_v1.10.md 网络规划 节点网络 Pod网络 service网络 192.168.101.0/24 10.244.0.0/16(flannel网络默认) 10.96.0.0/12 部署流程 各个master和nodes节点先手动安装好kubelet、kubadm和docker,kubelet是负责能运行Pod化的核心组件,docker是容器化的引擎; 在master节点上运行 kubeadm init 命令初始化,完成主节点的初化。在master节点上把 API Server 、 controller-manager 、 scheduler 和 etcd 运行成Pod,在各node节点上把 kube-proxy 也运行成Pod,这些Pod是静态化Pod; nodes节点上使用 kubeadm join 把节点加入到集群 把 flannel 附件也运行成在各master和nodes节点上,也运行成Pod 集群安装 系统环境准备 节点角色 IP地址 master主节点 192.168.101.40 node1工作节点 192.168.101.41 node2工作节点 192.168

centos7安装k8s 1.19

限于喜欢 提交于 2020-10-09 15:16:28
主机 192.168.254.10 k8s-master 192.168.254.20 k8s-node1 192.168.254.21 k8s-node2 参数配置 所有节点都要执行 关闭swap swapoff -a # 注释掉/etc/fstab文件swap的行 修改内核模块 配置k8s.conf文件(#k8s.conf文件原来不存在,需要自己创建的) 所有节点上都要做 cat <<EOF>> /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 vm.swappiness=0 EOF sysctl --system 关闭防火墙 所有节点上都要做 systemctl stop firewalld systemctl disable firewalld 关闭selinux 1. 临时 setenforce 0 2. 永久关闭 vim /etc/sysconfig/selinux SELINUX=enforcing 替换为 SELINUX=disabled 准备仓库 k8s.repo cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes

趣谈网络协议!华为18级技术大牛呕心沥血终成545页神仙文档!

試著忘記壹切 提交于 2020-10-01 12:07:32
网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。 网络通信中最重要的就是网络通信协议。当今网络协议有很多,局域网中最常用的有三个网络协议:MICROSOFT的NETBEUI、NOVELL的IPX/SPX和TCP/IP协议。应根据需要来选择合适的网络协议。 第一,会从身边经常见到的事情出发,用讲故事的方式来讲解各种协议,然后慢慢扩大到不熟悉的领域。例如,每个人都会使用查看I地址的命令,我们就从这个命令开始,展开讲解一些相关概念。每个人都在大学宿舍组过简单的网络来打游戏,我们就从宿舍网络涉及的最简单的网络概念开始讲,然后说到办公室网络,再说到日常常用的与上网、购物、视频下载等活动相关的网络协议,最后才说到最陌生的数据中心。说到这里的时候,很多概念已经在前面的“宿舍”和“办公室”的例子中都出现过,因此更容易接受和理解。 第二,讲解网络协议时会更加贴近使用场景,将各个层次的关系串连起来,而非孤立地讲解某个概念。 常见的计算机网络课程往往会按照网络分层,一层一层地讲,却很少讲层与层之间的关系。例如,我们在学习路由协议的时候,在真实场景中,这么多的算法和二层是什么关系呢?和四层又是什么关系呢

容器云平台No.2~kubeadm创建高可用集群v1.19.1

為{幸葍}努か 提交于 2020-10-01 01:29:59
通过kubernetes构建容器云平台第二篇,最近刚好官方发布了V1.19.0,本文就以最新版来介绍通过kubeadm安装高可用的kubernetes集群。 市面上安装k8s的工具很多,但是用于学习的话,还是建议一步步安装,了解整个集群内部运行的组件,以便后期学习排错更方便。。。 本文环境如下: 服务器:3台 操作系统:CentOS 7 拓扑图就不画了,直接copy官网的 ###概述 简单说下这个图,三台服务器作为master节点,使用keepalive+haproxy对apiserver进行负载均衡,node节点和apiserver通信通过VIP进行。第一篇说过,集群的所有信息存在ETCD集群中。 接下来,开干。。。 ###配置源 这边配置了三种源,全部替换从国内的镜像源,以加快安装包的速度。 # 系统源 curl -O http://mirrors.aliyun.com/repo/Centos-7.repo # docker源 curl -O https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' docker-ce.repo # kubernetes源 cat <<EOF >

Docker网络解决方案

可紊 提交于 2020-09-29 18:11:51
Docker网络解决方案 - Flannel部署记录 参考文章: (1)Docker网络解决方案 - Flannel部署记录 (2)https://www.cnblogs.com/kevingrace/p/6859114.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4428122/blog/4606868

kubernetes快速入门13-网络

ⅰ亾dé卋堺 提交于 2020-09-29 13:48:28
kubernetes快速入门13-网络 在kubernetes中容器有四种网络模型: bridge,桥接式网络,自由式网络名称空间 joined,共享使用另外容器的网络空间 opened,容器直接共享宿主机的网络名称空间 Closed或None,不使用任何网络空间 docker网络存在的问题:跨越节点间容器访问时要经过各自宿主机的网络并做SNAT和DNATl转换,发起方容器访问目标容器是访问目标容器所在宿主机的网络,通过DNAT转换才能访问到目标容器,目标容器看不到发起方容器的IP地址,而发起方也看不到目标容器的IP地址。通过SNAT和DNAT转换进行通信效率低。 k8s的网络通信: 容器间通信: 同一个pod内的多个容器间的通信,直接使用lo回环地址 pod间通信:直接使用Pod的网络IP地址通信 Pod与Service通信: Pod的IP与ClusterIP进行通信 Service与集群外部的通信:外部的LB,ingress, NodePort k8s自己不提供网络解决方案,它支持CNI(容器网络插件,这只是一种规范)网络插件方式引入网络解决方案,常见有flannel,calico,canal等,canal是flannel和calico的结合产物,在flannel的基础上增加的网络策略的实现。 flannel网络 flannel支持多种报文的承载方式: VxLAN

深度解读 OpenYurt:从边缘自治看 YurtHub 的扩展能力

一笑奈何 提交于 2020-08-19 04:32:59
作者 | 新胜 阿里云技术专家 导读: OpenYurt 开源两周以来,以非侵入式的架构设计融合云原生和边缘计算两大领域,引起了不少行业内同学的关注。阿里云推出开源项目 OpenYurt,一方面是把阿里云在云原生边缘计算领域的经验回馈给开源社区,另一方面也希望加速云计算向边缘延伸的进程,并和社区共同探讨未来云原生边缘计算架构的统一标准。为了更好地向社区和用户介绍 OpenYurt,我们特地推出 【深度解读OpenYurt】 系列文章,本文为系列文章的第三篇,一一介绍了 OpenYurt 中组件 YurtHub 的扩展能力。 系列文章推荐: OpenYurt 开箱测评 | 一键让原生 K8s 集群具备边缘计算能力 深度解读 OpenYurt :边缘自治能力设计解析 OpenYurt 介绍 阿里云边缘容器服务上线 1 年后,正式开源了云原生边缘计算解决方案 OpenYurt ,跟其他开源的容器化边缘计算方案的区别在于:OpenYurt 秉持 Extending your native Kubernetes to edge 的理念,对 Kubernetes 系统零修改,并提供一键式转换原生 Kubernetes 为 openyurt,让原生 K8s 集群具备边缘集群能力。 同时随着 OpenYurt 的持续演进,也一定会继续保持如下发展理念: 非侵入式增强 K8s