参阅以下说明,以使用 Tanzu CLI 安装并配置 Cluster Autoscaler 软件包。
要求
请遵循以下要求。
- 最低 vSphere 版本为 vSphere 8 U3,包括 vCenter 和 ESXi 主机
- vSphere 8 的最低 TKr 版本为 TKr 1.27.x
- TKr 的次要版本和 Cluster Autoscaler 软件包的次要版本必须匹配
注: Autoscaler 软件包次要版本与 TKr 次要版本之间存在一对一关系。例如,如果使用的是 TKr 1.27.11,则应安装 v1.27.2 的 Autoscaler。如果版本不匹配,软件包协调将失败。
配置 vSphere 命名空间
完成置备 TKG 集群的以下必备条件任务。
- 将您的环境安装或更新到 vSphere 8 U3 和适用于 vSphere 8 的 TKr 1.27.x。
- 使用最新的 Tanzu Kubernetes 版本 创建或更新内容库。请参见管理用于 TKG 服务 集群的 Kubernetes 版本。
- 创建并配置用于托管 TKG 集群的 vSphere 命名空间。请参见配置 vSphere 命名空间 以便托管 TKG 服务 集群。
- 安装 适用于 vSphere 的 Kubernetes CLI 工具。
以下示例可用于从命令行安装工具。有关其他指导,请参见安装 适用于 vSphere 的 Kubernetes CLI 工具。
wget https://SUPERVISOR-IP-or-FQDN/wcp/plugin/linux-amd64/vsphere-plugin.zip unzip vsphere-plugin.zip chmod +x bin/kubectl* mv bin/kubectl* /usr/bin/kubectl vsphere --help rm ~/.kube/config kubectl vsphere login --insecure-skip-tls-verify --server SUPERVISOR-IP-or-FQDN --tanzu-kubernetes-cluster-namespace VSPHERE-NAMESPACE --vsphere-username VSPHERE-USER kubectl config use-context VSPHERE-NAMESPACE
- 运行
kubectl
和kubectl vsphere
以验证安装。
使用 Autoscaler 注释创建 TKG 集群
按照说明创建 TKG 集群。有关其他指导,请参见使用 Kubectl 置备 TKG 集群的工作流。
要使用 Autoscaler,您必须按此处提供的集群规范示例中的说明为集群配置 Autoscaler 标签注释。与常规集群置备不同,您不会对工作节点副本的数量进行硬编码。Kubernetes 具有基于 Autoscaler 最小和最大大小注释的副本的内置默认逻辑。由于这是新的集群,因此使用最小大小创建集群。有关详细信息,请参见
https://cluster-api.sigs.k8s.io/tasks/automated-machine-management/autoscaling。
- 使用 kubectl 对 主管 进行身份验证。
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
- 将上下文切换到将托管集群的目标 vSphere 命名空间。
kubectl config use-context tkgs-cluster-namespace
- 列出 vSphere 命名空间 中可用的虚拟机类。
只能使用绑定到目标 vSphere 命名空间 的虚拟机类。请参见对 TKG 服务 集群使用虚拟机类。
- 列出可用的持久卷存储类。
kubectl describe namespace VSPHERE-NAMESPACE-NAME
命令将返回有关 vSphere 命名空间 的详细信息,包括存储类。命令
kubectl describe storageclasses
还会返回可用的存储类,但需要 vSphere 管理员权限。 - 列出可用的 Tanzu Kubernetes 版本。
kubectl get tkr
此命令将返回此 vSphere 命名空间 中可用的 TKr 及其兼容性。请参见管理用于 TKG 服务 集群的 Kubernetes 版本。
- 使用您收集的信息来编写 TKG 集群规范 YAML 文件,其中包含所需的 Cluster Autoscaler 配置。
- 对工作节点池使用
*-min-size
个和*-max-size
个注释,在此示例中,3 表示最小数量,5 表示可以扩展的最大工作节点数。默认情况下,将创建具有 3 个工作节点的集群。 - 为 TKr 和 Autoscaler 软件包使用匹配的次要版本。
- 使用的集群
metadata.name
和metadata.namespace
值与 Autoscaler 软件包默认值一致。如果在集群规范中更改这些值,则需要在autoscaler-data-values
中修改这些值(见下文)。
#cc-autoscaler.yaml apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: tkc namespace: cluster spec: clusterNetwork: pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: class: tanzukubernetescluster controlPlane: metadata: {} replicas: 3 variables: - name: storageClasses value: - wcpglobal-storage-profile - name: vmClass value: guaranteed-medium - name: storageClass value: wcpglobal-storage-profile #minor versions must match version: v1.27.11---vmware.1-fips.1-tkg.2 workers: machineDeployments: - class: node-pool metadata: annotations: cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "3" cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "5" name: np-1
- 对工作节点池使用
- 应用集群规范。
kubectl apply -f cc-autoscaler.yaml
- 验证集群创建。
kubectl get cluster,vm
- 验证集群节点版本。
kubectl get node
在 TKG 集群上创建软件包存储库
置备 TKG 集群后,安装 Tanzu CLI 并设置软件包存储库。
- 安装 Tanzu CLI。
- 登录到集群。
rm ~/.kube/config kubectl vsphere login --insecure-skip-tls-verify --server 192.168.0.2 --tanzu-kubernetes-cluster-namespace autoscaler --vsphere-username [email protected] --tanzu-kubernetes-cluster-name cckubectl config use-context cc
- 创建软件包存储库。
#Standard package repository URL might change depending on the required cluster autoscaler version tanzu package repository add standard-repo --url projects.registry.vmware.com/tkg/packages/standard/repo:v2024.4.12 -n tkg-system tanzu package available list -n tkg-system tanzu package available get cluster-autoscaler.tanzu.vmware.com -n tkg-system
安装 Autoscaler 软件包
安装 Cluster Autoscaler 软件包。将在
kube-system
命名空间中安装 Cluster Autoscaler。
- 使用 Tanzu CLI 命令生成默认
values.yaml
。tanzu package available get cluster-autoscaler.tanzu.vmware.com/1.27.2+vmware.1-tkg.3 -n tkg-system --default-values-file-output values.yaml
- 更新软件包安装的
values.yaml
。arguments: ignoreDaemonsetsUtilization: true maxNodeProvisionTime: 15m maxNodesTotal: 0 metricsPort: 8085 scaleDownDelayAfterAdd: 10m scaleDownDelayAfterDelete: 10s scaleDownDelayAfterFailure: 3m scaleDownUnneededTime: 10m clusterConfig: clusterName: "tkc" clusterNamespace: "cluster" paused: false
- 使用 Tanzu CLI 安装 Cluster Autoscaler 软件包。
tanzu package install cluster-autoscaler-pkgi -n tkg-system --package cluster-autoscaler.tanzu.vmware.com --version 1.27.2+vmware.1-tkg.3 --values-file values.yaml
测试集群自动扩展
要测试集群自动扩展,请部署应用程序,增加副本数,并验证是否已扩展额外的工作节点以处理额外的负载。
升级自动扩展的集群
要升级自动扩展的集群,必须先暂停 Autoscaler 软件包。