evento
17/03, 21 - 21/03, 10
Junte-se à série meetup para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registe-se agoraEste browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
O Serviço Kubernetes do Azure (AKS) é um serviço Kubernetes gerenciado que permite implantar e gerenciar clusters rapidamente. Neste início rápido, irá:
Nota
Para começar a provisionar rapidamente um cluster AKS, este artigo inclui etapas para implantar um cluster com configurações padrão apenas 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 ela se alinha aos seus requisitos de negócios.
Este guia de introdução parte do princípio de que possui conhecimentos básicos dos conceitos do Kubernetes. Para obter mais informações, consulte Conceitos principais do Kubernetes para o Serviço Kubernetes do Azure (AKS).
Nota
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, consulte a Introdução ao Host de Contêiner Linux do Azure para AKS.
Inicie sessão no portal do Azure.
Na home page do portal do Azure, selecione Criar um recurso.
Na seção Categorias, selecione Contêineres>Serviço Kubernetes do Azure (AKS).
Na guia Noções básicas, defina as seguintes configurações:
Configuração predefinida do cluster: Selecione Desenvolvimento/Teste. Para obter mais detalhes sobre configurações predefinidas, consulte Predefinições de configuração de cluster no portal do Azure.
Nome do cluster Kubernetes: insira um nome de cluster, como myAKSCluster.
Região: selecione uma região, como East US 2.
Zonas de disponibilidade: Selecione Nenhum.
Nível 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, defina as seguintes configurações:
Selecione Adicionar pool de nós e insira um nome de pool de nós, como nplinux.
Modo: Selecione Usuário.
OS SKU: Selecione Ubuntu Linux.
Zonas de disponibilidade: Selecione Nenhum.
Deixe a caixa de seleção Habilitar instâncias 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, selecione Selecionar.
Deixe os valores padrão para as configurações restantes e selecione Adicionar.
Selecione Rever + criar para executar a validação na configuração do cluster. Após a conclusão da validação, selecione Criar.
A criação do cluster do AKS demora alguns minutos. Quando a implantação estiver concluída, navegue até o recurso selecionando Ir para o recurso ou navegando até o grupo de recursos do cluster AKS e selecionando o recurso AKS.
Você usa o cliente de linha de comando do Kubernetes, kubectl, para gerenciar clusters do Kubernetes. kubectl
já está instalado se você usar o Azure Cloud Shell. Se você não estiver familiarizado com o Cloud Shell, consulte 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 Connect-AzAccount
comando. Se você estiver usando a CLI do Azure localmente, conecte-se ao Azure por meio do az login
comando.
Configure kubectl
para se conectar ao cluster do Kubernetes usando o az aks get-credentials
comando. Este comando baixa 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 do cluster.
kubectl get nodes
A saída de exemplo seguinte mostra o nó único criado nos passos anteriores. Verifique se o status do nó é Pronto.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-31718369-0 Ready agent 6m44s v1.15.10
Você usa um arquivo de manifesto para criar todos os objetos necessários para executar o aplicativo AKS Store. Um arquivo de manifesto do Kubernetes define o estado desejado de um cluster, como quais imagens de contêiner devem ser executadas. O manifesto inclui as seguintes implantações e serviços do Kubernetes:
Nota
Não recomendamos a execução de contêineres com monitoração de 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 o Azure Service Bus.
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, consulte Implantações e manifestos YAML.
Se você criar e salvar o arquivo YAML localmente, poderá carregar o arquivo de manifesto para seu diretório padrão no CloudShell selecionando o botão Upload/Download de arquivos e selecionando o arquivo do seu sistema de arquivos local.
Implante o aplicativo usando o kubectl apply
comando e especifique o nome do seu 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 Kubernetes expõe o front-end do aplicativo à Internet. Este processo pode demorar alguns minutos a concluir.
Verifique o status dos pods implantados usando o kubectl get pods
comando. Certifique-se de que todos os pods estão Running
antes de prosseguir.
kubectl get pods
Verifique se há um endereço IP público para o store-front
aplicativo. Monitore o progresso usando o kubectl get service
comando com o --watch
argumento.
kubectl get service store-front --watch
A saída EXTERNAL-IP para o store-front
serviço inicialmente mostra 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 mudar de pendente para um endereço IP público real, use CTRL-C
para interromper o kubectl
processo de monitoramento.
A saída de exemplo a seguir 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 seu serviço para ver o aplicativo da Loja Azure em ação.
Se você não planeja passar pela série de tutoriais do AKS, limpe recursos desnecessários para evitar cobranças do Azure.
No portal do Azure, navegue até o grupo de recursos de cluster AKS.
Selecione Eliminar grupo de recursos.
Introduza o nome do grupo de recursos a eliminar e, em seguida, selecione Eliminar>Eliminar.
Nota
O cluster 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 Kubernetes e, em seguida, implantou um aplicativo simples de vários contêineres nele. Este aplicativo de exemplo é apenas para fins de demonstração e não representa todas as práticas recomendadas para aplicativos Kubernetes. Para obter orientação sobre como criar soluções completas com o AKS para produção, consulte Orientação de solução AKS.
Para saber mais sobre o AKS e percorrer um exemplo completo de código para implantação, continue para a série de tutoriais do cluster Kubernetes.
Comentários do Azure Kubernetes Service
O Azure Kubernetes Service é um projeto código aberto. Selecione um link para fornecer comentários:
evento
17/03, 21 - 21/03, 10
Junte-se à série meetup para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registe-se agoraFormação
Módulo
Projeto guiado - Implantar aplicativos no Serviço Kubernetes do Azure - Training
Bem-vindo a esta experiência interativa de validação de competências. A conclusão deste módulo ajuda a prepará-lo para a avaliação Implantar e gerenciar contêineres com o Serviço Kubernetes do Azure.
Certificação
Certificado pela Microsoft: Azure Administrator Associate - Certifications
Demonstre habilidades essenciais para configurar, gerenciar, proteger e administrar as principais funções profissionais no Microsoft Azure.
Documentação
Saiba como implantar rapidamente um cluster Kubernetes e implantar um aplicativo no Serviço Kubernetes do Azure (AKS) usando a CLI do Azure.
Desenvolver no Serviço Kubernetes do Azure (AKS) com o Helm - Azure Kubernetes Service
Use o Helm com AKS e o Registro de Contêiner do Azure para empacotar e executar contêineres de aplicativos em um cluster.
Conceitos principais dos Serviços Kubernetes do Azure (AKS) - Azure Kubernetes Service
Saiba mais sobre os principais conceitos do Serviço Kubernetes do Azure (AKS).