Share via


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

Este artigo descreve como atualizar um controlador de dados habilitado para Azure Arc conectado diretamente 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 diretamente 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 diretamente.

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.

Autenticar

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.

kubectl config use-context <Kubernetes cluster name>

Atualizar controlador de dados

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 --resource-group <resource group> --name <data controller name> --desired-version <version> --dry-run [--no-wait]

A saída para o comando anterior é:

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

Depois que a extensão do controlador de dados Arc tiver sido atualizada, execute o az arcdata dc upgrade comando, especificando a marca de imagem com --desired-version.

az arcdata dc upgrade --resource-group <resource group> --name <data controller name> --desired-version <version> [--no-wait]

Exemplo:

az arcdata dc upgrade --resource-group rg-arcds --name dc01 --desired-version v1.7.0_2022-05-24 [--no-wait]

Monitorar o status da atualização

Você pode monitorar o progresso da atualização com a CLI.

CLI

 az arcdata dc status show --resource-group <resource group>

A atualização é um processo de duas partes. Primeiro, o controlador é atualizado e, em seguida, a pilha de monitoramento é atualizada. 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.