TKG クラスタをアップグレードする前に、自動スケーラを一時停止する必要があります。TKr バージョンのクラスタをアップグレードした後、TKr のマイナー バージョンと一致するように自動スケーラ パッケージのバージョンを更新する必要があります。
要件
このタスクでは、TKG クラスタにクラスタ自動スケーラがインストールされていることを前提としています。kubectl を使用したクラスタ自動スケーラのインストールを参照してください。
クラスタのアップグレード前︰自動スケーラの一時停止
自動スケーラがインストールされている TKG クラスタをアップグレードする前に、まず自動スケーラ パッケージを一時停止する必要があります。
autoscaler-data-values.yaml
シークレットでpaused
のブール値をtrue
に設定して、クラスタの自動スケーラ パッケージを一時停止します。--- 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
クラスタのアップグレード
自動スケーラが一時停止したら、クラスタの更新に進みます。
- TKG クラスタの Kubernetes バージョンをアップグレードします。
TKR バージョンの編集による TKG クラスタの更新を参照してください。
クラスタのアップグレード後︰自動スケーラ パッケージのバージョンの更新
クラスタをアップグレードした後、TKr マイナー バージョンと一致するように自動スケーラ パッケージのバージョンを更新し、一時停止を無効にします。
- 対応する自動スケーラ バージョンを選択します。
TKr と自動スケーラ パッケージのマイナー バージョンが一致している必要があります。たとえば、クラスタを TKr v1.28.8 にアップグレードした場合は、自動スケーラ v1.28.x パッケージを使用する必要があります。
- ターゲット自動スケーラのバージョンを設定し、paused を false にリセットして、自動スケーラのリソースを更新します。
#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
- 自動スケーラ パッケージに更新を適用します。
kubectl apply -f autoscaler-package-upgrade.yaml
- 自動スケーラ ポッドが kube システムの名前空間内で実行されていることを確認します。
- クラスタの自動スケーラをテストします。