Atualizar um controlador de dados habilitado para Azure Arc conectado indiretamente usando as ferramentas do Kubernetes
Este artigo explica como atualizar um controlador de dados habilitado para Azure Arc conectado indiretamente com as ferramentas do Kubernetes.
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).
Neste artigo, você aplicará um arquivo .yaml a:
- Crie a conta de serviço para executar a atualização.
- Atualize o bootstrapper.
- Atualize o controlador de dados.
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.
Pré-requisitos
Antes de iniciar a atualização do controlador de dados, você precisará:
- Para conectar-se e autenticar em um cluster Kubernetes
- Um contexto Kubernetes existente selecionado
Você precisa de um controlador de dados conectado indiretamente com o imageTag: v1.0.0_2021-07-30
ou superior.
Instalar ferramentas
Para atualizar o controlador de dados usando as ferramentas do Kubernetes, você precisa ter as ferramentas do Kubernetes instaladas.
Os exemplos neste artigo usam kubectl
, mas abordagens semelhantes podem ser usadas com outras ferramentas do Kubernetes, como o painel do Kubernetes, oc
ou helm, se você estiver familiarizado com essas ferramentas e o Kubernetes yaml/json.
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 <current-version>.
<available-version>
...
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 Kubernetes e ter um contexto Kubernetes existente selecionado antes de iniciar a atualização do controlador de dados.
Criar a conta de serviço para executar a atualização
Importante
Requer permissões do Kubernetes para criar conta de serviço, associação de função, função de cluster, associação de função de cluster e todas as permissões RBAC concedidas à conta de serviço.
Salve uma cópia de arcdata-deployer.yaml e substitua o espaço reservado {{NAMESPACE}}
no arquivo pelo namespace do controlador de dados, por exemplo: arc
. Execute o seguinte comando para criar a conta de serviço do deployer com o arquivo editado.
kubectl apply --namespace arc -f arcdata-deployer.yaml
Atualizar o bootstrapper
O comando a seguir cria um trabalho para atualizar o bootstrapper e os objetos Kubernetes relacionados.
Importante
O arquivo yaml no comando a seguir assume como padrão mcr.microsoft.com/arcdata. Por favor, salve uma cópia do arquivo yaml e atualize-o para um uso de um registro / repositório diferente, se necessário.
kubectl apply --namespace arc -f https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/upgrade/yaml/bootstrapper-upgrade-job.yaml
Atualizar o controlador de dados
O comando a seguir corrige a tag de imagem para atualizar o controlador de dados.
kubectl apply --namespace arc -f https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/upgrade/yaml/data-controller-upgrade.yaml
Monitorar o status da atualização
Você pode monitorar o progresso da atualização com kubectl.
kubectl
kubectl get datacontrollers --namespace <namespace> -w
kubectl get monitors --namespace <namespace> -w
A atualização é um processo de duas partes. Primeiro, o controlador é atualizado e, em seguida, a pilha de monitoramento é atualizada. Durante a atualização, use kubectl get monitors -n <namespace> -w
para exibir o status. O resultado será:
NAME STATUS AGE
monitorstack Updating 36m
monitorstack Updating 36m
monitorstack Updating 39m
monitorstack Updating 39m
monitorstack Updating 41m
monitorstack Ready 41m
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.