Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: AKS no Azure Local
Este artigo descreve como criar clusters do Kubernetes no Azure Local usando a CLI do Azure. O fluxo de trabalho é o seguinte:
- Crie um cluster do Kubernetes no Azure Local usando a CLI do Azure. O cluster é conectado ao Azure Arc por padrão.
- Ao criar o cluster, você fornece um grupo do Microsoft Entra que contém a lista de usuários do Microsoft Entra com acesso de administrador de cluster do Kubernetes.
- Acesse o cluster usando kubectl e sua ID do Microsoft Entra.
- Executar um aplicativo de vários contêineres de exemplo com um front-end da Web e uma instância do Redis no cluster.
Antes de começar
- Antes de começar, verifique se você tem os seguintes detalhes do administrador de infraestrutura local:
- ID da assinatura do Azure – a ID da assinatura do Azure em que o Azure Local é usado para implantação e registro.
-
ID do local personalizado – ID do Azure Resource Manager do local personalizado. O local personalizado é configurado durante a implantação do cluster local do Azure. O administrador de infraestrutura deve fornecer a ID do Resource Manager do local personalizado. Esse parâmetro é necessário para criar clusters do Kubernetes. Você também pode obter a ID do Resource Manager usando
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv, se o administrador de infraestrutura fornecer um nome de local personalizado e um nome de grupo de recursos. -
ID de rede – ID do Azure Resource Manager da rede lógica local do Azure criada seguindo estas etapas. Seu administrador deve fornecer o ID da rede lógica. Esse parâmetro é necessário para criar clusters do Kubernetes. Você também pode obter a ID do Azure Resource Manager usando
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsvse souber o grupo de recursos no qual a rede lógica foi criada.
- Você pode executar as etapas neste artigo em um computador de desenvolvimento local para criar um cluster do Kubernetes em sua implantação remota do Azure Local. Verifique se você tem a versão mais recente da CLI do Az em seu computador de desenvolvimento. Você também pode optar por atualizar sua versão da CLI do Az usando
az upgrade. - Para se conectar ao cluster do Kubernetes de qualquer lugar, crie um grupo do Microsoft Entra e adicione membros a ele. Todos os membros do grupo do Microsoft Entra têm acesso de administrador de cluster ao cluster. Certifique-se de adicionar a si mesmo como membro do grupo do Microsoft Entra. Se você não adicionar, não poderá acessar o cluster do Kubernetes usando kubectl. Para obter mais informações sobre como criar grupos do Microsoft Entra e adicionar usuários, consulte Gerenciar grupos do Microsoft Entra e associação de grupo.
- Baixe e instale o kubectl em seu computador de desenvolvimento. A ferramenta de linha de comando do Kubernetes, kubectl, permite que você execute comandos em clusters do Kubernetes. Você pode usar o kubectl para implantar aplicativos, inspecionar e gerenciar recursos de cluster e exibir logs.
Instale a extensão da CLI do Azure
Execute os comandos a seguir para instalar as extensões necessárias da CLI do Azure.
Aviso
Não instale as extensões a seguir diretamente em um nó local do Azure. É recomendável instalá-los em um computador cliente que você usa para se conectar à instância local do Azure.
az extension add -n aksarc --upgrade
az extension add -n customlocation --upgrade
az extension add -n stack-hci-vm --upgrade
az extension add -n connectedk8s --upgrade
Criar um cluster do Kubernetes
Use o comando az aksarc create para criar um cluster kubernetes no AKS Arc. Certifique-se de entrar no Azure antes de executar este comando. Se você tiver várias assinaturas do Azure, selecione a ID de assinatura apropriada usando o comando az account set. Ao usar o comando az aksarc create, recomendamos que você utilize o flag --validate, que valida os parâmetros de entrada que você pretende usar. Depois que os parâmetros de entrada forem validados, você poderá executar o az aksarc create comando sem o --validate sinalizador para criar o cluster do Kubernetes.
az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys
Após alguns minutos, o comando será concluído e retornará informações no formato JSON sobre o cluster.
Considerações
Observe as seguintes considerações ao criar um cluster:
- As chaves SSH são essenciais para solução de problemas e coleta de logs. Salve o arquivo de chave privada para uso futuro. Para acessar nós, consulte Conectar-se a nós de trabalho do Windows ou Linux com SSH.
- Você pode usar uma chave SSH pré-existente ou configurar chaves SSH para um cluster do AKS durante a criação do cluster. Se não houver nenhuma chave SSH pré-existente no computador local, o
--generate-ssh-keysparâmetro será necessário. Você também pode restringir o acesso SSH seguindo a documentação. Para obter instruções detalhadas, consulte Criar e armazenar chaves SSH com a CLI do Azure ou no portal do Azure. - Se você não incluir
--generate-ssh-keysdurante a criação do cluster e nenhuma chave SSH existir, receberá uma mensagem de erro. Se você já tiver uma chave SSH no computador local, o cluster do AKS a reutilizará. Nesse caso, não faz diferença se você especifica--generate-ssh-keysou não. - Por padrão, a chave SSH é armazenada em ~/.ssh/id_rsa.pub. Durante a criação do cluster, você pode especificar um local alternativo usando o
--ssh-key-valueparâmetro.
Importante
Para usar o RBAC do Azure ou a identidade de carga de trabalho para um cluster do AKS, você deve passar os parâmetros necessários durante a criação do cluster usando a CLI do Azure. Atualmente, não há suporte para a atualização de um cluster do AKS existente para habilitar a identidade da carga de trabalho e/ou o RBAC do Azure. Para obter mais informações, consulte Usar o RBAC do Azure para autorização do Kubernetes ou Implantar e configurar a Identidade da Carga de Trabalho para o cluster.
Conectar-se ao cluster do Kubernetes
Agora você pode se conectar ao cluster do Kubernetes executando o az connectedk8s proxy comando do computador de desenvolvimento. Certifique-se de entrar no Azure antes de executar este comando. Se você tiver várias assinaturas do Azure, selecione a ID de assinatura apropriada usando o comando az account set.
Esse comando baixa o kubeconfig do cluster do Kubernetes para o computador de desenvolvimento e abre um canal de conexão de proxy para o cluster do Kubernetes local. O canal fica aberto enquanto o comando for executado. Deixe esse comando ser executado enquanto você quiser acessar o cluster. Se o tempo limite atingir o tempo, feche a janela da CLI, abra uma nova e execute o comando novamente.
Você deve ter permissões de Colaborador no grupo de recursos que hospeda o cluster do Kubernetes para executar o seguinte comando com êxito:
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
Saída esperada:
Proxy is listening on port 47011
Merged "aks-workload" as current context in .\\aks-arc-kube-config
Start sending kubectl requests on 'aks-workload' context using
kubeconfig at .\\aks-arc-kube-config
Press Ctrl+C to close proxy.
Mantenha essa sessão em execução e conecte-se ao cluster do Kubernetes a partir de um terminal/prompt de comando diferente. Verifique se você pode se conectar ao cluster do Kubernetes executando o comando kubectl get. Este comando retorna uma lista dos nós do cluster:
kubectl get node -A --kubeconfig .\aks-arc-kube-config
O exemplo de saída a seguir mostra o nó criado nas etapas anteriores. Verifique se que o status do nó é Pronto:
NAME STATUS ROLES AGE VERSION
moc-l0ttdmaioew Ready control-plane,master 34m v1.24.11
moc-ls38tngowsl Ready <none> 32m v1.24.11
Implantar o aplicativo e o balanceador de carga
Um arquivo de manifesto do Kubernetes define o estado desejado de um cluster, por exemplo, as imagens de contêiner a serem executadas.
Você pode usar um manifesto para criar todos os objetos necessários para executar o aplicativo Azure Vote. Esse manifesto inclui duas implantações do Kubernetes:
- Os aplicativos Azure Vote de exemplo em Python.
- Uma instância do Redis.
Dois serviços Kubernetes também são criados:
- Um serviço interno para a instância do Redis.
- Um serviço externo para acessar o aplicativo Azure Vote da Internet.
Crie um arquivo chamado azure-vote.yaml e copie o seguinte manifesto:
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-back
template:
metadata:
labels:
app: azure-vote-back
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-back
image: <path to image>/oss/bitnami/redis:6.0.8
env:
- name: ALLOW_EMPTY_PASSWORD
value: "yes"
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-front
template:
metadata:
labels:
app: azure-vote-front
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-front
image: <path to image>/azure-vote-front:v1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
Implante o aplicativo usando o comando kubectl apply e especifique o nome do YAML:
kubectl apply -f azure-vote.yaml --kubeconfig .\\aks-arc-kube-config
A saída de exemplo a seguir mostra as implantações e os serviços criados com sucesso:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Implante um balanceador de carga MetalLB para que ele possa atribuir um IP externo para o front-end do aplicativo. Você pode seguir estas instruções para implantar a extensão MetalLB no portal do Azure ou usando a CLI.
Testar o aplicativo
Quando o aplicativo é executado, um serviço de Kubernetes expõe o front-end do aplicativo à Internet. A conclusão desse processo pode levar alguns minutos.
Monitore o progresso usando o comando kubectl get service com o --watch argumento.
kubectl get service azure-vote-front --watch --kubeconfig .\aks-arc-kube-config
A saída EXTERNAL-IP para o serviço azure-vote-front é mostrada inicialmente como pendente.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Depois que o endereço IP EXTERNO mudar de pendente para um endereço IP público real, use CTRL-C para interromper o processo de inspeção kubectl. A seguinte saída de exemplo mostra um endereço IP público válido atribuído ao serviço:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Para ver o aplicativo Azure Vote em ação, abra um navegador da Web no endereço IP externo do serviço.
Excluir o cluster
Execute o az aksarc delete comando para limpar o cluster que você criou:
az aksarc delete --name $aksclustername --resource-group $resource_group