Condividi tramite


Aggiornare un controller dei dati di Azure Arc connesso indirettamente tramite l'interfaccia della riga di comando

Questo articolo che come aggiornare un controller dei dati abilitato per Azure Arc connesso indirettamente tramite l'interfaccia della riga di comando di Azure (az).

Durante un aggiornamento di un controller dei dati, è possibile aggiornare parti del piano di controllo dei dati, ad esempio le definizioni di risorse personalizzate e i contenitori. Un aggiornamento del controller dei dati non causerà tempi di inattività per i servizi dati (Istanza gestita di SQL o server PostgreSQL).

Prerequisiti

È necessario un controller dei dati connesso indirettamente con imageTag v1.0.0_2021-07-30 o versione successiva.

Per controllare la versione, eseguire:

kubectl get datacontrollers -n <namespace> -o custom-columns=BUILD:.spec.docker.imageTag

Installare gli strumenti

Prima di procedere con le attività descritte in questo articolo, è necessario installare:

Gli esempi in questo articolo usano parentesi angolari < ... > per identificare i valori che è necessario sostituire prima di eseguire lo script. Sostituire le parentesi quadre e i valori all'interno delle parentesi quadre.

La versione dell'estensione arcdata e la versione dell'immagine sono correlate. Nel log delle versioni verificare che la versione dell'estensione arcdata sia corretta e corrisponda alla versione dell'immagine a cui si vuole eseguire l'aggiornamento.

Visualizzare le immagini disponibili e scegliere una versione

Eseguire il pull dell'elenco delle immagini disponibili per il controller dei dati con il comando seguente:

az arcdata dc list-upgrades --k8s-namespace <namespace>

Il comando precedente restituisce un output simile all'esempio seguente:

Found 2 valid versions.  The current datacontroller version is v1.0.0_2021-07-30.
v1.1.0_2021-11-02
v1.0.0_2021-07-30

Aggiornare il controller dei dati

Questa sezione spiega come aggiornare un controller dei dati connesso indirettamente.

Nota

Alcuni dei livelli e delle modalità dei servizi dati sono disponibili a livello generale e alcuni in anteprima. Se si installano servizi con disponibilità generale e in anteprima nello stesso controller dei dati, non è possibile eseguire l'aggiornamento sul posto. Per eseguire l'aggiornamento, eliminare tutte le istanze di database non con disponibilità generale. È possibile trovare l'elenco dei servizi con disponibilità generale e in anteprima nelle note sulla versione.

Per i percorsi di aggiornamento supportati, vedere Aggiornare i servizi dati abilitati per Azure Arc.

Aggiorna

È necessario connettersi ed eseguire l'autenticazione a un cluster Kubernetes e disporre di un contesto Kubernetes esistente selezionato prima di iniziare l'aggiornamento del controller dei dati di Azure Arc.

È prima possibile eseguire una prova. L'esecuzione di prova convalida l'esistenza del registro, dello schema delle versioni e del token di autorizzazione del repository privato (se usato). Per eseguire un'esecuzione di prova, usare il parametro --dry-run nel comando az arcdata dc upgrade. Ad esempio:

az arcdata dc upgrade --desired-version <version> --k8s-namespace <namespace> --dry-run --use-k8s

L'output del comando precedente è:

Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
****Dry Run****
Arcdata Control Plane would be upgraded to: <version-tag>

Per aggiornare il controller dei dati, eseguire il comando az arcdata dc upgrade, specificando il tag immagine con --desired-version.

az arcdata dc upgrade --name <data controller name> --desired-version <image tag> --k8s-namespace <namespace> --use-k8s

Esempio:

az arcdata dc upgrade --name arcdc --desired-version v1.7.0_2022-05-24 --k8s-namespace arc --use-k8s

L'output del comando precedente indica lo stato dei passaggi:

Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Creating service account: arc:cr-upgrade-worker
Creating cluster role: arc:cr-upgrade-worker
Creating cluster role binding: arc:crb-upgrade-worker
Cluster role binding: arc:crb-upgrade-worker created successfully.
Cluster role: arc:cr-upgrade-worker created successfully.
Service account arc:cr-upgrade-worker has been created successfully.
Creating privileged job arc-elevated-bootstrapper-job

Monitorare lo stato dell'aggiornamento

L'aggiornamento è un processo articolato in due parti. Il controller viene aggiornato per primo e quindi viene aggiornato lo stack di monitoraggio. È possibile monitorare lo stato di avanzamento dell'aggiornamento con l'interfaccia della riga di comando.

CLI

 az arcdata dc status show --name <data controller name> --k8s-namespace <namespace> --use-k8s

Al termine dell'aggiornamento, l'output sarà:

Ready

Risoluzione dei problemi

Quando la versione desiderata è impostata su una versione specifica, il processo del caricatore di bootstrap tenterà di eseguire l'aggiornamento a tale versione fino a quando l'operazione non ha esito positivo. Se l'aggiornamento ha esito positivo, la proprietà RunningVersion della specifica viene aggiornata in base alla nuova versione. Gli aggiornamenti potrebbero non riuscire in scenari in cui i tag immagine non sono corretti, risulta impossibile connettersi al registro o al repository, la CPU o la memoria allocata ai contenitori non è sufficiente oppure le risorse di archiviazione sono insufficienti.

  1. Eseguire il comando seguente per verificare se uno dei pod è associato allo stato Error o ha un numero elevato di riavvii:

    kubectl get pods --namespace <namespace>
    
  2. Per esaminare gli eventi e verificare l'eventuale presenza di un errore, eseguire:

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Per ottenere l'elenco dei contenitori nei pod, eseguire:

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. Per ottenere i log per un contenitore, eseguire:

    kubectl logs <pod name> <container name> --namespace <namespace>
    

Per visualizzare gli errori comuni e come risolverli, consultare Risorse per la risoluzione dei problemi.