容器云架构 | 了解 Kubernetes 网络模型
2023-08-07 16:29:56 知识百科 173观看
摘要 Kubernetes 网络使您能够在 k8s 网络内配置通信。它基于扁平网络结构,无需在主机和容器之间映射端口。Kubernetes 网络支持容器化组件之间的通信。这种网络模型的主要优点是

Kubernetes 网络使您能够在 k8s 网络内配置通信。它基于扁平网络结构,无需在主机和容器之间映射端口。HXV28资讯网——每日最新资讯28at.com

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

 HXV28资讯网——每日最新资讯28at.com

什么是 Kubernetes 网络?HXV28资讯网——每日最新资讯28at.com

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

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

常见的 Kubernetes 网络实现HXV28资讯网——每日最新资讯28at.com

使用 Kubernetes 时,平台会强制实施需要第三方工具来实现的网络模型。您可以选择许多第三方工具,但以下三个是流行的选项。HXV28资讯网——每日最新资讯28at.com

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

在标准的 Kubernetes 部署中,您应该注意多种网络变化。以下是需要了解的最常见的网络情况。HXV28资讯网——每日最新资讯28at.com

容器到容器网络HXV28资讯网——每日最新资讯28at.com

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

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

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

Pod 到 Pod 网络HXV28资讯网——每日最新资讯28at.com

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

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

Pod 到服务网络HXV28资讯网——每日最新资讯28at.com

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

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

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

互联网到服务网络HXV28资讯网——每日最新资讯28at.com

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

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

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

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

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

 HXV28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-119-2178-0.html容器云架构 | 了解 Kubernetes 网络模型

声明:本网页内容旨在传播知识,不代表本站观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。

显示全文

上一篇:云原生 PostgreSQL 集群 - PGO:五分钟快速上手

下一篇:云安全日报220224:IBM混合云数据库发现执行任意代码漏洞,需要尽快升级

最新热点