可以通过 kubectl 和使用 YAML 定义的集群规范调用 Tanzu Kubernetes Grid 服务 声明性 API 来置备 Tanzu Kubernetes 集群。置备集群后,可以使用 kubectl 运行集群并在其中部署工作负载。
该工作流提供了端到端集群置备过程。每个步骤都包含链接,可用于了解有关特定任务的详细信息。
过程
- 下载并安装 适用于 vSphere 的 Kubernetes CLI 工具。请参见下载并安装 适用于 vSphere 的 Kubernetes CLI 工具。
- 使用 kubectl 的 vSphere 插件 向 主管集群 进行身份验证。请参见以 vCenter Single Sign-On 用户的身份连接到 主管集群。
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- 使用 kubectl,将上下文切换到计划置备 Tanzu Kubernetes 集群的 vSphere 命名空间。
kubectl config get-contexts
kubectl config use-context SUPERVISOR-NAMESPACE
例如:
kubectl config use-context tkgs-cluster-ns
- 列出可用的虚拟机类绑定。请参见用于 Tanzu Kubernetes 集群的虚拟机类。
使用以下命令列出部署集群的
vSphere 命名空间 中可用的所有虚拟机类绑定。
kubectl get virtualmachineclassbindings
注: 命令
kubectl get virtualmachineclasses
列出
主管集群 上存在的所有虚拟机类。由于必须将虚拟机类与
vSphere 命名空间 关联,因此只能使用这些绑定到目标命名空间的虚拟机类。
- 通过描述命名空间获取可用的默认存储类。
kubectl describe namespace SUPERVISOR-NAMESPACE
- 列出可用的 Tanzu Kubernetes 版本。
kubectl get tanzukubernetesreleases
注: 命令
kubectl get virtualmachineimages
返回有关虚拟机的常规信息。
- 构建用于置备 Tanzu Kubernetes 集群的 YAML 文件。
- 从其中一个示例 YAML 文件开始。请参见使用 Tanzu Kubernetes v1alpha1 API 置备 Tanzu Kubernetes Grid 服务 集群的示例。
例如,以下 YAML 文件使用所有可用的默认设置置备最小集群:
apiVersion: run.tanzu.vmware.com/v1alpha1 #TKGS API endpoint
kind: TanzuKubernetesCluster #required parameter
metadata:
name: tkgs-cluster-1 #cluster name, user defined
namespace: tgks-cluster-ns #vsphere namespace
spec:
distribution:
version: v1.19 #Resolves to latest TKR 1.19 version
topology:
controlPlane:
count: 1 #number of control plane nodes
class: best-effort-medium #vmclass for control plane nodes
storageClass: vwt-storage-policy #storageclass for control plane
workers:
count: 3 #number of worker nodes
class: best-effort-medium #vmclass for worker nodes
storageClass: vwt-storage-policy #storageclass for worker nodes
- 使用从上述命令输出收集的信息填充集群 YAML,包括命名空间、存储类和虚拟机类。
- 根据需要,参阅集群配置参数的完整列表,自定义集群。请参见使用 Tanzu Kubernetes Grid 服务 v1alpha1 API Tanzu Kubernetes 集群的配置参数。
- 将文件保存为
tkgs-cluster-1.yaml
或类似格式。
- 通过运行以下 kubectl 命令置备集群。
kubectl apply -f CLUSTER-NAME.yaml
例如:
kubectl apply -f tkgs-cluster-1.yaml
预期结果:
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 created
- 使用 kubectl 监控集群节点的部署。请参见使用 kubectl 监控 Tanzu Kubernetes 集群状态。
kubectl get tanzukubernetesclusters
示例结果:
NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE
tkgs-cluster-2 1 3 v1.19.7+vmware.1-tkg.1.c40d30d 7m59s running
- 使用 vSphere Client 监控集群节点的部署。请参见使用 vSphere Client 监控 Tanzu Kubernetes 集群状态。
例如,在vSphere清单中,应看到命名空间中部署的虚拟机节点。
- 运行其他命令以验证集群置备。请参见使用 Tanzu Kubernetes 集群操作命令。
例如:
kubectl get tanzukubernetescluster,cluster-api,virtualmachinesetresourcepolicy,virtualmachineservice,virtualmachine
- 使用 kubectl 的 vSphere 插件,登录到集群。请参见以 vCenter Single Sign-On 用户身份连接到 Tanzu Kubernetes 集群。
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME \
--tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
- 使用以下 kubectl 命令验证集群置备。
kubectl cluster-info
kubectl get nodes
kubectl get namespaces
kubectl api-resources
- 部署示例工作负载并验证集群创建。请参见在 Tanzu Kubernetes 集群上部署工作负载。
- 部署 TKG 扩展,使集群正常运行。请参见在 Tanzu Kubernetes 集群上部署 TKG 软件包。