Share via


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

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

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

Prerequisiti

È necessario un titolare del trattamento 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. Verificare di avere la versione corretta arcdata dell'estensione corrispondente alla versione dell'immagine a cui si vuole eseguire l'aggiornamento nel log della versione.

Visualizzare le immagini disponibili e scegliere una versione

Eseguire il pull dell'elenco delle immagini disponibili per il controller 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 titolare del trattamento dei dati

Questa sezione illustra come aggiornare un titolare del trattamento dei dati connesso indirettamente.

Nota

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

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

Aggiornamento

È 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 dati di Azure Arc.

È possibile eseguire prima una corsa asciutta. L'esecuzione asciutta convalida l'esistenza del Registro di sistema, lo schema della versione e il token di autorizzazione del repository privato (se usato). Per eseguire un'esecuzione asciutta, usare il --dry-run parametro nel az arcdata dc upgrade comando . Ad esempio:

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

L'output per il 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 dati, eseguire il az arcdata dc upgrade comando , 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 per il comando precedente mostra 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 in due parti. Prima di tutto il controller viene aggiornato, 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 programma di avvio automatico tenterà di eseguire l'aggiornamento a tale versione fino a quando non riesce. Se l'aggiornamento ha esito positivo, la RunningVersion proprietà della specifica viene aggiornata alla nuova versione. Gli aggiornamenti potrebbero non riuscire per scenari come un tag di immagine non corretto, non è possibile connettersi al Registro di sistema o al repository, cpu o memoria insufficiente allocata ai contenitori o spazio di archiviazione insufficiente.

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

    kubectl get pods --namespace <namespace>
    
  2. Per esaminare gli eventi per verificare se si verifica un errore, eseguire

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Per ottenere un 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, vedere Risoluzione dei problemi relativi alle risorse.