vSphere with Tanzu是VMware太平洋计划的后续命名,我们在前面的讨论过WCP平台的安装,即是现在的vSphere with Tanzu。该平台是vSphere 7+和NSX-T共同形成,本文我们主要讨论NSX-T在本平台的网络功能和特性。
整体架构
vSphere with Tanzu 解决方案的基础是由 vSphere 7+、NSX-T 和 Storage 组成的 VMware SDDC 堆栈。该解决方案将 vSphere 集群转换为工作负载平台,每个 vSphere 集群都具有 Kubernetes 控制平面,称为主管集群 Supervisor Cluster。
主管集群控制平面包含很多不是 Kubernetes 的东西。V记扩展了 K8S 以支持通过 VM Operator API 部署 VM,同时,通过 Cluster API 部署 TKG–相对独立的K8S cluster。
vSphere with Tanzu工作模式
主管集群允许 ITops 团队,使用熟悉的vCenter图形管理界面,将命名空间定义为管理单元,以定义资源约束、身份验证/RBAC 并隔离。 Devops 团队可以在命名空间中部署选择的工作负载,即 PODvm、TKG 集群和 VM。
IP 地址设计
主管集群地址
当我们启用工作负载管理后(vCenter->Menu->Workload Management->ENABLE),系统会建立三个管理VM,该地址和vCenter要有可达性,推荐和vCenter一个子网。
如上图,系统要求输入起始的IP地址,一共要用到5个地址:
- 每个Supervisor Control plane VM占一个,
- 一个用于控制平面的浮动IP,
- 一个用于滚动升级。
启动好工作负载管理后,可以看到系统生成了三个VM Master节点,并把集群里的主机变成了Worker节点
[root@hop ~]# kubectl get node -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
42326254b49605f5fca490fd3ad3229e Ready master 24d v1.19.1+wcp.3 172.211.0.3 <none> VMware Photon OS/Linux 4.19.174-4.ph3-esx containerd://1.3.3
4232d828e38d98c395daeed9950c8dbc Ready master 24d v1.19.1+wcp.3 172.211.0.4 <none> VMware Photon OS/Linux 4.19.174-4.ph3-esx containerd://1.3.3
4232e0c5ff1dcdaa3f535e4099456c2b Ready master 24d v1.19.1+wcp.3 172.211.0.2 <none> VMware Photon OS/Linux 4.19.174-4.ph3-esx containerd://1.3.3
esx-01a.corp.tanzu Ready agent 24d v1.19.1-sph-b0161d9 192.168.110.51 <none> <unknown> <unknown> <unknown>
esx-03a.corp.tanzu Ready agent 24d v1.19.1-sph-b0161d9 192.168.110.53 <none> <unknown> <unknown> <unknown>
esx-05a.corp.tanzu Ready agent 24d v1.19.1-sph-b0161d9 192.168.110.55 <none> <unknown> <unknown> <unknown>
esx-06a.corp.tanzu Ready agent 24d v1.19.1-sph-b0161d9 192.168.110.56 <none> <unknown> <unknown> <unknown>
本例里,我们使用192.168.110.91为起始主管集群控制VM地址。
主管集群IPAM
主管集群会用到四组IP地址段
名称 | 说明 | 本实验使用 | 备注 |
---|---|---|---|
Pods | 命名空间中工作负载的私有 IPv4 地址池,为pod提供地址 | 172.211.0.0/16 | |
Services | 服务 IPv4 地址池,用于通过 K8s ClusterIP 在命名空间内的服务 | 172.96.0.0/16 | |
Ingress | 公共 IPv4 地址池,通过 K8s 类型负载均衡器、Ingress 和 Cloudprovider 负载均衡器,为Tanzu Kubernetes 集群和 Supervisor 集群提供 Supervisor 集群之外的服务 | 172.80.0.0/16 | |
Egress | 公共 IPv4 地址池,用于 Supervisor 集群向外的 NAT 流量 | 172.60.0.0/16 |
主管集群的路由及分段设计
- 主管集群内的为每个Namespace提供一个共享T1网关,该网关为vSphere pod和该Namespace上运行的TKG提供网络服务
- 在以上T1网关上,为vSphere pod分配一个分段,每个TKG集群分配一个分段
- Supervisor Cluster的控制平面VM独享一个T1网关并分配一个分段
- TKG集群内部的网络使用Calico或Antrea(默认)