Partager via


Mettre à niveau un contrôleur de données Azure Arc connecté indirectement à l’aide de l’interface CLI

Cet article explique comment mettre à niveau un contrôleur de données Azure Arc connecté indirectement à l’aide de l’interface de ligne de commande Azure (az).

Lors d’une mise à niveau du contrôleur de données, des parties du plan de contrôle des données, comme les définitions de ressources personnalisées (CRD) et les conteneurs peuvent être mises à niveau. Une mise à niveau du contrôleur de données n’entraîne pas de temps d’arrêt pour les services de données (SQL Managed Instance ou serveur PostgreSQL).

Prérequis

Vous aurez besoin d’un contrôleur de données connecté indirectement avec imageTag v1.0.0_2021-07-30 ou une version ultérieure.

Pour vérifier la version, exécutez :

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

Installer des outils

Avant de pouvoir effectuer les tâches de cet article, vous devez disposer des éléments suivants :

Les exemples de cet article utilisent des crochets pointus < ... > pour identifier les valeurs que vous devez remplacer avant d’exécuter le script. Remplacez les crochets et les valeurs à l’intérieur des crochets.

La version de l’extension arcdata et la version de l’image sont associées. Vérifiez que vous disposez de la version d’extension correcte arcdata qui correspond à la version d’image vers laquelle vous souhaitez effectuer une mise à niveau dans le journal des versions.

Afficher les images disponibles et choisir une version

Extrayez la liste des images disponibles pour le contrôleur de données à l’aide de la commande suivante :

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

La commande ci-dessus renvoie une sortie similaire à l’exemple suivant :

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

Mettre à niveau le contrôleur de données

Cette section montre comment mettre à niveau un contrôleur de données connecté indirectement.

Remarque

Certains des niveaux et modes des services de données sont généralement disponibles (GA), tandis que d’autres sont en préversion. Si vous installez les services disponibles en GA et en préversion sur le même contrôleur de données, vous ne pouvez pas opérer de mise à niveau sur place. Pour mettre à niveau, supprimez toutes les instances de base de données non GA. Vous trouverez la liste des services disponibles en GA et en préversion dans les notes de publication.

Pour connaître les chemins de mise à niveau pris en charge, consultez Mettre à niveau les services de données avec Azure Arc.

Mettre à jour

Vous devez vous connecter et vous authentifier auprès d’un cluster Kubernetes et avoir sélectionné un contexte Kubernetes existant avant de commencer la mise à niveau du contrôleur de données Azure Arc.

Vous pouvez effectuer d’abord un test. Le test valide l’existence du registre, le schéma de version et le jeton d’autorisation du référentiel privé (le cas échéant). Pour effectuer un test, utilisez le paramètre --dry-run dans la commande az arcdata dc upgrade. Par exemple :

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

La sortie de la commande précédente est la suivante :

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>

Pour mettre à niveau le contrôleur de données, exécutez la commande az arcdata dc upgrade, en spécifiant la balise d’image avec --desired-version.

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

Exemple :

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

La sortie de la commande précédente indique l’état des étapes :

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

Surveiller l’état de la mise à niveau

La mise à niveau est un processus en deux parties. D’abord, le contrôleur est mis à niveau, puis la pile d’analyse est mise à niveau. Vous pouvez surveiller la progression de la mise à niveau à l’aide de l’interface CLI.

Interface de ligne de commande

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

Une fois la mise à niveau terminée, la sortie est la suivante :

Ready

Dépannage

Lorsque la version souhaitée est définie sur une version spécifique, le travail de démarrage tente de procéder à la mise à niveau vers cette version jusqu’à ce qu’elle réussisse. Si la mise à niveau réussit, la propriété RunningVersion de la spécification est mise à jour vers la nouvelle version. Les mises à niveau peuvent échouer dans des scénarios comme une balise d’image incorrecte, l’impossibilité de se connecter au registre ou au référentiel, une quantité de processeur ou de mémoire insuffisante allouée aux conteneurs ou un stockage insuffisant.

  1. Exécutez la commande ci-dessous pour voir si l’un des pods présente un statut Error ou présente un nombre élevé de redémarrages :

    kubectl get pods --namespace <namespace>
    
  2. Pour examiner les événements pour voir s’il existe une erreur, exécutez

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Pour obtenir la liste des conteneurs dans les pods, exécutez

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. Pour obtenir les journaux d’un conteneur, exécutez

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

Pour afficher les erreurs courantes et la façon de les résoudre, accédez aux Ressources de dépannage.