专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

kubernetes系列(五) - kubernetes网络原理

目录

  • 前言
    1. kubernetes网络模型
    1. kubernetes的组件之间如何通讯
    • 2.1 同一个pod内的多容器之间
    • 2.2 各个pod直接的通讯
      • 2.2.1 同一个节点上的pod互相通讯
      • 2.2.2 不同节点上的pod之间的通信
    • 2.3 pod和service之间的通讯
    • 2.4 外网访问pod
    1. kubernetes的三层网络

前言

关于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直接的通讯

104_1.png

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)网络

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

104_2.png

文章永久链接:https://tech.souyunku.com/22281

未经允许不得转载:搜云库技术团队 » kubernetes系列(五) - kubernetes网络原理

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们