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 a 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 diretamente 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 diretamente.
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.
Authenticate
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.
kubectl config use-context <Kubernetes cluster name>
Atualizar o controlador de dados
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 --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 do Arc for atualizada, execute o comando az arcdata dc upgrade
, 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 upgrade
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 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.
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>
Para examinar eventos em busca de 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 ver erros comuns e saber como solucioná-los, acesse Solução de problemas de recursos.