【容器云架构】了解 Kubernetes 网络模型

简介: 【容器云架构】了解 Kubernetes 网络模型

Kubernetes 网络使您能够在 k8s 网络内配置通信。它基于扁平网络结构,无需在主机和容器之间映射端口。

Kubernetes 网络支持容器化组件之间的通信。这种网络模型的主要优点是不需要在主机和容器之间映射端口。然而,配置 Kubernetes 网络模型并不是一件容易的事。在本文中,您将了解什么是 Kubernetes 网络,探索常见的实现,并发现关键的 Kubernetes 网络变化。

什么是 Kubernetes 网络?

Kubernetes (k8s) 是一个开源容器编排平台。您可以使用它来自动化本地或云中容器的部署、更新和操作。使用 k8s,您可以跨多个基础架构管理容器化工作负载,而无需担心操作系统或环境。

Kubernetes 网络是 k8s 用来实现其组件之间通信的模型。它基于扁平的网络结构,不需要你在主机和容器之间映射端口。尽管 Kubernetes 网络设置起来可能是一个挑战,但它是任何 k8s 操作的重要组成部分,并且您需要了解它才能成功部署。

常见的 Kubernetes 网络实现

使用 Kubernetes 时,平台会强制实施需要第三方工具来实现的网络模型。您可以选择许多第三方工具,但以下三个是流行的选项。

  • Flannel——一种为 k8s 设计的开源网络结构。Flannel 通过每个主机上的二进制代理运行。该代理将子网租用分配给主机并使用 etcd 来存储配置数据。
  • Project Calico——一个开源网络供应商和政策引擎。Calico 使您能够创建一个可扩展的网络解决方案来连接 k8s pod。它还使您能够在主机网络或服务网格层上实施安全策略。
  • Weave Net — 一种专有网络工具包,可用于创建虚拟网络。Weave Net 包括弹性、可扩展性、安全性、多播网络和服务发现等功能。它基于去中心化架构,不需要任何外部配置服务或存储。

Kubernetes 网络变化

在标准的 Kubernetes 部署中,您应该注意多种网络变化。以下是需要了解的最常见的网络情况。

容器到容器网络

网络的高级视图描述了直接与以太网设备通信的设备或虚拟机。然而,实际上(至少对于 Linux),您机器上的每个进程都在网络命名空间内进行通信。

这个命名空间创建了一个逻辑网络堆栈,它有自己的网络设备、防火墙规则和路由。当您运行一个进程时,它默认分配给您的根网络命名空间。这为进程提供了外部访问。


在 Kubernetes 中,您的容器被分组为 pod,每个 pod 都有一个共享的命名空间。在这个 pod 中,所有容器都具有相同的端口和 IP 地址以及端口空间。为了通信,Pod 中的容器可以使用 localhost,因为它们都在同一个命名空间中运行。如果不同 Pod 中的容器需要通信,则您正在使用下面描述的 Pod 到 Pod 网络过程。

Pod 到 Pod 网络

Pod 到 Pod 网络可以发生在同一节点内或跨节点的 Pod 中。您的每个节点都有一个无类域间路由 (CIDR) 块。该块是分配给该节点内的 Pod 的一组已定义的唯一 IP 地址。这确保了每个 pod 都被提供了一个唯一的 IP,而不管它在哪个节点。

当 Pod 需要通信时,会使用虚拟以太网设备 (VED) 或 veth 对来连接 Pod。Veth 对是分布在命名空间中的耦合网络接口。一对中的一个分配给根命名空间,另一个分配给 pod 命名空间。然后,VED 用作两个命名空间之间的中介连接。

Pod 到服务网络

Kubernetes 旨在允许根据需要动态替换 pod。这意味着 pod IP 地址不是持久的,除非采取特殊的预防措施,例如有状态的应用程序。为了解决这个问题并确保保持与 Pod 之间的通信,Kubernetes 使用了服务。

Kubernetes 服务管理 pod 状态并使您能够随时间跟踪 pod IP 地址。这些服务通过将单个虚拟 IP(集群 IP)分配给一组 pod IP 来抽象 pod 地址。然后,发送到虚拟 IP 的任何流量都会分发到相关联的 pod。


此服务 IP 允许根据需要创建和销毁 pod,而不会影响整体通信。它还使 Kubernetes 服务能够充当集群内负载均衡器,根据需要在关联的 pod 之间分配流量。

互联网到服务网络

大多数部署所需的最终网络情况是在 Internet 和服务之间。无论您是将 Kubernetes 用于内部还是外部应用程序,您通常都需要 Internet 连接。这种连接使用户能够访问您的服务和分布式团队进行协作。

在设置外部访问时,您需要使用两种技术——出口和入口。您可以使用白名单或黑名单来设置这些策略,以控制进出网络的流量。

  • Egress(出口):出口是将流量从您的节点路由到外部连接的过程。它通常通过连接到您的虚拟私有云 (VPC) 的 Internet 网关完成。此网关使用网络地址转换 (NAT) 在您的用户和您的节点所在的机器之间映射 IP。但是,它无法映射到您节点上的各个 Pod。对于这一步,Kubernetes 使用 IP 表和集群 IP 来完成通信。
  • Ingress:Ingress 是 Egress 的相反过程,涉及从外部客户端到您的 Kubernetes 服务的通信。它作为一组规则运行,定义允许哪些连接以及阻止哪些连接与您的服务进行通信。

结论

Kubernetes 网络使您能够在 k8s 网络内配置通信。它基于扁平网络结构,无需在主机和容器之间映射端口。但是,要强制实施此网络模型,您需要使用第三方工具(开源或付费的),例如 Flannel、Project Calico 和 Weave Net。

此外,在配置 Kubernetes 网络时,您需要考虑某些网络方面,这在传统网络中是不会遇到的。其中包括容器到容器网络、Pod 到 Pod 网络、Pod 到服务网络和 Internet 到服务网络。请务必妥善规划您的网络,因为错误配置可能会导致漏洞。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
运维 Kubernetes Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。
|
9月前
|
运维 监控 数据可视化
Python 网络请求架构——统一 SOCKS5 接入与配置管理
通过统一接入端点与标准化认证,集中管理配置、连接策略及监控,实现跨技术栈的一致性网络出口,提升系统稳定性、可维护性与可观测性。
|
12月前
|
人工智能 Kubernetes 数据可视化
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
本文回顾了一次关键词监测任务在容器集群中失效的全过程,分析了中转IP复用、调度节奏和异常处理等隐性风险,并提出通过解耦架构、动态IP分发和行为模拟优化采集策略,最终实现稳定高效的数据抓取与分析。
248 2
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
|
11月前
|
机器学习/深度学习 人工智能 监控
大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案
大型动作模型(LAMs)作为人工智能新架构,融合神经网络与符号逻辑,实现企业重复任务的自动化处理。通过神经符号集成、动作执行管道、模式学习、任务分解等核心技术,系统可高效解析用户意图并执行复杂操作,显著提升企业运营效率并降低人工成本。其自适应学习能力与上下文感知机制,使自动化流程更智能、灵活,为企业数字化转型提供坚实支撑。
646 0
大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案
|
12月前
|
存储 BI Shell
Doris基础-架构、数据模型、数据划分
Apache Doris 是一款高性能、实时分析型数据库,基于MPP架构,支持高并发查询与复杂分析。其前身是百度的Palo项目,现为Apache顶级项目。Doris适用于报表分析、数据仓库构建、日志检索等场景,具备存算一体与存算分离两种架构,灵活适应不同业务需求。它提供主键、明细和聚合三种数据模型,便于高效处理更新、存储与统计汇总操作,广泛应用于大数据分析领域。
1220 2
|
人工智能 监控 安全
NTP网络子钟的技术架构与行业应用解析
在数字化与智能化时代,时间同步精度至关重要。西安同步电子科技有限公司专注时间频率领域,以“同步天下”品牌提供可靠解决方案。其明星产品SYN6109型NTP网络子钟基于网络时间协议,实现高精度时间同步,广泛应用于考场、医院、智慧场景等领域。公司坚持技术创新,产品通过权威认证,未来将结合5G、物联网等技术推动行业进步,引领精准时间管理新时代。
|
10月前
|
数据采集 机器学习/深度学习 搜索推荐
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
MIT与丰田研究院研究发现,扩散模型的“局部性”并非源于网络架构的精巧设计,而是自然图像统计规律的产物。通过线性模型仅学习像素相关性,即可复现U-Net般的局部敏感模式,揭示数据本身蕴含生成“魔法”。
385 3
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
|
10月前
|
Kubernetes Devops API
从零到面试高手:每个 DevOps 专业人士都必须知道的 20 个 Kubernetes 架构问答
Kubernetes 是当前 DevOps、云原生和 SRE 领域的关键技能。本文总结了 20 个高频面试问题,涵盖架构组件、工作原理及核心概念,助你轻松掌握 Kubernetes 基础,提升面试与实战能力。
474 2
|
9月前
|
机器学习/深度学习 存储 缓存
115_LLM基础模型架构设计:从Transformer到稀疏注意力
大型语言模型(LLM)的架构设计是其性能的核心决定因素。从2017年Transformer架构的提出,到如今的稀疏注意力和混合专家模型,LLM架构经历了快速的演进。本文将全面探讨LLM基础架构的设计原理,深入分析Transformer的核心机制,详细介绍稀疏注意力、MoE等创新架构,并展望未来架构发展方向。通过数学推导和实践案例,为构建高效、强大的LLM提供全面指导。
1186 0
|
9月前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
420 0