书籍来源:cloudman《每天5分钟玩转Kubernetes》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:每天5分钟玩转Kubernetes | 汇总_COCOgsta的博客-CSDN博客


Kubernetes采用的是基于扁平地址空间的网络模型,集群中的每个Pod都有自己的IP地址,Pod之间不需要配置NAT就能直接通信。另外,同一个Pod中的容器共享Pod的IP,能够通过localhost通信。

这种网络模型对应用开发者和管理员相当友好,应用可以非常方便地从传统网络迁移到Kubernetes。每个Pod可被看作是一个个独立的系统,而Pod中的容器则可被看作同一系统中的不同进程。

下面讨论在这个网络模型下集群中的各种实体如何通信。知识点前面都已经涉及,这里可当作复习和总结。

  1. Pod内容器之间的通信

当Pod被调度到某个节点,Pod中的所有容器都在这个节点上运行,这些容器共享相同的本地文件系统、IPC和网络命名空间。

不同Pod之间不存在端口冲突的问题,因为每个Pod都有自己的IP地址。当某个容器使用localhost时,意味着使用的是容器所属Pod的地址空间。

比如Pod A有两个容器container-A1和container-A2,container-A1在端口1234上监听,当container-A2连接到localhost:1234时,实际上就是在访问container-A1。这不会与同一个节点上的Pod B冲突,即使Pod B中的容器container-B1也在监听1234端口。

  1. Pod之间的通信

Pod的IP是集群可见的,即集群中的任何其他Pod和节点都可以通过IP直接与Pod通信,这种通信不需要借助任何网络地址转换、隧道或代理技术。Pod内部和外部使用的是同一个IP,这也意味着标准的 命名服务和发现机制,比如DNS可以直接使用。

  1. Pod与Service的通信

Pod间可以直接通过IP地址通信,但前提是Pod知道对方的IP。在Kubernetes集群中,Pod可能会频繁地销毁和创建,也就是说Pod的IP不是固定的。为了解决这个问题,Service提供了访问Pod的抽象层。无论后端的Pod如何变化,Service都作为稳定的前端对外提供服务。同时,Service还提供了高可用和负载均衡功能,Service负责将请求转发给正确的Pod。

  1. 外部访问

无论是Pod的IP还是Service的Cluster IP,它们只能在Kubernetes集群中可见,对集群之外的世界,这些IP都是私有的。

Kubernetes提供了两种方式让外界能够与Pod通信:

  • NodePort。Service通过Cluster节点的静态端口对外提供服务。 外部可以通过<NodeIP>:<NodePort>访问Service。
  • LoadBalancer。Service利用cloud provider提供的load balancer对外提供服务,cloud provider负责将load balancer的流量导向Service。目前支持的cloud provider有GCP、AWS、 Azure等。

每天5分钟玩转Kubernetes | Kubernetes网络模型相关推荐

  1. 每天5分钟玩转Kubernetes | 汇总

    书籍来源:cloudman<每天5分钟玩转Kubernetes> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 1. 每天5分钟玩转Kubernetes | ...

  2. 每天5分钟玩转Kubernetes | 各种网络方案

    书籍来源:cloudman<每天5分钟玩转Kubernetes> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:每天5分钟玩转Kubernete ...

  3. Kubernetes Dashboard - 每天5分钟玩转 Docker 容器技术(173)

    前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...

  4. Kubernetes 架构(上)- 每天5分钟玩转 Docker 容器技术(120)

    Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. Master 节点 Master 是 Kubernetes Cluster ...

  5. 每天5分钟玩转Kubernetes | Cluster IP底层实现

    书籍来源:cloudman<每天5分钟玩转Kubernetes> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! Cluster IP是一个虚拟IP,是由Ku ...

  6. 学习 Kubernetes 的 Why 和 How - 每天5分钟玩转 Docker 容器技术(114)

    这是一个系统学习 Kubernetes 的教程,有下面两个特点: 系统讲解当前最流行的容器编排引擎 Kubernetes 包括了安装部署.应用管理.网络.存储.监控.日志管理等多各个方面. 重实践并兼 ...

  7. 每天5分钟玩转Kubernetes | Weave Scope

    书籍来源:cloudman<每天5分钟玩转Kubernetes> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:每天5分钟玩转Kubernete ...

  8. 每天5分钟玩转Kubernetes | 先把Kubernetes跑起来

    书籍来源:cloudman<每天5分钟玩转Kubernetes> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:每天5分钟玩转Kubernete ...

  9. Kubernetes 集群日志管理 - 每天5分钟玩转 Docker 容器技术(180)

    Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理.这是一个 Elasticsearch.Fluentd 和 Kibana 的组合.Elasticsearch ...

最新文章

  1. 重磅!如何高效学习单目深度估计
  2. mysql性能优化学习笔记-存储引擎
  3. [转] MMO即时战斗:地图角色同步管理和防作弊实现
  4. [导入]使用tomcat5.0自带的连接池
  5. 模态对话框和非模态对话框区别
  6. 技术分享 | jaeger链路日志实现
  7. 【转】ABP源码分析二十九:ABP.MongoDb
  8. python实现录音小程序 界面_小程序如何实现录音 播放功能
  9. php 项目中引用对方接口_关于PHP中为什么要写接口的问题说明
  10. 《Tensorflow 实战google深度学习框架》第二版源代码
  11. 打印机后台程序没有启动
  12. sql server2016数据库学习必备(保姆级教程)
  13. deepin系统引导_Deepin系统安装教程
  14. 手机如何取消安全模式
  15. JS 流行库(五):Swiper
  16. html中repeat的作用,深入探究CSS repeat()函数知识及用法
  17. 下一个20年全球开发者将过亿?Tesra超算网络与开发者一起迎接AI时代的到来!
  18. 同步脑电图-功能磁共振融合推断宏观脑动力学
  19. innerHTML与innerText与outHTML与outText 的区别。
  20. 循环 — 你必须要会的十五道编程题

热门文章

  1. win10关机后自动重启_win10关机后自动开机的解决方法
  2. 【自监督论文阅读 2】MAE
  3. 美国计算机科学研究院排名,美国学计算机科学最好的大学排名必然仔细的考查...
  4. LeNet由来及意义
  5. 三 通用目标之make vmlinux的执行过程分析
  6. uniapp 配置proxy 跨域代理
  7. 如何查看Ubuntu中Python的安装路径
  8. Linux - 命令的查找 find命令详解
  9. 获取被人电话本的小恶意程序
  10. percona mysql 审计_Percona MySQL Audit to rsyslog