容器集群网络规划

最近更新时间:2024-06-12 10:32:42

我的收藏

介绍

在 TKE 中创建集群时,您需要根据具体的业务情况进行集群、VPC、子网以及节点可用区的规划,本文将介绍 VPC 环境下集群内各个地址的作用,以及如何进行集群网络规划。

基本概念

Node 子网(节点网段):在 TKE 集群中,worker 节点的 IP 分配的网段。
Pod 子网(容器网段):在 TKE 集群中,pod 的 IP 分配的网段。
Service 子网(service 网段):在 TKE 集群,集群内 ClusterIP 或者 Loadbalancer 类型的 service 相应的 IP 网段。

集群与 vpc 规划

在使用 TKE 容器服务时,您首先需要根据业务的需要进行 VPC 的规划,具体可以分为两种情况。

多个 TKE 集群使用同一个 vpc

在创建 TKE 集群时,需要规划 Pod 子网,Node 子网,Service 子网。
需要保证每个 TKE 集群的 Pod 子网,Node 子网不重合,且不和其他 TKE 集群重合。
Service 子网不能和 Node 子网以及 Pod 子网重合,Service 子网只能在集群内使用,不能在集群外使用。
每个 TKE 集群中的节点将从集群的 Node 子网中分配 IP,Pod 从集群的 Pod 子网中分配 IP,同一个 VPC 内的 TKE 集群的 Pod 和 Node 可以和其他集群的 Pod 以及 Node 互通。




多个 TKE 集群使用不同的 VPC

在创建 TKE 集群时,为不同的 TKE 集群选择不同的 VPC,在单个 VPC 内规划 Node 子网,Pod 子网,和 Service子网时,需要保证三个子网不重合。
当需要多个 VPC 的集群互通时可用通过云联网实现多个 VPC 打通,不同集群的 Node 子网和 Pod 子网不可以重合。




VPC-CNI 模式单集群子网与可用区规划

在创建单个 TKE 集群时,集群内的所有节点必须在一个 VPC 内。
规划 Pod 子网,所有的 Pod IP 从 Pod 子网中分配,当单个 Pod 子网 IP 不足时,可以通过添加子网来解决。
规划 Node 子网,由于 VPC-CNI 模式下同节点内主网卡和辅助网卡的 IP 必须在一个可用区的约束,当创建包含多个可用区 worker 节点的集群时,需要添加按需规划多个可用区的 Node 子网。
规划 Service 子网,用于集群内通过 ClusterIP 方式进行服务的访问,如果有多集群互通的需求,建议不同集群的 Service 子网不冲突。
在创建 TKE 集群时可以按需规划包含单可用区节点的集群和包含多可用区节点的集群。

单可用区集群网络规划

创建单个可用区节点的 TKE 集群时,需要选择要创建集群的地域,VPC 信息,并且选择 Pod 子网和 Service 子网,且 Servcie 子网和 Pod 子网不重合,在添加节点时只能添加 Pod 子网所在可用区的节点。



当 Pod 子网容量不足时,可以通过添加 Pod 子网来进行扩容。




多可用区集群网络规划

创建多个可用区节点的 TKE 集群时,需要选择要创建集群的地域,VPC 信息,并且选择多个可用区的 Pod 子网和 Servcie子网,且 Servcie 子网和 Pod 子网不重合,在添加节点时只能添加 Pod 子网所在可用区的节点。
如果需要新增包含其他可用区的节点时,需要先规划新增可用区的 Pod 子网和 Node 子网,并在集群中添加包含该可用区的 Pod 子网,之后在该可用区中添加 worker 节点。




TKE 集群中添加超级节点池

用户可以在 TKE 集群中添加超级节点池来使用 Serverless Pod,添加超级节点池时,需要先确定要添加的可用区,并选择 Pod 子网,Serverless Pod 将从该子网分配。
当超级节点需要多个子网,请添加多个节点池并选择不同的子网,超级节点的 pod 从相应的节点池的子网中分配 ip。



当需要使用多个可用区的 Serverless Pod 时,可以新建多个超级节点并选择不同的可用区来满足。




集群规划实践

单可用区单子网集群
用户在地域A vpc1 10.2.0.0/16 内单独划出两个17位的子网10.2.0.0/17和10.2.128.0/17 分别作为 Node 子网和 Pod 子网,同时规划172.19.0.0/20子网作为Service 子网。



单可用区多子网集群
用户在单集群 Pod IP 分配不足的情况下时,可以添加多个 Pod 子网,具体的集群形态如图:


多可用区集群
用户在地域B构建多可用区集群,其中部分节点从可用区A购买,且规划 Node 子网为10.0.0.0/17,Pod 子网为10.0.128.0/17, 另外一部分节点从可用区B购买,其中 Node 子网为10.1.0.0/17,Pod 子网为10.1.128.0/17,Service 子网为 172.17.0.0/17。
注意:
由于 VPC 主网卡和辅助网卡必须在一个可用区的限制,可用区 A 节点的 pod 不能使用可用区 B 的 pod 子网,只能从可用区 A 的 Pod 子网中分配 IP。



集群类型
适用场景
优点
缺点
单可用区单集群
单元化业务部署,将微服务上下游部署在一个可用区,减少跨可用区部署的延迟。
集群规划简单,ip 分配不冲突,减少跨可用区访问延迟。
无法利用单集群拓扑打散特性,业务可自行做多集群单元化部署。
多可用区单集群
利用集群节点的 az 分布特性将 workload 打散在不同的可用区。
可以利用多 az 打散特性进行多 az 容灾。
跨可用区访问时会出现1-2ms延迟。
单可用区单集群
(TKE 集群共享 Node 子网和 Pod 子网)
不推荐
-
容易出现 IP 抢占导致分配延迟和失败。

Global Router 模式集群网络规划

用户在创建 Global Router 模式的集群时,需要进行 Node 子网,Pod 子网和 Service 子网的规划。
Global Router 模式下 Pod 子网内 IP 和该 VPC 内其他子网互通,所以需要保证 Pod 子网不与 VPC 内其他子网重合,同时不能与 Servcie 子网重合。
确认单节点上 Pod 的数量上限,每个节点的容器子网会按照 Pod 子网/Pod 数量上限来预分配一个网段,之后节点上的 Pod 将从该预分配的网段分配 IP。