在升級 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 網繭是否正在 kube-system 命名空間中執行。
- 測試叢集 Autoscaler。