Avant la mise à niveau d'un cluster TKG, l'autoscaler doit être mis suspendu. Après avoir mis à niveau la version de TKr du cluster, vous devez mettre à jour la version du module autoscaler pour qu'elle corresponde à la version mineure de TKr.

Configuration requise

Cette tâche part du principe que vous avez installé l'autoscaler du cluster sur un cluster TKG. Reportez-vous à la section Installer l'autoscaler de cluster à l'aide de Kubectl.

Avant la mise à niveau du cluster : suspendre autoscaler

Avant de mettre à niveau un cluster TKG avec autoscaler installé, vous devez d'abord suspendre le module autoscaler.
  1. Suspendez le module autoscaler du cluster en définissant la valeur booléenne paused sur true dans le secret autoscaler-data-values.yaml.
    ---
    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. Appliquez les mises à jour du secret autoscaler-data-values
    kubectl apply -f autoscaler-data-values.yaml

Mettre le cluster à niveau

Une fois autoscaler suspendu, poursuivez la mise à jour du cluster.
  1. Mettez à niveau la version de Kubernetes du cluster TKG.

    Reportez-vous à la section Mettre à jour un cluster TKG en modifiant la version de TKR.

Après la mise à niveau du cluster : mettre à jour la version du module autoscaler

Après la mise à niveau du cluster, mettez à jour la version du module autoscaler pour qu'elle corresponde à la version mineure de la TKr et désactivez la suspension.
  1. Choisissez la version d'autoscaler correspondante.

    Les versions mineures de TKr et du module autoscaler doivent correspondre. Par exemple, si vous avez mis à niveau le cluster vers TKr v1.28.8, vous devrez utiliser le module autoscaler v1.28.x.

  2. Mettez à jour les ressources autoscaler en définissant la version d'autoscaler cible et en réinitialisation l'état suspendu sur 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
  3. Appliquez les mises à jour au module autoscaler.
    kubectl apply -f autoscaler-package-upgrade.yaml
  4. Vérifiez que l'espace d'autoscaler s'exécute dans l'espace de noms kube-system.
  5. Testez l'autoscaler du cluster.

    Tester l'autoscaler du cluster.