在升級 TKG 叢集之前,必須暫停 Autoscaler。升級叢集的 TKr 版本後,必須更新 Autoscaler 套件版本以與 TKr 次要版本相符。

需求

此工作假定您已在 TKG 叢集上安裝 Cluster Autoscaler。請參閱使用 Kubectl 安裝 Cluster Autoscaler

叢集升級前:暫停 Autoscaler

在升級已安裝 Autoscaler 的 TKG 叢集之前,必須先暫停 Autoscaler 套件。
  1. 透過將 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
  2. 將更新套用至 autoscaler-data-values 密碼。
    kubectl apply -f autoscaler-data-values.yaml

升級叢集

暫停 Autoscaler 後,繼續更新叢集。
  1. 升級 TKG 叢集的 Kubernetes 版本。

    請參閱透過編輯 TKR 版本更新 TKG 叢集

叢集升級後:更新 Autoscaler 套件版本

升級叢集後,更新 Autoscaler 套件的版本以與 TKr 次要版本相符,並停用暫停。
  1. 選擇相應的 Autoscaler 版本。

    TKr 和 Autoscaler 套件的次要版本必須相符。例如,如果已將叢集升級到 TKr v1.28.8,您將需要使用 Autoscaler v1.28.x 套件。

  2. 透過設定目標 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
  3. 將更新套用至 Autoscaler 套件。
    kubectl apply -f autoscaler-package-upgrade.yaml
  4. 驗證 Autoscaler 網繭是否正在 kube-system 命名空間中執行。
  5. 測試叢集 Autoscaler。

    測試叢集 Autoscaler.