Início Rápido: Implantar um cluster do AKS (Serviço de Kubernetes do Azure) usando o portal do AzureQuickstart: Deploy an Azure Kubernetes Service (AKS) cluster using the Azure portal

O AKS (Serviço de Kubernetes do Azure) é um serviço de Kubernetes gerenciado que permite implantar e gerenciar clusters rapidamente.Azure Kubernetes Service (AKS) is a managed Kubernetes service that lets you quickly deploy and manage clusters. Neste guia de início rápido, implante um cluster AKS usando o Portal do Azure.In this quickstart, you deploy an AKS cluster using the Azure portal. Um aplicativo de vários contêineres que inclui um front-end da Web e uma instância do Redis é executado no cluster.A multi-container application that includes a web front end and a Redis instance is run in the cluster. Em seguida, você verá como monitorar a integridade do cluster e dos pods que executam seu aplicativo.You then see how to monitor the health of the cluster and pods that run your application.

Imagem de navegação para o aplicativo Azure Vote de exemplo

Este guia de início rápido pressupõe uma compreensão básica dos conceitos do Kubernetes.This quickstart assumes a basic understanding of Kubernetes concepts. Para obter mais informações, confira Principais conceitos do Kubernetes para o AKS (Serviço de Kubernetes do Azure).For more information, see Kubernetes core concepts for Azure Kubernetes Service (AKS).

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Entrar no AzureSign in to Azure

Entre no Portal do Azure em https://portal.azure.com.Sign in to the Azure portal at https://portal.azure.com.

Criar um cluster AKSCreate an AKS cluster

Para criar um cluster do AKS, conclua as seguintes etapas:To create an AKS cluster, complete the following steps:

  1. No portal do Azure ou na Página Inicial, selecione Criar um recurso.On the Azure portal menu or from the Home page, select Create a resource.

  2. Selecione contêineres > Serviço Kubernetes.Select Containers > Kubernetes Service.

  3. Na página Noções básicas, configure as seguintes opções:On the Basics page, configure the following options:

    • Detalhes do projeto: Selecione uma assinatura do Azure e marque ou crie um grupo de recursos do Azure, por exemplo, meuGrupodeRecursos.Project details: Select an Azure Subscription, then select or create an Azure Resource group, such as myResourceGroup.
    • Detalhes do cluster: Insira um nome do cluster do Kubernetes, como myAKSCluster.Cluster details: Enter a Kubernetes cluster name, such as myAKSCluster. Selecione uma Região, a versão do Kubernetes e o prefixo de nome DNS para o cluster do AKS.Select a Region, Kubernetes version, and DNS name prefix for the AKS cluster.
    • Pool de nós primários: Selecione um Tamanho de nó de VM para os nós de AKS.Primary node pool: Select a VM Node size for the AKS nodes. O tamanho da VM não pode ser alterado após a implantação de um cluster AKS.The VM size can't be changed once an AKS cluster has been deployed. – Selecione o número de nós para implantação no cluster.- Select the number of nodes to deploy into the cluster. Para este início rápido, defina Contagem de nós como 1.For this quickstart, set Node count to 1. A contagem de nós pode ser ajustada após a implantação do cluster.Node count can be adjusted after the cluster has been deployed.

    Criar cluster do AKS – fornecer informações básicas

    Selecione Avançar: Escala ao concluir.Select Next: Scale when complete.

  4. Na página Escala, mantenha as opções padrão.On the Scale page, keep the default options. Na parte inferior da tela, clique em Avançar: Autenticação.At the bottom of the screen, click Next: Authentication.

    Cuidado

    A criação de novas Entidades de Serviço do AAD pode levar vários minutos para ser propagada e disponibilizada, levando a erros de Entidade de Serviço não encontrada e a falhas de validação no portal do Azure.Creating new AAD Service Principals may take multiple minutes to propagate and become available causing Service Principal not found errors and validation failures in Azure portal. Se passar por isso, veja aqui as mitigações.If you hit this please visit here for mitigations.

  5. Na página Autenticação, configure as seguintes opções:On the Authentication page, configure the following options:

    • Crie uma nova entidade de serviço deixando o campo Entidade de Serviço com (novo) entidade de serviço padrão.Create a new service principal by leaving the Service Principal field with (new) default service principal. Ou você pode escolher Configurar entidade de serviço para usar uma existente.Or you can choose Configure service principal to use an existing one. Se você usar uma existente, será necessário fornecer a ID e segredo de cliente do SPN.If you use an existing one, you will need to provide the SPN client ID and secret.
    • Habilite a opção para RBAC (controle de acesso baseado em função) do Kubernetes.Enable the option for Kubernetes role-based access controls (RBAC). Isso fornecerá um controle mais refinado sobre o acesso aos recursos do Kubernetes implantados no cluster do AKS.This will provide more fine-grained control over access to the Kubernetes resources deployed in your AKS cluster.

Por padrão, a rede Básica é usada e o Azure Monitor para contêineres está habilitado.By default, Basic networking is used, and Azure Monitor for containers is enabled. Clique em Revisar+ criar e depois em Criar quando terminar a validação.Click Review + create and then Create when validation completes.

Leva alguns minutos para o cluster do AKS ser criado.It takes a few minutes to create the AKS cluster. Após a conclusão da sua implantação, clique em Acessar recurso, ou navegue até o grupo de recursos do cluster AKS, como myResourceGroup e selecione o recurso do AKS, como myAKSCluster.When your deployment is complete, click Go to resource, or browse to the AKS cluster resource group, such as myResourceGroup, and select the AKS resource, such as myAKSCluster. O painel do cluster do AKS é mostrado, como neste exemplo:The AKS cluster dashboard is shown, as in this example:

Painel do AKS de exemplo no portal do Azure

Conectar-se ao clusterConnect to the cluster

Para gerenciar um cluster do Kubernetes, use kubectl, o cliente de linha de comando do Kubernetes.To manage a Kubernetes cluster, you use kubectl, the Kubernetes command-line client. O cliente kubectl está pré-instalado no Azure Cloud Shell.The kubectl client is pre-installed in the Azure Cloud Shell.

Abra o Cloud Shell usando o botão >_ na parte superior do portal do Azure.Open Cloud Shell using the >_ button on the top of the Azure portal.

Abrir o Azure Cloud Shell no portal

Para configurar o kubectl para se conectar ao cluster do Kubernetes, use o comando az aks get-credentials.To configure kubectl to connect to your Kubernetes cluster, use the az aks get-credentials command. Este comando baixa as credenciais e configura a CLI do Kubernetes para usá-las.This command downloads credentials and configures the Kubernetes CLI to use them. O exemplo a seguir obtém as credenciais para o nome do cluster myAKSCluster no grupo de recursos chamado myResourceGroup:The following example gets credentials for the cluster name myAKSCluster in the resource group named myResourceGroup:

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

Para verificar a conexão ao seu cluster, use o comando kubectl get para retornar uma lista de nós do cluster.To verify the connection to your cluster, use the kubectl get command to return a list of the cluster nodes.

kubectl get nodes

A saída de exemplo a seguir mostra o único nó criado nas etapas anteriores.The following example output shows the single node created in the previous steps. Verifique se o status do nó é Pronto:Make sure that the status of the node is Ready:

NAME                       STATUS    ROLES     AGE       VERSION
aks-agentpool-14693408-0   Ready     agent     15m       v1.11.5

Executar o aplicativoRun the application

Um arquivo de manifesto do Kubernetes define um estado desejado para o cluster, como as imagens de contêiner a serem executadas.A Kubernetes manifest file defines a desired state for the cluster, such as what container images to run. Neste início rápido, um manifesto é usado para criar todos os objetos necessários para executar o aplicativo Azure Vote.In this quickstart, a manifest is used to create all objects needed to run the Azure Vote application. Esse manifesto inclui duas implantações do Kubernetes – uma para os aplicativos de exemplo do Azure Vote Python e outra para uma instância do Redis.This manifest includes two Kubernetes deployments - one for the sample Azure Vote Python applications, and the other for a Redis instance. Dois Serviços de Kubernetes também são criados – um serviço interno para a instância do Redis e um serviço externo para acessar o aplicativo Azure Vote na Internet.Two Kubernetes Services are also created - an internal service for the Redis instance, and an external service to access the Azure Vote application from the internet.

Dica

Neste início rápido, você criará e implantará manualmente seus manifestos de aplicativo no cluster AKS.In this quickstart, you manually create and deploy your application manifests to the AKS cluster. Em mais cenários reais, você pode usar o Azure Dev Spaces para iterar e depurar rapidamente seu código diretamente no cluster do AKS.In more real-world scenarios, you can use Azure Dev Spaces to rapidly iterate and debug your code directly in the AKS cluster. Você pode usar o Dev Spaces em várias plataformas de sistema operacional e ambientes de desenvolvimento e trabalhar em conjunto com outras pessoas de sua equipe.You can use Dev Spaces across OS platforms and development environments, and work together with others on your team.

No shell de nuvem, use nano ou vi para criar um arquivo chamado azure-vote.yaml e copie a definição de YAML a seguir:In the cloud shell, use nano or vi to create a file named azure-vote.yaml and copy in the following YAML definition:

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:
        "beta.kubernetes.io/os": linux
      containers:
      - name: azure-vote-back
        image: redis
        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:
        "beta.kubernetes.io/os": linux
      containers:
      - name: azure-vote-front
        image: microsoft/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 manifesto YAML:Deploy the application using the kubectl apply command and specify the name of your YAML manifest:

kubectl apply -f azure-vote.yaml

A seguinte saída de exemplo mostra as Implantações e os Serviços criados com êxito:The following example output shows the Deployments and Services created successfully:

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

Testar o aplicativoTest the application

Quando o aplicativo é executado, um serviço de Kubernetes expõe o front-end do aplicativo à Internet.When the application runs, a Kubernetes service exposes the application front end to the internet. A conclusão desse processo pode levar alguns minutos.This process can take a few minutes to complete.

Para monitorar o andamento, use o comando kubectl get service com o argumento --watch.To monitor progress, use the kubectl get service command with the --watch argument.

kubectl get service azure-vote-front --watch

Inicialmente, o EXTERNAL-IP para o serviço azure-vote-front é mostrado como pendente.Initially the EXTERNAL-IP for the azure-vote-front service is shown as pending.

NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
azure-vote-front   LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s

Quando o endereço EXTERNAL-IP for alterado de pendente para um endereço IP público real, use CTRL-C para interromper o processo de inspeção do kubectl.When the EXTERNAL-IP address changes from pending to an actual public IP address, use CTRL-C to stop the kubectl watch process. A seguinte saída de exemplo mostra um endereço IP público válido atribuído ao serviço:The following example output shows a valid public IP address assigned to the service:

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.To see the Azure Vote app in action, open a web browser to the external IP address of your service.

Imagem de navegação para o aplicativo Azure Vote de exemplo

Monitorar integridade e logsMonitor health and logs

Quando você criou o cluster, o Azure Monitor para contêineres foi habilitado.When you created the cluster, Azure Monitor for containers was enabled. Esse recurso de monitoramento fornece métricas de integridade para o cluster do AKS e pods em execução no cluster.This monitoring feature provides health metrics for both the AKS cluster and pods running on the cluster.

Talvez demore alguns minutos para que esses dados sejam preenchidos no Portal do Azure.It may take a few minutes for this data to populate in the Azure portal. Para ver o status atual, o tempo de atividade e o uso de recursos dos pods do Azure Vote, navegue para o recurso de AKS no portal do Azure, por exemplo, myAKSCluster.To see current status, uptime, and resource usage for the Azure Vote pods, browse back to the AKS resource in the Azure portal, such as myAKSCluster. Em seguida, você pode acessar o status da integridade da seguinte maneira:You can then access the health status as follows:

  1. Em Monitoramento, no lado esquerdo, escolha InsightsUnder Monitoring on the left-hand side, choose Insights
  2. Na parte superior, escolha + Adicionar FiltroAcross the top, choose to + Add Filter
  3. Selecione Namespace como a propriedade e, em seguida, escolha <Todos exceto kube-system>Select Namespace as the property, then choose <All but kube-system>
  4. Escolha exibir os Contêineres.Choose to view the Containers.

Os contêineres azure-vote-back e azure-vote-front são exibidos, conforme mostrado no exemplo a seguir:The azure-vote-back and azure-vote-front containers are displayed, as shown in the following example:

Exibir a integridade de contêineres em execução no AKS

Para ver os logs do pod azure-vote-front, selecione Exibir logs de contêiner no menu suspenso da lista de contêineres.To see logs for the azure-vote-front pod, select the View container logs from the drop down of the containers list. Esses logs incluem os fluxos stdout e stderr do contêiner.These logs include the stdout and stderr streams from the container.

Exibir os logs de contêineres no AKS

Excluir clusterDelete cluster

Quando o cluster não for mais necessário, exclua o recurso de cluster, o que excluirá todos os recursos associados.When the cluster is no longer needed, delete the cluster resource, which deletes all associated resources. Essa operação pode ser concluída no portal do Azure selecionando o botão Excluir no painel do cluster do AKS.This operation can be completed in the Azure portal by selecting the Delete button on the AKS cluster dashboard. Como alternativa, o comando az aks delete pode ser usado no Cloud Shell:Alternatively, the az aks delete command can be used in the Cloud Shell:

az aks delete --resource-group myResourceGroup --name myAKSCluster --no-wait

Observação

Quando você excluir o cluster, a entidade de serviço do Azure Active Directory usada pelo cluster do AKS não será removida.When you delete the cluster, the Azure Active Directory service principal used by the AKS cluster is not removed. Para obter etapas sobre como remover a entidade de serviço, veja Considerações sobre a entidade de segurança e a exclusão de serviço AKS.For steps on how to remove the service principal, see AKS service principal considerations and deletion.

Obter o códigoGet the code

Neste início rápido, foram usadas imagens de contêiner pré-criadas para criar uma implantação do Kubernetes.In this quickstart, pre-created container images were used to create a Kubernetes deployment. O código de aplicativo relacionado, o Dockerfile e o arquivo de manifesto Kubernetes estão disponíveis no GitHub.The related application code, Dockerfile, and Kubernetes manifest file are available on GitHub.

https://github.com/Azure-Samples/azure-voting-app-redis

Próximas etapasNext steps

Neste início rápido, você implantou um cluster Kubernetes e um aplicativo de com vários contêineres nele.In this quickstart, you deployed a Kubernetes cluster and deployed a multi-container application to it.

Para saber mais sobre o AKS e percorrer um código completo de exemplo de implantação, prossiga para o tutorial de cluster Kubernetes.To learn more about AKS, and walk through a complete code to deployment example, continue to the Kubernetes cluster tutorial.