Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
O AKS (Serviço de Kubernetes do Azure) é um serviço de Kubernetes gerenciado que permite implantar e gerenciar clusters rapidamente. Neste início rápido, você:
Observação
Para começar a provisionar rapidamente um cluster do AKS, este artigo inclui etapas para implantar um cluster com configurações padrão somente para fins de avaliação. Antes de implantar um cluster pronto para produção, recomendamos que você se familiarize com nossa arquitetura de referência de linha de base para considerar como ele se alinha aos seus requisitos de negócios.
Este guia de início rápido pressupõe uma compreensão básica dos conceitos do Kubernetes. Para obter mais informações, confira Principais conceitos do Kubernetes para o AKS (Serviço de Kubernetes do Azure).
Observação
O pool de nós do Linux do Azure agora está disponível em geral (GA). Para saber mais sobre os benefícios e as etapas de implantação, confira a Introdução ao host de contêiner do Linux do Azure para AKS.
Entre no portal do Azure.
Na home page do portal do Azure, selecione Criar um recurso.
Na seção Categorias, selecione Contêineres>Serviço de Kubernetes do Azure (AKS).
Na guia Básico, configure os seguintes valores:
Configuração predefinida do cluster: selecione Desenvolvimento/Teste. Para obter mais detalhes sobre configurações predefinidas, confira Predefinições de configuração de cluster no portal do Azure.
Nome do cluster do Kubernetes: insira um nome de cluster como myAKSCluster.
Região: selecione uma região, como Leste dos EUA 2.
Zonas de disponibilidade: selecione Nenhum.
Tipo de preço do AKS: selecione Gratuito.
Deixe os valores padrão para as configurações restantes e selecione Avançar.
Na guia Pools de nós, configure os seguintes valores:
Selecione Adicionar pool de nós e insira um Nome do pool de nós, como nplinux.
Modo: selecione Usuário.
SKU do sistema operacional: selecione Ubuntu Linux.
Zonas de disponibilidade: selecione Nenhum.
Deixe a caixa de seleção Habilitar instâncias de Spot do Azure desmarcada.
Tamanho do nó: selecione Escolher um tamanho. Na página Selecionar um tamanho de VM, selecione D2s_v3 e, em seguida, Selecionar.
Deixe os valores padrão para as configurações restantes e selecione Adicionar.
Selecione Examinar + criar para executar a validação na configuração do cluster. Depois de concluir a validação, selecione Criar.
Leva alguns minutos para o cluster do AKS ser criado. Quando sua implantação for concluída, navegue até o recurso selecionando Ir para o recurso ou navegando até o grupo de recursos do cluster do AKS e selecionando o recurso do AKS.
Use o cliente de linha de comando do Kubernetes, kubectl, para gerenciar clusters do Kubernetes. kubectl
já está instalado se você usa o Azure Cloud Shell. Caso não esteja familiarizado com o Cloud Shell, revise a Visão Geral do Azure Cloud Shell.
Se você estiver usando o Cloud Shell, abra-o com o botão >_
na parte superior do portal do Azure. Se você estiver usando o PowerShell localmente, conecte-se ao Azure por meio do comando Connect-AzAccount
. Se você estiver usando a CLI do Azure localmente, conecte-se ao Azure por meio do comando az login
.
Configure o kubectl
para se conectar ao cluster do Kubernetes usando o comando az aks get-credentials
. Este comando baixa as credenciais e configura a CLI do Kubernetes para usá-las.
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Verifique a conexão com o cluster usando kubectl get
para retornar uma lista dos nós de cluster.
kubectl get nodes
A saída de exemplo a seguir mostra o único nó criado nas etapas anteriores. Verifique se que o status do nó é Pronto.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-31718369-0 Ready agent 6m44s v1.15.10
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, por exemplo, as imagens de contêiner a serem executadas. O manifesto inclui as seguintes implantações e serviços do Kubernetes:
Observação
Não é recomendável executar contêineres com estado, como o Rabbit MQ, sem armazenamento persistente para produção. Eles são usados aqui para simplificar, mas recomendamos o uso de serviços gerenciados, como o Azure CosmosDB ou Barramento de Serviço do Azure.
No Cloud Shell, abra um editor e crie um arquivo chamado aks-store-quickstart.yaml
.
Cole o seguinte manifesto no editor:
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: LoadBalancer
Para obter um detalhamento dos arquivos de manifesto YAML, confira Implantações e manifestos YAML.
Se 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
. Além disso, especifique o nome do manifesto YAML:
kubectl apply -f aks-store-quickstart.yaml
A 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
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 pods
Verifique se há um endereço IP público para o aplicativo store-front
. Monitore o andamento usando o comando kubectl get service
com o argumento --watch
.
kubectl get service store-front --watch
A saída EXTERNAL-IP do serviço store-front
será mostrada inicialmente como pendente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4m
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
.
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 4h5m
Abra um navegador da Web no endereço IP externo do serviço para conferir o aplicativo do Microsoft Azure Store em ação.
Se você não planeja seguir a série de tutoriais do AKS, limpe os recursos desnecessários para evitar cobranças do Azure.
No portal do Azure, navegue até o grupo de recursos do cluster do AKS.
Selecione Excluir grupo de recursos.
Insira o nome do grupo de recursos a ser excluído e selecione Excluir>Excluir.
Observação
O cluster do AKS foi criado com uma identidade gerenciada atribuída pelo sistema. Essa identidade é gerenciada pela plataforma e não requer remoção.
Neste início rápido, você implantou um cluster do Kubernetes e um simples aplicativo com vários contêineres. Esse aplicativo de exemplo é apenas para fins de demonstração e não representa todas as melhores práticas para aplicativos do Kubernetes. Para obter diretrizes sobre como criar soluções completas com o AKS para produção, consulte Diretrizes sobre a solução AKS.
Para saber mais sobre o AKS e percorrer um código completo de exemplo de implantação, prossiga para a série de tutoriais de cluster Kubernetes.
Comentários do Azure Kubernetes Service
O Azure Kubernetes Service é um projeto código aberto. Selecione um link para fornecer comentários:
Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraTreinamento
Módulo
Projeto guiado – Implantar aplicativos no Serviço de Kubernetes do Azure - Training
Boas-vindas a esta experiência interativa de validação de habilidades. A conclusão deste módulo ajudará a preparar você para a avaliação Implantar e gerenciar contêineres com o Serviço de Kubernetes do Azure.
Certificação
Microsoft Certified: Azure Administrator Associate - Certifications
Demonstre as principais habilidades para configurar, gerenciar, proteger e administrar funções profissionais importantes no Microsoft Azure.