在升级 TKG 集群之前,必须暂停 Autoscaler。升级集群的 TKr 版本后,必须更新 Autoscaler 软件包版本以匹配 TKr 次要版本。
要求
此任务假定您已在 TKG 集群上安装 Cluster Autoscaler。请参见使用 Kubectl 安装 Cluster Autoscaler。
集群升级前:暂停 Autoscaler
在升级安装了 Autoscaler 的 TKG 集群之前,必须先暂停 Autoscaler 软件包。
- 通过将
autoscaler-data-values.yaml
密钥中的paused
布尔值设置为true
来暂停集群 Autoscaler 软件包。--- apiVersion: v1 kind: Secret metadata: name: autoscaler-data-values namespace: tkg-system stringData: values.yml: | --- arguments: ignoreDaemonsetsUtilization: true maxNodeProvisionTime: 15m maxNodesTotal: 0 metricsPort: 8085 scaleDownDelayAfterAdd: 10m scaleDownDelayAfterDelete: 10s scaleDownDelayAfterFailure: 3m scaleDownUnneededTime: 10m clusterConfig: clusterName: "gc1" clusterNamespace: "cluster" paused: true
- 将更新应用于
autoscaler-data-values
密钥。kubectl apply -f autoscaler-data-values.yaml
升级集群
暂停 Autoscaler 后,继续更新集群。
- 升级 TKG 集群的 Kubernetes 版本。
集群升级后:更新 Autoscaler 软件包版本
升级集群后,更新 Autoscaler 软件包的版本以匹配 TKr 次要版本,并禁用暂停。
- 选择相应的 Autoscaler 版本。
TKr 和 Autoscaler 软件包的次要版本必须匹配。例如,如果将集群升级到 TKr v1.28.8,您将需要使用 Autoscaler v1.28.x 软件包。
- 通过设置目标 Autoscaler 版本并将“暂停”重置为 false 来更新 Autoscaler 资源。
#autoscaler-package-upgrade.yaml --- apiVersion: packaging.carvel.dev/v1alpha1 kind: PackageInstall metadata: name: autoscaler namespace: tkg-system spec: serviceAccountName: autoscaler-sa packageRef: refName: cluster-autoscaler.tanzu.vmware.com versionSelection: constraints: 1.28.0+vmware.1-tkg.1 values: - secretRef: name: autoscaler-data-values --- apiVersion: v1 kind: Secret metadata: name: autoscaler-data-values namespace: tkg-system stringData: values.yml: | --- arguments: ignoreDaemonsetsUtilization: true maxNodeProvisionTime: 15m maxNodesTotal: 0 metricsPort: 8085 scaleDownDelayAfterAdd: 10m scaleDownDelayAfterDelete: 10s scaleDownDelayAfterFailure: 3m scaleDownUnneededTime: 10m clusterConfig: clusterName: "gc1" clusterNamespace: "cluster" paused: false
- 将更新应用于 Autoscaler 软件包。
kubectl apply -f autoscaler-package-upgrade.yaml
- 验证 Autoscaler Pod 是否正在 kube-system 命名空间中运行。
- 测试集群 Autoscaler。