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 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 o GA e os serviços de visualização no mesmo controlador de dados, não poderá atualizar no local. Para atualizar, exclua todas as instâncias de banco de dados que não sejam do 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-run
az 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.
Execute o comando abaixo para ver se algum dos pods mostra um
Error
status ou tem um alto número de reinicializações:kubectl get pods --namespace <namespace>
Para examinar Eventos para ver se há um erro, execute
kubectl describe pod <pod name> --namespace <namespace>
Para obter uma lista dos contêineres nos pods, execute
kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
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.