Prima di aggiornare un cluster TKG, è necessario sospendere Autoscaler. Dopo aver aggiornato la versione TKr del cluster, è necessario aggiornare la versione del pacchetto di Autoscaler in modo che corrisponda alla versione secondaria di TKr.

Requisiti

Questa attività presuppone che sia stato installato Cluster Autoscaler in un cluster TKG. Vedere Installazione di Cluster Autoscaler tramite kubectl.

Aggiornamento precedente all'aggiornamento del cluster: sospensione dell'Autoscaler

Prima di aggiornare un cluster TKG con l'Autoscaler installato, è innanzitutto necessario sospendere il pacchetto di Autoscaler.
  1. Sospendere il pacchetto Autoscaler del cluster impostando il valore booleano paused su true nel segreto 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. Applicare gli aggiornamenti al segreto autoscaler-data-values.
    kubectl apply -f autoscaler-data-values.yaml

Aggiornamento del cluster

Dopo aver sospeso l'Autoscaler, procedere con l'aggiornamento del cluster.
  1. Aggiornare la versione di Kubernetes del cluster TKG.

    Vedere Aggiornamento di un cluster TKG modificando la versione di TKR.

Dopo l'aggiornamento del cluster: aggiornamento della versione del pacchetto Autoscaler

Dopo aver aggiornato il cluster, aggiornare la versione del pacchetto Autoscaler in modo che corrisponda alla versione secondaria di TKr e disabilitare la sospensione.
  1. Scegliere la versione di Autoscaler corrispondente.

    Le versioni secondarie di TKr e il pacchetto Autoscaler devono corrispondere. Ad esempio, se si aggiorna il cluster a TKr v1.28.8, sarà necessario utilizzare il pacchetto Autoscaler v1.28.x.

  2. Aggiornare le risorse di Autoscaler impostando la versione di Autoscaler di destinazione e reimpostando la sospensione su 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. Applicare gli aggiornamenti al pacchetto Autoscaler.
    kubectl apply -f autoscaler-package-upgrade.yaml
  4. Verificare che il pod di Autoscaler sia in esecuzione nello spazio dei nomi kube-system.
  5. Testare l'Autoscaler del cluster.

    Esecuzione del test di Autoscaler del cluster.