Atualizar um controlador de dados do Azure Arc conectado indiretamente usando a CLI

Este artigo descreve como atualizar um controlador de dados Azure Arc conectado indiretamente usando o CLI do Azure (az).

Durante uma atualização do controlador de dados, partes do painel de controle de dados, como CRDs (definições de recurso personalizado) e contêineres, podem ser atualizados. Uma atualização do controlador de dados não causará tempo de inatividade dos serviços de dados (Instância Gerenciada de SQL ou servidor PostgreSQL).

Pré-requisitos

Você precisará de um controlador de dados conectado indiretamente com a imageTag v1.0.0_2021-07-30 ou posterior.

Para verificar a versão, execute:

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

Instalar ferramentas

Antes de prosseguir com as tarefas deste artigo, você precisa instalar:

Os exemplos neste artigo usam colchetes angulares < ... > para identificar valores que você precisa substituir antes de executar o script. Substitua os colchetes e os valores dentro dos colchetes.

A versão da extensão arcdata e a versão da imagem estão relacionadas. Verifique se você tem a versão de extensão arcdata correta que corresponde à versão de imagem para a qual você deseja atualizar no Log de versão.

Exibir imagens disponíveis e escolher uma versão

Puxe a lista de imagens disponíveis para o controlador de dados com o seguinte comando:

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

O comando acima retorna uma saída como o exemplo a seguir:

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

Atualizar o controlador de dados

Esta seção mostra como atualizar um controlador de dados conectado indiretamente.

Observação

Algumas das camadas e modos de serviços de dados estão disponíveis para o público geral e outras estão em versão prévia. Se você instalar GA e visualizar serviços no mesmo controlador de dados, não poderá atualizar no local. Para atualizar, exclua todas as instâncias de banco de dados não GA. Você pode encontrar a lista de serviços geralmente disponíveis e de visualização nas Notas de Versão.

Para obter caminhos de atualização com suporte, consulte Atualizar os serviços de dados habilitados para Azure Arc.

Atualizar

Você precisará se conectar, e autenticar, a um cluster do Kubernetes e ter um contexto do Kubernetes existente selecionado antes de iniciar a atualização do controlador de dados do Azure Arc.

Você pode executar uma execução de secagem primeiro. A execução de secagem valida se o registro existe, o esquema de versão e o token de autorização do repositório privado (se usado). Para executar uma execução de secagem, use --dry-run o parâmetro no comando az arcdata dc upgrade. Por exemplo:

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

A saída para o comando anterior é:

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>

Para atualizar o controlador de dados, execute o comando az arcdata dc upgrade, especificando a marca de imagem com --desired-version.

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

Exemplo:

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

A saída do comando anterior mostra o status das etapas:

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

Monitorar o status upgrade

A atualização é um processo de duas partes. Primeiro, o controlador é atualizado e, em seguida, a pilha de monitoramento é atualizada. Você pode monitorar o progresso da atualização com a CLI.

CLI

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

Quando a atualização for concluída, a saída será:

Ready

Solução de problemas

Quando a versão desejada for definida para uma versão específica, o trabalho de bootstrapper tentará atualizar para essa versão até obter êxito. Se a atualização for bem-sucedida, a propriedade RunningVersion da especificação será atualizada para a nova versão. As atualizações podem falhar em cenários como, por exemplo, uma marca de imagem incorreta, a impossibilidade de conectar o registro ou o repositório, CPU ou memória insuficiente alocada para os contêineres ou armazenamento insuficiente.

  1. Execute o comando abaixo para ver se algum dos pods mostra um status Error ou se tem um alto número de reinicializações:

    kubectl get pods --namespace <namespace>
    
  2. Para examinar eventos em busca de um erro, execute

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Para obter uma lista dos contêineres nos pods, execute

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. Para obter os logs de um contêiner, execute

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

Para ver erros comuns e saber como solucioná-los, acesse Solução de problemas de recursos.