Guia de início rápido: conectar um cluster Kubernetes existente ao Azure Arc
Comece a usar o Kubernetes habilitado para Azure Arc usando a CLI do Azure ou o Azure PowerShell para conectar um cluster Kubernetes existente ao Azure Arc.
Para obter uma visão conceitual sobre como conectar clusters ao Azure Arc, consulte Visão geral do agente Kubernetes habilitado para Azure Arc. Para experimentar coisas em uma experiência de exemplo/prática, visite o Azure Arc Jumpstart.
Pré-requisitos
Importante
Além desses pré-requisitos, certifique-se de atender a todos os requisitos de rede para o Kubernetes habilitado para Azure Arc.
Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
Uma compreensão básica dos principais conceitos do Kubernetes.
Uma identidade (usuário ou entidade de serviço) que pode ser usada para fazer logon na CLI do Azure e conectar seu cluster ao Azure Arc.
A versão mais recente da CLI do Azure.
A versão mais recente da extensão da CLI do Azure connectedk8s , instalada executando o seguinte comando:
az extension add --name connectedk8s
Um cluster Kubernetes em execução. Se você não tiver um, poderá criar um cluster usando uma destas opções:
Criar um cluster Kubernetes usando o Docker para Mac ou Windows
Cluster Kubernetes autogerenciado usando API de cluster
Nota
O cluster precisa ter pelo menos um nó de sistema operacional e tipo
linux/amd64
de arquitetura e/oulinux/arm64
. Consulte Requisitos de cluster para obter mais informações sobre cenários ARM64.
Pelo menos 850 MB livres para os agentes Arc que serão implantados no cluster e capacidade para usar aproximadamente 7% de uma única CPU.
Um arquivo kubeconfig e contexto apontando para seu cluster. Para saber mais sobre o que é um arquivo kubeconfig e como definir o contexto para apontar para o cluster, consulte este artigo.
Registrar provedores para o Kubernetes habilitado para Azure Arc
Introduza os seguintes comandos:
az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Monitorize o processo de registo. O registo pode demorar até 10 minutos.
az provider show -n Microsoft.Kubernetes -o table az provider show -n Microsoft.KubernetesConfiguration -o table az provider show -n Microsoft.ExtendedLocation -o table
Uma vez registrado, você verá o
RegistrationState
estado desses namespaces mudar paraRegistered
.
Criar um grupo de recursos
Execute o seguinte comando:
az group create --name AzureArcTest --location EastUS --output table
Saída:
Location Name
---------- ------------
eastus AzureArcTest
Conectar um cluster Kubernetes existente
Execute o seguinte comando para conectar o cluster. Este comando implanta os agentes do Azure Arc no cluster e instala o Helm v. 3.6.3 na .azure
pasta da máquina de implantação. Esta instalação do Helm 3 é usada apenas para o Azure Arc e não remove nem altera nenhuma versão instalada anteriormente do Helm na máquina.
Neste exemplo, o nome do cluster é AzureArcTest1.
az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest
Saída:
Helm release deployment succeeded
{
"aadProfile": {
"clientAppId": "",
"serverAppId": "",
"tenantId": ""
},
"agentPublicKeyCertificate": "xxxxxxxxxxxxxxxxxxx",
"agentVersion": null,
"connectivityStatus": "Connecting",
"distribution": "gke",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1",
"identity": {
"principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SystemAssigned"
},
"infrastructure": "gcp",
"kubernetesVersion": null,
"lastConnectivityTime": null,
"location": "eastus",
"managedIdentityCertificateExpirationTime": null,
"name": "AzureArcTest1",
"offering": null,
"provisioningState": "Succeeded",
"resourceGroup": "AzureArcTest",
"tags": {},
"totalCoreCount": null,
"totalNodeCount": null,
"type": "Microsoft.Kubernetes/connectedClusters"
}
Gorjeta
O comando acima sem o parâmetro location especificado cria o recurso Kubernetes habilitado para Azure Arc no mesmo local que o grupo de recursos. Para criar o recurso Kubernetes habilitado para Azure Arc em um local diferente, especifique uma ou --location <region>
-l <region>
ao executar o az connectedk8s connect
comando.
Importante
Se a implantação falhar devido a um erro de tempo limite, consulte nosso guia de solução de problemas para obter detalhes sobre como resolver esse problema.
Conectar-se usando um servidor proxy de saída
Se o cluster estiver atrás de um servidor proxy de saída, as solicitações deverão ser roteadas por meio do servidor proxy de saída.
Na máquina de implantação, defina as variáveis de ambiente necessárias para que a CLI do Azure use o servidor proxy de saída:
export HTTP_PROXY=<proxy-server-ip-address>:<port> export HTTPS_PROXY=<proxy-server-ip-address>:<port> export NO_PROXY=<cluster-apiserver-ip-address>:<port>
No cluster Kubernetes, execute o comando connect com os
proxy-https
parâmetros eproxy-http
especificados. Se o servidor proxy estiver configurado com HTTP e HTTPS, certifique-se de usar--proxy-http
para o proxy HTTP e--proxy-https
para o proxy HTTPS. Se o servidor proxy usa apenas HTTP, você pode usar esse valor para ambos os parâmetros.az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --proxy-cert <path-to-cert-file>
Nota
- Alguns pedidos da rede, como os que envolvem comunicações entre serviços no cluster, têm de ser separados do tráfego que é encaminhado através do servidor proxy para a comunicação de saída. O
--proxy-skip-range
parâmetro pode ser usado para especificar o intervalo CIDR e os pontos de extremidade de forma separada por vírgulas para que qualquer comunicação dos agentes para esses pontos de extremidade não passe pelo proxy de saída. No mínimo, o intervalo CIDR dos serviços no cluster deve ser especificado como valor deste parâmetro. Por exemplo, digamos quekubectl get svc -A
retorna uma lista de serviços em que todos os serviços têm valores ClusterIP no intervalo10.0.0.0/16
. Em seguida, o valor a especificar é--proxy-skip-range
10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc
. --proxy-http
,--proxy-https
e--proxy-skip-range
são esperados para a maioria dos ambientes de proxy de saída.--proxy-cert
só é necessário se você precisar injetar certificados confiáveis esperados por proxy no armazenamento de certificados confiáveis de pods de agente.- O proxy de saída tem de ser configurado para permitir ligações websocket.
Para servidores proxy de saída em que apenas um certificado confiável precisa ser fornecido sem as entradas de ponto de extremidade do servidor proxy, az connectedk8s connect
pode ser executado apenas com a --proxy-cert
entrada especificada. Caso sejam esperados vários certificados confiáveis, a cadeia de certificados combinada pode ser fornecida em um único arquivo usando o --proxy-cert
parâmetro.
Nota
--custom-ca-cert
é um alias para--proxy-cert
. Ambos os parâmetros podem ser usados de forma intercambiável. Passar ambos os parâmetros no mesmo comando honrará o passado por último.
Execute o comando connect com o --proxy-cert
parâmetro especificado:
az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>
Verificar a conexão do cluster
Execute o seguinte comando:
az connectedk8s list --resource-group AzureArcTest --output table
Saída:
Name Location ResourceGroup
------------- ---------- ---------------
AzureArcTest1 eastus AzureArcTest
Nota
Depois de integrar o cluster, demora cerca de 5 a 10 minutos para que os metadados do cluster (versão do cluster, versão do agente, número de nós, etc.) sejam apresentados na página de descrição geral do recurso do Kubernetes compatível com o Azure Arc no portal do Azure.
Gorjeta
Para obter ajuda na solução de problemas ao conectar seu cluster, consulte Diagnosticar problemas de conexão para clusters Kubernetes habilitados para Azure Arc.
Exibir agentes do Azure Arc para Kubernetes
O Kubernetes habilitado para Azure Arc implanta vários agentes no azure-arc
namespace.
Veja estas implantações e pods usando:
kubectl get deployments,pods -n azure-arc
Verifique se todos os pods estão em um
Running
estado.Saída:
NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/cluster-metadata-operator 1/1 1 1 13d deployment.apps/clusterconnect-agent 1/1 1 1 13d deployment.apps/clusteridentityoperator 1/1 1 1 13d deployment.apps/config-agent 1/1 1 1 13d deployment.apps/controller-manager 1/1 1 1 13d deployment.apps/extension-manager 1/1 1 1 13d deployment.apps/flux-logs-agent 1/1 1 1 13d deployment.apps/kube-aad-proxy 1/1 1 1 13d deployment.apps/metrics-agent 1/1 1 1 13d deployment.apps/resource-sync-agent 1/1 1 1 13d NAME READY STATUS RESTARTS AGE pod/cluster-metadata-operator-9568b899c-2stjn 2/2 Running 0 13d pod/clusterconnect-agent-576758886d-vggmv 3/3 Running 0 13d pod/clusteridentityoperator-6f59466c87-mm96j 2/2 Running 0 13d pod/config-agent-7cbd6cb89f-9fdnt 2/2 Running 0 13d pod/controller-manager-df6d56db5-kxmfj 2/2 Running 0 13d pod/extension-manager-58c94c5b89-c6q72 2/2 Running 0 13d pod/flux-logs-agent-6db9687fcb-rmxww 1/1 Running 0 13d pod/kube-aad-proxy-67b87b9f55-bthqv 2/2 Running 0 13d pod/metrics-agent-575c565fd9-k5j2t 2/2 Running 0 13d pod/resource-sync-agent-6bbd8bcd86-x5bk5 2/2 Running 0 13d
Para obter mais informações sobre esses agentes, consulte Visão geral do agente Kubernetes habilitado para Azure Arc.
Clean up resources (Limpar recursos)
Você pode excluir o recurso Kubernetes habilitado para Azure Arc, quaisquer recursos de configuração associados e quaisquer agentes em execução no cluster usando a CLI do Azure usando o seguinte comando:
az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest
Se o processo de exclusão falhar, use o seguinte comando para forçar a exclusão (adicionando -y
se quiser ignorar o prompt de confirmação):
az connectedk8s delete -n AzureArcTest1 -g AzureArcTest --force
Esse comando também pode ser usado se você tiver problemas ao criar uma nova implantação de cluster (devido aos recursos criados anteriormente não terem sido completamente removidos).
Nota
A exclusão do recurso Kubernetes habilitado para ArcGIS do Azure usando o portal do Azure remove todos os recursos de configuração associados, mas não remove nenhum agente em execução no cluster. A prática recomendada é excluir o recurso Kubernetes habilitado para Azure Arc usando az connectedk8s delete
, em vez de excluí-lo, no portal do Azure.
Próximos passos
- Saiba como implantar configurações usando GitOps com o Flux v2.
- Solucione problemas comuns do Kubernetes habilitado para Azure Arc.
- Experimente cenários automatizados do Kubernetes habilitados para Azure Arc com o Azure Arc Jumpstart.