1、介绍

①主管集群(SupervisorControlPlane)

这是一个特殊的 Kubernetes 集群,它使用 ESXi 而不是 Linux 作为其工作节点。

这是通过将 Kubernetes 工作负载 Spherelets 直接集成到 ESXi 管理程序中来实现的。该集群使用 vSphere Pod 服务在 vSphere 主机上本地运行容器工作负载,利用 ESXi 管理程序的安全性、可用性和性能。

主管集群不是一个符合 Kubernetes 集群的设计,它使用 Kubernetes 来增强 vSphere。这最终能够直接在 ESXi 主机上与虚拟机一起运行 Pod,并作为 Tanzu Kubernetes 集群的管理。

②Tanzu Kubernetes 集群(TKG)

为了开发人员提供与上游 Kubernetes 一致且完全符合标准的 Kubernetes 集群,可以使用 Tanzu Kubernetes 集群(也称为“访客”集群)。

Tanzu Kubernetes 集群是一个 Kubernetes 集群,它运行在 Supervisor 层的虚拟机内,而不是在 vSphere Pod 上。

作为完全符合上游标准的 Kubernetes,它保证可以与您的所有 Kubernetes 应用程序和工具一起使用。vSphere 中的 Tanzu Kubernetes 集群使用开源集群 API 项目进行生命周期管理,而后者又使用 VM Operator 来管理组成集群的 VM。

简而言之,Tanzu Kubernetes 集群更加接近于原生的kubernets集群。

2、检查内容库

①检查方法一:(在vCenter里查看内容库)

image.png

②检查方法二:(登录控制平面虚拟机查看)

image.png

3、新建命名空间

①在集群上右键,新建命名空间

image.png

②选择部署tkg的集群,输入命名空间名称,此实例为:tkg-cluster-01。

image.png

③创建完成如下图

image.png

④其他配置

image.png

说明:

1、在左侧点击刚刚新建的【命名空间】:tkg-cluster-01

2、在【权限】选项卡处,添加该命名空间的所有者,本例所有者为 Administrator。

3、在【存储】选项卡处,选择用于该命名空间的存储的存储策略(本例为k8s)。

4、在【Tanzu Kubernets Grid服务】处,选择一个内容库,该内容库必须有所需的OVA镜像。

5、在【虚拟机服务】处,点击【管理虚拟机类】,选择一个虚拟机类去关联该命名空间(本例为best-effort-medium,该配置关系到控制节点和工作节点的虚拟机规格大小)。

4、准备Tanzu Guest Cluster集群YAML文件

①cat tkg.yaml

  1. apiVersion: run.tanzu.vmware.com/v1alpha1
  2. kind: TanzuKubernetesCluster
  3. metadata:
  4. name: web-portal ###此处定于集群名称
  5. spec:
  6. topology:
  7. controlPlane:
  8. count: 3 ###定义控制节点数量
  9. class: best-effort-medium ###定义控制节点虚拟机规格
  10. storageClass: k8s
  11. workers:
  12. count: 3 ###定义工作节点数量
  13. class: best-effort-medium ###定义工作节点虚拟机规格
  14. storageClass: k8s
  15. distribution:
  16. version: v1.20.2 ###定义控制节点和工作节点的kubernetes版本
  17. settings:
  18. network:
  19. cni:
  20. name: antrea
  21. services:
  22. cidrBlocks: ["198.51.100.0/12"]
  23. pods:
  24. cidrBlocks: ["192.0.2.0/16"]

②通过tanzu cli工具登录主管集群

kubectl-vsphere login —server 10.245.0.1 —vsphere-username administrator@vsphere.local —insecure-skip-tls-verify

image.png

③切换命名空间至tkg-cluster-01

kubectl config use-context tkg-cluster-01

image.png

④应用yaml

kubectl apply -f tkg.yaml

⑤在vCenter中可以查看tkg集群正在创建,可以通过以下命令查看

kubectl get events -w ###实时查看创建过程

kubectl get tanzukubernetesclusters

kubectl describe tanzukubernetesclusters

kubectl get virtualmachine

kubectl describe virtualmachine tgk-cluster-01-control-plane-fdx4k

④该过程会在NSX-T上自动创建2个分段、1个T1网关,1个LB,大概10分钟左右,可以用上面提供的命令查看具体进度,或者通过vCenter查看进度。

image.png

⑤TKG集群创建完成,如下图所示:根据yaml文件内容,创建了3台控制平台虚拟机,3台worker节点,组成了一个Tanzu Kubernetes Grid集群。

image.png

⑥命令行查看集群状态

kubectl describe tanzukubernetescluster

kubectl get tanzukubernetescluster

kubectl get cluster

5、登录TKG集群

①命令如下:

kubectl-vsphere login \

—insecure-skip-tls-verify \

—server https://10.245.0.1 \

—vsphere-username administrator@vsphere.local \

—tanzu-kubernetes-cluster-namespace tkg-cluster-01 \

—tanzu-kubernetes-cluster-name web-portal

②查看节点信息

kubectl get node

image.png