Share via


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

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

Durante uma atualização do controlador de dados, partes do plano de controle de dados, como CRDs (Custom Resource Definitions) e contêineres, podem ser atualizadas. Uma atualização do controlador de dados não causará tempo de inatividade para os serviços de dados (Instância Gerenciada SQL ou servidor PostgreSQL).

Pré-requisitos

Você precisará de um controlador de dados conectado indiretamente com o 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 neste artigo, você precisa instalar:

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 parênteses.

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

Veja as imagens disponíveis e escolha 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 a 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 controlador de dados

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

Nota

Algumas das camadas e modos de serviços de dados estão geralmente disponíveis e alguns estão em pré-visualização. Se você instalar os serviços GA e preview 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 serviços de dados habilitados para ArcGIS do Azure.

Atualização

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

Você pode executar uma corrida seca primeiro. A execução a seco valida a existência do registro, o esquema de versão e o token de autorização do repositório privado (se usado). Para executar uma execução seca, use o --dry-runaz arcdata dc upgrade parâmetro no comando. 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 az arcdata dc upgrade comando, 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 para o 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 da atualização

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 estiver concluída, a saída será:

Ready

Resolução de problemas

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

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

    kubectl get pods --namespace <namespace>
    
  2. Para examinar Eventos para ver se há 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 exibir erros comuns e como solucioná-los, vá para Recursos de solução de problemas.