Início Rápido: Implementar um cluster do Azure Kubernetes Service (AKS) com a CLI do Azure
Azure Kubernetes Service (AKS) é um serviço do Kubernetes gerido que lhe permite implementar e gerir rapidamente clusters. Neste início rápido, irá:
- Implemente um cluster do AKS com a CLI do Azure.
- Execute uma aplicação de vários contentores de exemplo com um front-end web e uma instância de Redis no cluster.
Antes de começar
- Este guia de introdução parte do princípio de que possui conhecimentos básicos dos conceitos do Kubernetes. Para obter mais informações, veja Kubernetes core concepts for Azure Kubernetes Service (AKS).
- Precisa de uma conta do Azure com uma subscrição ativa. Se não tiver uma, crie uma conta gratuitamente.
- Para saber mais sobre como criar um conjunto de nós do Windows Server, veja Criar um cluster do AKS que suporte contentores do Windows Server.
Pré-requisitos
Utilize o ambiente bash no Azure Cloud Shell. Para obter mais informações, veja Início Rápido do Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, veja Como executar a CLI do Azure num contentor do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de início de sessão, veja Iniciar sessão com a CLI do Azure.
Quando lhe for pedido, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
Este artigo requer a versão 2.0.64 ou posterior da CLI do Azure. Se estiver a utilizar o Azure Cloud Shell, a versão mais recente já está instalada.
Certifique-se de que a identidade que utiliza para criar o cluster tem as permissões mínimas adequadas. Para obter mais detalhes sobre o acesso e a identidade do AKS, veja Opções de acesso e identidade para Azure Kubernetes Service (AKS).
Se tiver várias subscrições do Azure, selecione o ID de subscrição adequado no qual os recursos devem ser faturados com o
az account
comando .Verifique se tem os fornecedores Microsoft.OperationsManagement e Microsoft.OperationalInsights registados na sua subscrição. Estes fornecedores de recursos do Azure são necessários para suportar as Informações do contentor. Verifique o estado do registo com os seguintes comandos:
az provider show -n Microsoft.OperationsManagement -o table az provider show -n Microsoft.OperationalInsights -o table
Se não estiverem registados, registe-os com os seguintes comandos:
az provider register --namespace Microsoft.OperationsManagement az provider register --namespace Microsoft.OperationalInsights
Nota
Se planear executar os comandos localmente em vez de no Azure Cloud Shell, certifique-se de que executa os comandos com privilégios administrativos.
Criar um grupo de recursos
Um grupo de recursos do Azure é um grupo lógico no qual os recursos do Azure são implementados e geridos. Quando cria um grupo de recursos, é-lhe pedido que especifique uma localização. Esta localização é a localização de armazenamento dos metadados do grupo de recursos e onde os recursos são executados no Azure se não especificar outra região durante a criação de recursos.
O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.
Crie um grupo de recursos com o
az group create
comando .az group create --name myResourceGroup --location eastus
O exemplo de saída seguinte assemelha-se à criação bem-sucedida do grupo de recursos:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }
Criar um cluster do AKS (Create an AKS cluster)
O exemplo seguinte cria um cluster com o nome myAKSCluster com um nó e ativa uma identidade gerida atribuída pelo sistema.
Crie um cluster do AKS com o
az aks create
comando com os--enable-addons monitoring
parâmetros e--enable-msi-auth-for-monitoring
para ativar as informações do Contentor do Azure Monitor com autenticação de identidade gerida (pré-visualização).az aks create -g myResourceGroup -n myAKSCluster --enable-managed-identity --node-count 1 --enable-addons monitoring --enable-msi-auth-for-monitoring --generate-ssh-keys
Após alguns minutos, o comando é concluído e devolve informações formatadas em JSON sobre o cluster.
Nota
Quando cria um novo cluster, o AKS cria automaticamente um segundo grupo de recursos para armazenar os recursos do AKS. Para obter mais informações, veja Por que motivo são criados dois grupos de recursos com o AKS?
Ligar ao cluster
Para gerir um cluster do Kubernetes, utilize o cliente da linha de comandos do Kubernetes, kubectl. kubectl
já está instalado se utilizar o Azure Cloud Shell.
Instale
kubectl
localmente com oaz aks install-cli
comando .az aks install-cli
Configure
kubectl
para ligar ao cluster do Kubernetes com oaz aks get-credentials
comando .Este comando executa as seguintes operações:
- Transfere credenciais e configura a CLI do Kubernetes para as utilizar.
- Utiliza
~/.kube/config
, a localização predefinida para o ficheiro de configuração do Kubernetes. Especifique uma localização diferente para o ficheiro de configuração do Kubernetes com o argumento --file .
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Verifique a ligação ao cluster com o
kubectl get
comando . Este comando devolve uma lista dos nós de cluster.kubectl get nodes
O exemplo de saída seguinte mostra o nó único criado nos passos anteriores. Certifique-se de que o estado do nó é Pronto.
NAME STATUS ROLES AGE VERSION aks-nodepool1-31718369-0 Ready agent 6m44s v1.12.8
Implementar a aplicação
Um ficheiro de manifesto do Kubernetes define o estado pretendido de um cluster, como as imagens de contentor a executar.
Neste início rápido, vai utilizar um manifesto para criar todos os objetos necessários para executar a aplicação Azure Vote. Este manifesto inclui duas implementações do Kubernetes:
- As aplicações python do Azure Vote de exemplo.
- Uma instância de Redis.
Também cria dois Serviços do Kubernetes:
- Um serviço interno para a instância de Redis.
- Um serviço externo para aceder à aplicação Azure Vote a partir da Internet.
Crie um ficheiro com o nome
azure-vote.yaml
e copie no manifesto seguinte.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: mcr.microsoft.com/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: mcr.microsoft.com/azuredocs/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
Para obter uma discriminação dos ficheiros de manifesto YAML, veja Deployments and YAML manifests (Implementações e manifestos YAML).
Implemente a aplicação com o
kubectl apply
comando e especifique o nome do seu manifesto YAML.kubectl apply -f azure-vote.yaml
O exemplo seguinte assemelha-se à saída que mostra implementações e serviços criados com êxito.
deployment "azure-vote-back" created service "azure-vote-back" created deployment "azure-vote-front" created service "azure-vote-front" created
Testar a aplicação
Quando a aplicação é executada, um serviço do Kubernetes expõe o front-end da aplicação à Internet. Este processo pode demorar alguns minutos a concluir.
Monitorize o progresso com o
kubectl get service
comando com o--watch
argumento .kubectl get service azure-vote-front --watch
A saída EXTERNAL-IP do
azure-vote-front
serviço será apresentada 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
Assim que o endereço EXTERNAL-IP mudar de pendente para um endereço IP público real, utilize
CTRL-C
para parar okubectl
processo de watch.O resultado de exemplo seguinte 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
Abra um browser para o endereço IP externo do seu serviço para ver a aplicação Azure Vote em ação.
Eliminar o cluster
Se não planear seguir os tutoriais seguintes, limpe recursos desnecessários para evitar custos do Azure.
Remova o grupo de recursos, o serviço de contentor e todos os recursos relacionados com o
az group delete
comando .az group delete --name myResourceGroup --yes --no-wait
Nota
O cluster do AKS foi criado com uma identidade gerida atribuída pelo sistema, que é a opção de identidade predefinida utilizada neste início rápido. A plataforma gere esta identidade para que não tenha de removê-la manualmente.
Passos seguintes
Neste início rápido, implementou um cluster do Kubernetes e implementou uma aplicação multi-contentor simples no mesmo.
Para saber mais sobre o AKS e ver um exemplo completo de código para implementação, avance para o tutorial do cluster do Kubernetes.
Este início rápido destina-se a fins introdutórios. Para obter orientações sobre como criar soluções completas com o AKS para produção, veja AKS solution guidance (Orientação da solução do AKS).