前言

关于kubernetes网络,需要了解以下知识:

  1. kubernetes的网络原型是什么
  2. docker背后的网络基础是什么
  3. docker自身的网络模型和局限是什么
  4. kubernetes的网络组件之间是如何通信的
  5. 外部如何访问kubernetes集群
  6. 有哪些开源组件支持kubernetes的网络集群

1. kubernetes网络模型

kubernetes的网络模型假定了所有的pod都在一个直接连通的扁平的网络空间中,kubernetes运行的基础是假定这个网络已经存在。

自己搭建集群的话,需要自己实现这个网络假定,就是通过flannelcalico等组件


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开实现

  1. flannel能协助kubernetes,给每一个node伤的每个pod都分配一个不冲突的ip
  2. 且能在这些ip之中建立一个覆盖网络,通过这些覆盖网络overlay network,原封不动地传递到目标容器内

etcd为flannel提供的支持

  1. 存储管理flannel可分配的ip地址资源段
  2. 监控etcd中每个pod的实际地址,并在内存中建立维护pod节点路由表

2.3 pod和service之间的通讯

目前基于性能考虑,全部为iptables维护和转发。

新版本中已经替换为lvs


2.4 外网访问pod

通过service nodeport完成


3. kubernetes的三层网络

三层分别是:

  1. pod网络
  2. service网络
  3. 节点(node)网络

真实的、具体的网络只有节点网络,其他两层都是虚拟的内部网络

kubernetes系列(五) - kubernetes网络原理的更多相关文章

  1. kubernetes pod infra container网络原理

    刚开始接触kubernetes时,对kubelet的--pod-infra-container-image参数非常不能理解,不理解为什么我的业务应用需要依赖一个第三方的容器: 上文入门级kuberne ...

  2. Kubernetes系列(五) Ingress

    作者: LemonNan 原文地址: https://juejin.im/post/6878269825639317517 Kubernetes 系列 Kubernetes系列(一) Pod Kube ...

  3. Kubernetes系列02—Kubernetes设计架构和设计理念

    本文收录在容器技术学习系列文章总目录 1.Kubernetes设计架构 Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分 ...

  4. 《Kubernetes权威指南》——网络原理

    1 Kubernetes网络模型 基本原则:每个Pod都拥有一个独立IP,而且假定所有Pod都在一个可以直接连通的.扁平的网络空间中. 基于基本原则,用户不需要额外考虑如何建立Pod之间的连接,也不需 ...

  5. 【Kubernetes 系列五】在 AWS 中使用 Kubernetes:EKS

    目录 1. 概述 2. 版本 3. 预备 3.1. 操作环境 3.2. 角色权限 3.2.1. CloudFormation 完全权限 3.2.2. EKS 读写权限 3.2.3. EC2 相关权限 ...

  6. kubernetes系列06—kubernetes资源清单定义入门

    本文收录在容器技术学习系列文章总目录 1.认识kubernetes资源 1.1 常用资源/对象 workload工作负载型资源:pod,ReplicaSet,Deployment,StatefulSe ...

  7. Kubernetes系列:Kubernetes Dashboard

    15.1.Dashboard 作为Kube认得Web用户界面,用户可以通过Dashboard在Kubernetes集群中部署容器化的应用,对应用进行问题处理和管理,并对集群本身进行管理.通过Dashb ...

  8. 恒天云技术分享系列6 – vLan网络原理解析

    转载自恒天云官网:http://www.hengtianyun.com/download-show-id-15.html Vlan网络模式优点 增加网络可扩展性 网络隔离,每个租户拥有独立的网络及vl ...

  9. (转)Vmware vSphere 5.0系列教程 vSphere网络原理及vSwitch简介 及一个host两个网卡说明

    转:http://andygao.blog.51cto.com/323260/817518/ 在一个物理网络拓扑中,通常都是路由器-交换机-PC机的连接,不同的服务器和PC机,通过交换机的连接而相互连 ...

  10. 从0到1使用Kubernetes系列(七):网络

    本文是从 0 到 1 使用 Kubernetes 系列第七篇,上一篇<从 0 到 1 使用 Kubernetes 系列(六):数据持久化实战> 介绍了 Kubernetes 中的几种常用储 ...

随机推荐

  1. 题解:AT_arc182_a [ARC182A] Chmax Rush!

    题目传送门 洛谷题解 思路 我们只需要枚举每一个 \(v_i\),对于 \(i\) 后面的 \(v_j\) 如果 \(v_i > v_j\) 进行以下讨论. \(p_i = p_j\) \(p_ ...

  2. Windows 如何启用 Administrator 账户

    Windows 默认安装的时候需要自己定义一个账户,不是管理员账户,不能操作某些目录,有时很不方便.不过我们可以手动打开,像盗版一样默认使用 Administrator  账户: 按下Win + R, ...

  3. ToDesk云电脑实测!轻松应对游戏电竞、AIGC创作、设计建模等场景

    万物智联时代,现代社会对数字计算的需求呈指数级增长.当算力成为推动技术创新和应用发展的重要引擎,云电脑产业正在悄然占据国内算力应用的市场,成为新时代的数字经济发展方向.1 云电脑,顾名思义,是一台随时 ...

  4. 项目中maven依赖无法自动下载

    [解决方法]: 安装目录conf--修改settting.xml文件在mirrors标签下添加子节点 <mirrors> <!-- mirror | Specifies a repo ...

  5. Problem K. Master of Sequence(二分)

    Problem K. Master of Sequence(二分) 补补题,人太菜了,一个题解看了两个小时才看明白(当然也可能是比赛的时候这个题完全不知道怎么下手qwq) 题目链接:http://ac ...

  6. 量子线路设计:减少CNOT和T门的意义。

    在量子线路的设计中,我们往往希望减少线路中的CNOT门和T门的数目,原因如下: 一般文献宣称减少T门的数量是为了更高效地执行容错量子计算(fault-tolerant quantum computat ...

  7. 鸿蒙NEXT开发案例:转盘

    [1]引言(完整代码在最后面) 在鸿蒙NEXT系统中,开发一个有趣且实用的转盘应用不仅可以提升用户体验,还能展示鸿蒙系统的强大功能.本文将详细介绍如何使用鸿蒙NEXT系统开发一个转盘应用,涵盖从组件定 ...

  8. Lua语法基础教程(上篇)

    今天我们来学习Lua语法基础教程.由于篇幅过长,将分为上中下三篇进行讲解,本篇为上篇. 一.初识Lua Lua 是一种轻量小巧的脚本语言,它用标准C语言编写并以源代码形式开放.这意味着什么呢?这意味着 ...

  9. UML 基础:类图

    这是关于统一建模语言.即UML 里采用的基本图的一系列文章的一部分.在我 先前关于序列图的文章 里,我把重点从 UML 1.4 版,转移到 OMG的采用UML 2.0版草案规范(又称为UML 2).在 ...

  10. callable结合FutureTask的多线程使用(免打扰模式)

    import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.ut ...