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.
Comece a usar o Host de Contêiner do Linux do Azure usando o Azure PowerShell para implantar um Host de Contêiner Linux do Azure para um cluster do AKS. Depois de instalar os pré-requisitos, crie um grupo de recursos, crie um cluster do AKS, conecte-se ao cluster e execute um aplicativo de vários contêineres de exemplo no cluster.
Importante
A partir de 30 de novembro de 2025, o AKS (Serviço de Kubernetes do Azure) não dá mais suporte ou fornece atualizações de segurança para o Azure Linux 2.0. A imagem do nó do Azure no Linux 2.0 foi congelada na versão 202512.06.0. A partir de 31 de março de 2026, as imagens de nó serão removidas e não será possível escalar os grupos de nós. Migre para uma versão do Azure Linux com suporte atualizando os pools de nós para uma versão do Kubernetes com suporte ou migrando para o osSku AzureLinux3. Para obter mais informações, consulte Desativação: pools de nós do Azure Linux 2.0 no AKS.
Pré-requisitos
- Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
- Use o ambiente do PowerShell no Azure Cloud Shell. Para obter mais informações, consulte Início Rápido do Azure Cloud Shell.
- Se você estiver executando o PowerShell localmente, instale o módulo
Az PowerShelle conecte-se à sua conta do Azure usando o cmdletConnect-AzAccount. Para obter mais informações sobre como instalar o módulo Az PowerShell, confira Instalar o Azure PowerShell. - A identidade que você usa para criar o cluster tem as permissões mínimas apropriadas. Para obter mais detalhes sobre acesso e identidade do AKS, consulte Opções de acesso e identidade para o AKS (Serviço de Kubernetes do Azure).
Criar um grupo de recursos
Um grupo de recursos do Azure é um grupo lógico no qual os recursos do Azure são implantados e gerenciados. Ao criar um grupo de recursos, você precisa especificar um local. Essa é a localização na qual os metadados do grupo de recursos são armazenados e na qual os recursos são executados no Azure, caso você não especifique outra região durante a criação de recursos.
O exemplo a seguir cria um grupo de recursos chamado testAzureLinuxResourceGroup na região leste.
Crie um grupo de recursos usando o cmdlet
New-AzResourceGroup.New-AzResourceGroup -Name testAzureLinuxResourceGroup -Location eastusO exemplo de saída a seguir é semelhante à criação com êxito do grupo de recursos:
ResourceGroupName : testAzureLinuxResourceGroup Location : eastus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testAzureLinuxResourceGroupObservação
O exemplo acima usa eastus, mas os clusters do Host de Contêiner do Linux do Azure estão disponíveis em todas as regiões.
Criar um cluster do Host de Contêiner do Linux do Azure
O exemplo a seguir cria um cluster chamado testAzureLinuxCluster com um nó.
Crie um cluster do AKS usando o cmdlet
New-AzAksClustercom o sinalizador de-NodeOsSKUdefinido como AzureLinux.New-AzAksCluster -ResourceGroupName testAzureLinuxResourceGroup -Name testAzureLinuxCluster -NodeOsSKU AzureLinuxApós alguns minutos, o comando será concluído e retornará informações no formato JSON sobre o cluster.
Conectar-se ao cluster
Para gerenciar um cluster do Kubernetes, use o cliente de linha de comando do Kubernetes, kubectl.
kubectl já está instalado se você usa o Azure Cloud Shell.
Instale
kubectllocalmente usando o cmdletInstall-AzAksCliTool.Install-AzAksCliToolConfigure
kubectlpara se conectar ao cluster do Kubernetes usando o cmdletImport-AzAksCredential. Este comando baixa as credenciais e configura a CLI do Kubernetes para usá-las.Import-AzAksCredential -ResourceGroupName testAzureLinuxResourceGroup -Name testAzureLinuxClusterVerifique a conexão com o cluster usando o comando
kubectl get. Esse comando retorna uma lista dos pods de cluster.kubectl get pods --all-namespaces
Implantar o aplicativo
A fim de implantar o aplicativo, use um arquivo de manifesto para criar todos os objetos necessários para executar o Aplicativo da Loja do AKS. Um arquivo de manifesto do Kubernetes define o estado desejado de um cluster, como quais imagens de contêiner executar. O manifesto inclui as seguintes implantações e serviços do Kubernetes:
- Vitrine Web: aplicativo Web para clientes visualizarem produtos e fazerem pedidos.
- Serviço de produto: mostra informações do produto.
- Serviço de pedido: realiza pedidos.
- Rabbit MQ: fila de mensagens para uma fila de pedidos.
Observação
Não é recomendável executar contêineres com estado, como o Rabbit MQ, sem armazenamento persistente para produção. Esses são usados aqui para simplificar, mas recomendamos o uso de serviços gerenciados, como o Azure Cosmos DB ou o Barramento de Serviço do Azure.
Crie um arquivo chamado
aks-store-quickstart.yamle copie-o para o manifesto a seguir:apiVersion: apps/v1 kind: Deployment metadata: name: rabbitmq spec: replicas: 1 selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq spec: nodeSelector: "kubernetes.io/os": linux containers: - name: rabbitmq image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine ports: - containerPort: 5672 name: rabbitmq-amqp - containerPort: 15672 name: rabbitmq-http env: - name: RABBITMQ_DEFAULT_USER value: "username" - name: RABBITMQ_DEFAULT_PASS value: "password" resources: requests: cpu: 10m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: rabbitmq-enabled-plugins mountPath: /etc/rabbitmq/enabled_plugins subPath: enabled_plugins volumes: - name: rabbitmq-enabled-plugins configMap: name: rabbitmq-enabled-plugins items: - key: rabbitmq_enabled_plugins path: enabled_plugins --- apiVersion: v1 data: rabbitmq_enabled_plugins: | [rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0]. kind: ConfigMap metadata: name: rabbitmq-enabled-plugins --- apiVersion: v1 kind: Service metadata: name: rabbitmq spec: selector: app: rabbitmq ports: - name: rabbitmq-amqp port: 5672 targetPort: 5672 - name: rabbitmq-http port: 15672 targetPort: 15672 type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: ghcr.io/azure-samples/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "rabbitmq" - name: ORDER_QUEUE_PORT value: "5672" - name: ORDER_QUEUE_USERNAME value: "username" - name: ORDER_QUEUE_PASSWORD value: "password" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi initContainers: - name: wait-for-rabbitmq image: busybox command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;'] resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: order-service spec: type: ClusterIP ports: - name: http port: 3000 targetPort: 3000 selector: app: order-service --- apiVersion: apps/v1 kind: Deployment metadata: name: product-service spec: replicas: 1 selector: matchLabels: app: product-service template: metadata: labels: app: product-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: product-service image: ghcr.io/azure-samples/aks-store-demo/product-service:latest ports: - containerPort: 3002 resources: requests: cpu: 1m memory: 1Mi limits: cpu: 1m memory: 7Mi --- apiVersion: v1 kind: Service metadata: name: product-service spec: type: ClusterIP ports: - name: http port: 3002 targetPort: 3002 selector: app: product-service --- apiVersion: apps/v1 kind: Deployment metadata: name: store-front spec: replicas: 1 selector: matchLabels: app: store-front template: metadata: labels: app: store-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: store-front image: ghcr.io/azure-samples/aks-store-demo/store-front:latest ports: - containerPort: 8080 name: store-front env: - name: VUE_APP_ORDER_SERVICE_URL value: "http://order-service:3000/" - name: VUE_APP_PRODUCT_SERVICE_URL value: "http://product-service:3002/" resources: requests: cpu: 1m memory: 200Mi limits: cpu: 1000m memory: 512Mi --- apiVersion: v1 kind: Service metadata: name: store-front spec: ports: - port: 80 targetPort: 8080 selector: app: store-front type: LoadBalancerSe você criar e salvar o arquivo YAML localmente, poderá carregar o arquivo de manifesto no diretório padrão no CloudShell selecionando o botão Carregar/Baixar arquivos e selecionando o arquivo no sistema de arquivos local.
Implante o aplicativo usando o comando kubectl apply e especifique o nome do manifesto YAML.
kubectl apply -f aks-store-quickstart.yamlA saída de exemplo a seguir mostra as implantações e os serviços:
deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
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.
Verifique o status dos pods implantados usando o comando kubectl get pods. Garanta que todos os pods estejam
Running, antes de continuar.kubectl get podsVerifique se há um endereço IP público para o aplicativo de store-front. Monitore o andamento usando o comando kubectl get service com o argumento
--watch.kubectl get service store-front --watchA saída EXTERNAL-IP do serviço
store-frontserá mostrada inicialmente como pendente:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4mQuando o endereço EXTERNAL-IP for alterado de pendente para um endereço IP público real, use
CTRL-Cpara interromper o processo de inspeção dokubectl.A seguinte saída de exemplo mostra um endereço IP público válido atribuído ao serviço:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5mAbra um navegador da Web no endereço IP externo do serviço para conferir o aplicativo do Microsoft Azure Store em ação.
Excluir o cluster
Se você não planeja continuar nos tutoriais a seguir, remova os recursos criados para evitar incorrer em encargos do Azure.
Remova o grupo de recursos e todos os recursos relacionados usando o cmdlet
RemoveAzResourceGroup.Remove-AzResourceGroup -Name testAzureLinuxResourceGroup
Próximas etapas
Neste início rápido, você implantou um cluster AKS do host de contêiner Linux do Azure. Para saber mais sobre o Host de Contêiner do Linux do Azure e conferir um exemplo completo de implantação e gerenciamento de cluster, prossiga para o tutorial do Host de Contêiner do Linux do Azure.