一.概述 1.我们在学习docker时知道docker有四种常用的网络模型 a.bridge:桥接式网络 b.joined:联盟式网络,共享使用另外一个容器的网络名称空间 b.opened:容器直接共享使用宿主机的网络名称空间 c.none:不使用任何网络名称空间 2.无论是哪一种网络方式都会导致如果我们跨节点之间的容器之间进行通信时必须要使用NAT机制来实现,任何pod在访问出去之前因为自己是私有网络中的地址,在离开本机时候必须要做源地址转换以确保能够拿着物理机的地址出去,而后每一个pod要想…
概述 在学习docker时知道docker有四种常用的网络模型 bridge:桥接式网络 joined:联盟式网络,共享使用另外一个容器的网络名称空间 opened:容器直接共享使用宿主机的网络名称空间 none:不使用任何网络名称空间 无论是哪一种网络方式都会导致如果我们跨节点之间的容器之间进行通信时必须要使用NAT机制来实现,任何pod在访问出去之前因为自己是私有网络中的地址,在离开本机时候必须要做源地址转换以确保能够拿着物理机的地址出去,而后每一个pod要想被别人所访问或者每一个容器在上下…
目录 1.1.K8S的CNI网络插件-Flannel 1.1.1.集群规划 1.1.2.下载软件.解压.软链接 1.1.3.最终目录结构 1.1.4.拷贝证书 1.1.5.创建配置 1.1.6.创建启动脚本 1.1.7.检查配置.权限.创建日志目录 1.1.8.操作etcd.增加host-gw 1.1.9.创建supervisor配置 1.1.10.启动服务并检查 1.1.11.再次验证集群,pod之间网络互通 1.1.12.在各运算节点上优化iptables规则 1.1.13.在各运算节点保存…
网络插件Flannel介绍:https://www.kubernetes.org.cn/3682.html 首先,flannel利用Kubernetes API或者etcd用于存储整个集群的网络配置,其中最主要的内容为设置集群的网络地址空间.例如,设定整个集群内所有容器的IP都取自网段"10.1.0.0/16". 接着,flannel在每个主机中运行flanneld作为agent,它会为所在主机从集群的网络地址空间中,获取一个小的网段subnet,本主机内所有容器的IP地址都将从中分配…
1.简介 1.1前言 Kubernetes设计了网络模型,但却将它的实现讲给了网络插件,CNI网络插件最重要的功能就是实现Pod资源能够跨主机通信 常见的CNI网络插件如下: Flannel: Cacliao: Canal: Contiv: OpenContrail: NSX-T: Kube-router. 1.2 Flannel的三种网络模型 host-gw模型:所有的node ip必须在同一个物理网关设备下才能使用,他的原理就是:给宿主机添加一个静态路由 Vxlan模型:当宿主机不在同一个网…
跨节点通讯,需要通过NAT,即需要做源地址转换. k8s网络通信: 1) 容器间通信:同一个pod内的多个容器间的通信,通过lo即可实现: 2) pod之间的通信,pod ip <---> pod ip,pod和pod之间要不经过任何转换即可通信: 3) pod和service通信:pod ip <----> cluster ip(即service ip)<---->pod ip,他们通过iptables或ipvs实现通信,另外大家要注意ipvs取代不了iptables…
1.k8s网络通信 a.容器间通信:同一个pod内的多个容器间的通信,通过lo即可实现; b.pod之间的通信:pod ip <---> pod ip,pod和pod之间不经过任何转换即可通信; c.pod和service通信:pod ip <----> cluster ip(即service ip)<---->pod ip,它们通过iptables或ipvs实现通信,ipvs取代不了iptables,因为ipvs只能做负载均衡,而做不了nat转换; d.Service…
跨主机通信的一个解决方案是Flannel,由CoreOS推出,支持3种实现:UDP.VXLAN.host-gw 一.UDP模式(性能差) 核心就是通过TUN设备flannel0实现(TUN设备是工作在三层的虚拟网络设备,功能是:在操作系统内核和用户应用程序之间传递IP包) 相比两台宿主机直接通信,多出了flanneld的处理过程,这个过程,使用了flannel0这个TUN设备,仅在发出IP包的过程中就要经过了三次用户态到内核态的数据拷贝(linux的上下文切换代价比较大),所以性能非常差 原理如…
1.Kubernetes通信问题 1.容器间通信:即同一个Pod内多个容器间通信,通常使用loopback来实现. 2.Pod间通信:K8s要求,Pod和Pod之间通信必须使用Pod-IP 直接访问另一个Pod-IP 3.Pod与Service通信:即PodIP去访问ClusterIP,当然,clusterIP实际上是IPVS或iptables规则的虚拟IP,是没有TCP/IP协议栈支持的.但不影响Pod访问它. 4.Service与集群外部Client的通信,即K8s中Pod提供的服务必须能被…
系列文章说明 本系列文章,可以基本算是 老男孩2019年王硕的K8S周末班课程 笔记,根据视频来看本笔记最好,否则有些地方会看不明白 需要视频可以联系我 K8S核心网络插件Flannel 目录 系列文章说明 K8S核心网络插件Flannel 1 flannel功能概述 1.1 flannel运转流程 1.2 flannel的网络模型 1.2.1 flannel支持3种网络模型 1.2.2 实际工作中的模型选择 2. 部署flannel插件 2.1 在etcd中写入网络信息 2.2 部署准备 2.…
环境 centos 7 Kubernetes有三种安装方式:yum.二进制.kubeadm,这里演示kubeadm. 一.准备工作1.软件版本 软件 版本 kubernetes v1.15.3 CentOS7.6 CentOS Linux release 7.6.1810(Core) Docker docker-ce-19.03.1-3.el7.x86_64 flannel 0.11.0 2.集群拓扑 IP 角色 主机名 192.168.118.106 master node106 k8s-ma…
目录 一.看图说K8S 二.K8S的概念和术语 三.K8S集群组件 1.Master组件 2.Node组件 3.核心附件 四.K8S的网络模型 五.Kubernetes的核心对象详解 1.Pod资源对象 2.Controller 3.Service 一.看图说K8S 先从一张大图来观看一下K8S是如何运作的,再具体去细化K8S的概念.组件以及网络模型. 从上图,我们可以看到K8S组件和逻辑及其复杂,但是这并不可怕,我们从宏观上先了解K8S是怎么用的,再进行庖丁解牛.从上图我们可以看出: Kube…
前言 最近在另一个k8s集群中,搭建了kong网关,在配置OIDC插件时,希望使用Memcahe代替Cookie来存储会话信息,于是把部署在同一局域网Memcahe的内网IP,比如:192.168.10.145配置给了kong,发现kong居然不能访问这个IP,于是进入容器组,执行命令:ping 192.168.10.145,不通,what are you 弄啥呢? 这可怎么肿么玩呢? 突然想到,在给Kubernetes配置网络插件Calico时,初始化集群时,使用了官方推荐C类IP池,即:19…
本文内容参考<kuberneters进阶实战>/马哥的新书/推荐 部署前的准备 主机名称解析 分布式系统环境中的多主机通信通常基于主机名称进行,这在IP地址存在变化的可能性时为主机提供了固定的访问入口,因此一般需要有专用的DNS服务负责解决各节点主机名.不过,考虑到此处部署的是测试集群,因此为了降低系统的复杂度,这里将采用基于hosts的文件进行主机名称解析 master节点和nodes都需要修改hosts文件 192.168.18.64 master 192.168.18.65 node1…
# ps -ef|grep docker|grep bip FLANNEL_OPTIONS="-ip-masq=true" -ip-masq=true 这个参数的目的是让flannel进行ip伪装,而不让docker进行ip伪装.这么做的原因是如果docker进行ip伪装,流量再从flannel出去,其他host上看到的source ip就是flannel的网关ip,而不是docker容器的ip. --------------------------------------------…
一.K8S的ip地址 Node IP:节点设备的IP,如物理机,虚拟机等容器宿主的实际IP. Pod IP:Pod的IP地址,是根据docker0网络IP段进行分配的. Cluster IP:Service的IP,是一个虚拟IP,仅作用于service对象,由K8S管理和分配,需要结合service port才能使用,单独的IP没有通信功能,集群外访问需要一些修改. 在K8S集群内部,node ip.pod ip.clustere ip的通信机制是由k8s指定的路由规则,不是IP路由. [roo…
flannel的网络插件配置 Kubernetes网络通信需要解决以下问题:            (1)容器间通信:同一个Pod内的多个容器间的通信,lo            (2)Pod通信:Pod IP  <-直达->  Pod IP            (3)Pod与Service通信:Pod IP  <-->  Cluster IP            (4)Service与集群外部客户端的通信:(ingress.nodeport.loadbalancer)   k…
CNI 容器网络接口,就是在网络解决方案由网络插件提供,这些插件配置容器网络则通过CNI定义的接口来完成,也就是CNI定义的是容器运行环境与网络插件之间的接口规范.这个接口只关心容器的网络连接,在创建容器是分配网络,删除容器是移除网络.插件就是对CNI的规范的具体实现. Network Namespace提供的是什么 这里我们简要回顾一下,容器具有自己的网络协议栈而且被隔离在它自己的网络名称空间内,在这个隔离的网络空间里会为容器提供网卡.回环设备.IP地址.路由表.防火墙规则等这些基本的网络环境…
一.概述 1.我们说过,k8s的可用插件有很多,除了flannel之外,还有一个流行的叫做calico的组件,不过calico在很多项目中都会有这个名字被应用,所以他们把自己称为project calico,但是很多时候我们在kubernets的语境中通常会单独称呼他为calico.其本身支持bgp的方式来构建pod网络.通过bgp协议的路由学习能使得去每一节点上生成到达另一节点上pod之间的路由表信息.会在变动时自动执行改变和修改,另外其也支持IP-IP,就是基于IP报文来承载一个IP报文,不…
Flannel和Calico网络插件对比   Calico简介 Calico是一个纯三层的网络插件,calico的bgp模式类似于flannel的host-gw Calico方便集成 OpenStack这种 IaaS云架构,为openstack虚拟机.容器.裸机提供多主机间通信.   calico 架构 calico包括如下重要组件:Felix,etcd,BGP Client,BGP Route Reflector.下面分别说明一下这些组件: Felix:主要负责路由配置以及ACLS规则的配置以…
node节点需要安装flannel网络插件才能保证所有的pod在一个局域网内通信,直接使用yum安装即可,版本是0.7.1. 1.安装flannel插件: 注意是2个node节点都需要安装,都需要修改service文件和配置文件. yum install flannel -y 2.修改service文件/usr/lib/systemd/system/flanneld.service其内容为: [Unit] Description=Flanneld overlay address etcd age…
目录 Kubernetes的网络模型和网络策略 1.Kubernetes网络模型和CNI插件 1.1.Docker网络模型 1.2.Kubernetes网络模型 1.3.Flannel网络插件 1.4.VxLAN后端和direct routing 1.5.Host-gw后端 2.网络策略 2.1.部署Canal提供网络策略功能 2.2.配置网络策略 2.3.管控入站流量 2.4.管控出站流量 2.5.隔离名称空间 Kubernetes的网络模型和网络策略 1.Kubernetes网络模型和CNI…
摘抄某博客 1.   Flannel Flannel是为kubernetes设计的一个非常简洁的多节点三层网络方案,解决不同host上的容器互联问题,原理是为每个host分配一个subnet,容器从此subnet中分配IP,这些IP可以在host间路由,容器间无需NAT和port  mapping就可以跨主机通信,每个subnet都是从一个更大的IP池中划分的,flannel会在每个host上面运行一个守护进程flanneld,其职责就是从大池子中分配subnet,为了各个主机间共享信息,fla…
目录 1.Docker网络模式 1.1 bridge网络的构建过程 1.2 外部访问 2.Kubernetes网络模式 2.1 同一个Pod中容器之间的通信 2.2 不同Pod中容器之间的通信 2.3 Flannel在K8S中运行的整体过程 2.4 数据传递过程 1.Docker网络模式 在讨论Kubernetes网络之前,让我们先来看一下Docker网络.Docker采用插件化的网络模式,默认提供bridge.host.none.overlay.maclan和Network plugins这几…
0.前言 参考文档:https://github.com/containernetworking/cni Pod网络插件,为了实现Pod网络而需要的插件.组件.由于Kubernetes通过开放的CNI接口来允许插件的接入,所以它又称之为CNI网络插件. 为了解决跨主机容器间通信问题,市面上存在很多解决方案,为了兼容和规范这些解决方案,Kubernetes仅设计了网络模型,却将Pod网络的实现交给了CNI网络插件,并允许网络插件通过标准的CNI(Container Network Interfac…
卸载flannel 查看已安装的flannel的信息 # 查看CNI插件,可以得知使用的是flannel # cat /etc/cni/net.d/10-flannel.conflist { "name": "cbr0", "cniVersion": "0.3.1", "plugins": [ { "type": "flannel", "delegate&q…
linux的视频学习: 1.网络配置的三种方式的介绍. 第一种方式: setup 命令--选择network configuration-->配置固定ip(tab键)和自动分配IP(长空格) /etc/rc.d/init.d/network restart 命令之后才生效. 用ifconfig 来显示网卡信息. 第二种方式: ifconfig eth0  x.x.x.x  对网卡进行设置. ifconfig eth0 network  x.x.x.x 对子网掩码设置. 对广播地址和dns使用默认…
ubuntu server 18.04的安装 以及配置网络还有ssh服务   服务器是 dell T420 安装过程中规中矩,其中最关键的是分区部分,由于是服务器,如果磁盘比较大的话,一定要用 uefi + gpt 其次最好是多分一些区,将home 以及一些目录独立出来 实现程序与数据分离 安装完以后需要配置静态的ip 首先一.查看网络配置状态 ifconfig -a   二.配置dhcp客户端 修改:/etc/network/interface文件 auto lo iface lo inet…
随着新一代飞机的综合化航电系统对通信需求的不断提高,传统的ARINC429.1553B总线的传输速率分别只有100Kbps和1Mbps,其带宽已远远不 论文联盟 http://Www.LWlm.cOm能满足系统通信的需求,无法为高性能数据处理提供有力的通信支撑. FC网络是一种高速串行通信技术,速率可以达到1Gbps.2Gbps,甚至到4Gbps以上,同时还具备低延迟.可靠性高.重量轻.体积小,且 应用灵活等特点,是一种新型的高速通信技术.定义了FC-AE以及ARINC818等专门应用于机载 环…
1.打开VMware Workstation虚拟机 2.在VMware下安装虚拟ubunt系统后配置网络,如图所示配置,即可. 3.检查笔记本所使用的网段 ①按 “win + R ”键,并输入“cmd”,然后回车,如图所示: ②在终端配置“ipconfig”,查看现用的网段,如图所示: 现在是50段,所以一会Ubuntu也要改成50段,才能联网 4.进入Ubuntu操作系统 5.打开Ubuntu终端,在终端输入“ifconfig”,查看IP,检查网段是否和上面一致,如果不一致,修改成一致即可.…