当前位置: 首页 > news >正文

网络核心 - CNI、Service 与 Ingress/Gateway API 解析

网络核心 - CNI、Service 与 Ingress/Gateway API 解析


Kubernetes 的强大之处在于它极大地简化了容器化应用的部署和管理,但其网络模型的灵活性和复杂性也常常让初学者感到困惑。作为 SRE,我们需要拨开迷雾,理解流量在 K8s 集群内部以及进出集群时,到底是如何流转的。

Pod 网络基础:谁给 Pod 分配 IP?(CNI)

我们知道,在 K8s 中,每个 Pod 都拥有自己唯一的 IP 地址。这是实现“一个 Pod一个 IP”模型的关键,它简化了应用的网络配置(应用可以直接监听自己的端口,无需担心端口冲突)。但这个 IP 地址是谁分配的?Pod 之间的网络是如何打通的?

答案是 CNI (Container Network Interface) 插件。

  • CNI 是什么? 它不是一个具体的软件,而是一套接口规范(由 CNCF 维护)。它定义了容器运行时(如 Docker, containerd)与网络插件之间的标准交互方式,用于配置容器(Pod)的网络。Kubernetes 本身不负责具体的 Pod 网络实现,而是委托给符合 CNI 规范的网络插件来完成。
  • CNI 插件如何工作(简化流程)
    1. 当一个 Pod 被调度到某个 Node 上时,该 Node 上的 kubelet 进程会调用配置好的 CNI 插件。
    2. CNI 插件负责为这个 Pod 分配一个 IP 地址(通常从该 Node 分到的一个 Pod CIDR 网段中获取)。
    3. 插件会在 Node 上创建必要的网络设备(例如,一对 veth 设备,一端连接 Pod 的网络命名空间,另一端连接 Node 的根网络命名空间),并配置相应的 IP 地址、路由规则、网桥等,从而将 Pod 连接到集群网络中。
    4. 不同的 CNI 插件使用不同的技术来实现 Pod 间的通信(可能是 Overlay
http://www.lqws.cn/news/450973.html

相关文章:

  • 大模型学习入门——Day3:注意力机制
  • LINUX620 NFS
  • 【2025 年】软件体系结构考试试卷-期末考试
  • 永磁电机技术革新,未来动力新方向
  • el-tree的属性render-content自定义样式不生效
  • 北京京东,看看难度
  • 探索深度学习中的图像超分辨率:SMFANet 模型解析
  • 基于OpenSSL实现AES-CBC 128算法的 SeedKey DLL的生成与使用
  • Cursor 如何快速索引代码库
  • python3列表与元组
  • 前端如何禁止用户复制?
  • Java excel坐标计算
  • macOS - 根据序列号查看机型、保障信息
  • Chromium 136 编译指南 macOS篇:获取源代码(四)
  • LabVIEW工业指针仪表检测
  • Labview教程进阶一(Labview与OPC UA设备通信)
  • 装饰器模式深度解析:Java设计模式实战指南与动态功能扩展最佳实践
  • CppCon 2017 学习:Migrating a C++03 library to C++11 case study
  • nginx的下载与安装 mac
  • 【前端隐蔽 Bug 深度剖析:SVG 组件复用中的 ID 冲突陷阱】
  • Kafka协议开发总踩坑?3步拆解二进制协议核心
  • 中文Windows系统下程序输出重定向乱码问题解决方案
  • pip install下载安装后的文件所在位置
  • Lombok常用注解总结
  • 4.文件管理(文本、日志、Excel表)
  • 亚马逊云科技中国峰会
  • httpclient实现http连接池
  • 【Python小练习】3D散点图
  • 服务网格安全(Istio)从入门到实践
  • Kotlin 中ArrayList、listOf、arrayListOf 和 mutableListOf区别