kubernetes系列(五) - kubernetes网络原理
前言
关于kubernetes网络,需要了解以下知识:
- kubernetes的网络原型是什么
- docker背后的网络基础是什么
- docker自身的网络模型和局限是什么
- kubernetes的网络组件之间是如何通信的
- 外部如何访问kubernetes集群
- 有哪些开源组件支持kubernetes的网络集群
1. kubernetes网络模型
kubernetes的网络模型假定了所有的pod都在一个直接连通的扁平的网络空间中,kubernetes运行的基础是假定这个网络已经存在。
自己搭建集群的话,需要自己实现这个网络假定,就是通过
flannel和calico等组件
2. kubernetes的组件之间如何通讯
2.1 同一个pod内的多容器之间
前面了解过,同一个pod之间是有一个根容器pause,且共用一个pod ip的,所以容器之间的通讯是通过pause的网络栈的lo(无线网卡),直接使用localhost来互相访问
2.2 各个pod直接的通讯

2.2.1 同一个节点上的pod互相通讯
如上图,同一个node上的pod之间,是连接到同一个docker0网桥上的, 地址段相同,所以可以直接通信
2.2.2 不同节点上的pod之间的通信
通过开源网络组件flannel开实现
flannel能协助kubernetes,给每一个node伤的每个pod都分配一个不冲突的ip- 且能在这些ip之中建立一个覆盖网络,通过这些
覆盖网络overlay network,原封不动地传递到目标容器内
etcd为flannel提供的支持
- 存储管理flannel可分配的ip地址资源段
- 监控etcd中每个pod的实际地址,并在内存中建立维护pod节点路由表
2.3 pod和service之间的通讯
目前基于性能考虑,全部为iptables维护和转发。
新版本中已经替换为
lvs
2.4 外网访问pod
通过service nodeport完成
3. kubernetes的三层网络
三层分别是:
- pod网络
- service网络
- 节点(node)网络
真实的、具体的网络只有节点网络,其他两层都是虚拟的内部网络

kubernetes系列(五) - kubernetes网络原理的更多相关文章
- kubernetes pod infra container网络原理
刚开始接触kubernetes时,对kubelet的--pod-infra-container-image参数非常不能理解,不理解为什么我的业务应用需要依赖一个第三方的容器: 上文入门级kuberne ...
- Kubernetes系列(五) Ingress
作者: LemonNan 原文地址: https://juejin.im/post/6878269825639317517 Kubernetes 系列 Kubernetes系列(一) Pod Kube ...
- Kubernetes系列02—Kubernetes设计架构和设计理念
本文收录在容器技术学习系列文章总目录 1.Kubernetes设计架构 Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分 ...
- 《Kubernetes权威指南》——网络原理
1 Kubernetes网络模型 基本原则:每个Pod都拥有一个独立IP,而且假定所有Pod都在一个可以直接连通的.扁平的网络空间中. 基于基本原则,用户不需要额外考虑如何建立Pod之间的连接,也不需 ...
- 【Kubernetes 系列五】在 AWS 中使用 Kubernetes:EKS
目录 1. 概述 2. 版本 3. 预备 3.1. 操作环境 3.2. 角色权限 3.2.1. CloudFormation 完全权限 3.2.2. EKS 读写权限 3.2.3. EC2 相关权限 ...
- kubernetes系列06—kubernetes资源清单定义入门
本文收录在容器技术学习系列文章总目录 1.认识kubernetes资源 1.1 常用资源/对象 workload工作负载型资源:pod,ReplicaSet,Deployment,StatefulSe ...
- Kubernetes系列:Kubernetes Dashboard
15.1.Dashboard 作为Kube认得Web用户界面,用户可以通过Dashboard在Kubernetes集群中部署容器化的应用,对应用进行问题处理和管理,并对集群本身进行管理.通过Dashb ...
- 恒天云技术分享系列6 – vLan网络原理解析
转载自恒天云官网:http://www.hengtianyun.com/download-show-id-15.html Vlan网络模式优点 增加网络可扩展性 网络隔离,每个租户拥有独立的网络及vl ...
- (转)Vmware vSphere 5.0系列教程 vSphere网络原理及vSwitch简介 及一个host两个网卡说明
转:http://andygao.blog.51cto.com/323260/817518/ 在一个物理网络拓扑中,通常都是路由器-交换机-PC机的连接,不同的服务器和PC机,通过交换机的连接而相互连 ...
- 从0到1使用Kubernetes系列(七):网络
本文是从 0 到 1 使用 Kubernetes 系列第七篇,上一篇<从 0 到 1 使用 Kubernetes 系列(六):数据持久化实战> 介绍了 Kubernetes 中的几种常用储 ...
随机推荐
- C#/.NET/.NET Core学习路线集合,学习不迷路!
前言 C#..NET..NET Core.WPF.WinForm.Unity等相关技术的学习.工作路线集合(持续更新)!!! 全面的C#/.NET/.NET Core学习.工作.面试指南:https: ...
- ToDesk云电脑手机也能玩?安卓系统已上线!
近日,ToDesk云电脑首次发布移动端!这次云电脑将安卓和iOS双系统都安排上了,基本照顾到所有移动端的用户.并且性能也保持了电脑版的高配置,价格还是那么优惠. 我用了一次都有点不想退出了,用来打游戏 ...
- Python-提高-1
阅读目录 1.GIL(全局解释器锁) 2.深拷贝.浅拷贝 3.私有化 4.import导入模块 5.再议 封装.继承.多态 一.GIL(全局解释器锁) GIL面试题如下 描述Python GIL的概念 ...
- Tony Bai · Go语言第一课 _个人笔记 04|初窥门径:一个Go程序的结构是怎样的?
Tony Bai · Go语言第一课 _个人笔记 04|初窥门径:一个Go程序的结构是怎样的? 1.配置国内的Go模块的镜像 配置国内镜像代理(使用阿里云镜像) go env -w GOPROXY=h ...
- Java面试题中高级进阶(JVM篇01)
前言 本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!说说堆和栈的区别?什么时候会触发FullGC?什么是Java虚拟机?似乎有点模糊了,那就大概看一下面试题吧.好记性不如烂键盘 *** 12 ...
- 如何在Spark键值对数据中,对指定的Key进行输出/筛选/模式匹配
在用键值对RDD进行操作时,经常会遇到不知道如何筛选出想要数据的情况,这里提供了一些解决方法 目录 1.对固定的Key数据进行查询 2.对不固定的Key数据进行模糊查询 1.对固定的Key数据进行查询 ...
- Manjaro/Arch用怎么安装天翼云电脑(Ctyun-cloud-desk)?感谢信创,感谢国家
最近微信出了linux版,用vmware装linux不过瘾,把一台闲置的笔记本装上了Manjaro KDE Plasma,经过一段时间的发展,Linux桌面可用性大大提高. Kindle->Ki ...
- Golang的GMP调度模型与源码解析
0.引言 我们知道,这当代操作系统中,多线程和多进程模型被广泛的使用以提高系统的并发效率.随着互联网不断的发展,面对如今的高并发场景,为每个任务都创建一个线程是不现实的,使用线程则需要系统不断的在用户 ...
- ExtJS & Asp.NET
企业应用中,要快速开发Web应用,前端使用ExtJS还行,包含许多常用的控件,图标,配色方案... 帖上部分载图: 完全可订制的登录界面: 可调整的布局: 可综合使用的模态对话框: 树结构及动态加载: ...
- php 如何创建uuid
传统的创建uuid的方法是自己写个函数实现随机 <?php function create_uuid($prefix="") { $chars = md5(uniqid(mt ...