在升级 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 Pod 是否正在 kube-system 命名空间中运行。
  5. 测试集群 Autoscaler。

    测试 Cluster Autoscaler.