(PRETERIDO) Implantar cluster Kubernetes para contêineres Linux
Gorjeta
Para obter a versão atualizada deste guia de início rápido que usa o Serviço Kubernetes do Azure, consulte Guia de início rápido: implantar um cluster do Serviço Kubernetes do Azure (AKS).
Aviso
O Serviço de Contêiner do Azure (ACS) está sendo preterido. Nenhum novo recurso ou funcionalidade está sendo adicionado ao ACS. Todas as APIs, experiência do portal, comandos da CLI e documentação são marcados como obsoletos.
Em 2017, apresentámos o Azure Kubernetes Service (AKS) para simplificar a gestão, implementação e as operações do Kubernetes. Se utilizar o orquestrador do Kubernetes, migre para o AKS até 31 de janeiro de 2020. Para começar, consulte migrar para o Serviço Kubernetes do Azure.
Para obter mais informações, consulte o anúncio de descontinuação do Serviço de Contêiner do Azure em Azure.com.
Neste início rápido, um cluster do Kubernetes é implantado usando a CLI do Azure. Depois, é implementada e executada no cluster uma aplicação de vários contentores que consiste num front-end da Web e numa instância de Redis. Depois de concluída, a aplicação está acessível através da Internet.
A aplicação de exemplo utilizada neste documento está escrita em Python. Os conceitos e os passos detalhados aqui podem ser utilizados para implementar qualquer imagem de contentor num cluster de Kubernetes. O código, o Dockerfile e os ficheiros de manifesto do Kubernetes pré-criados relacionados com este projeto estão disponíveis no GitHub.
Este guia de introdução pressupõe um conhecimento básico dos conceitos do Kubernetes. Para obter informações detalhadas sobre o Kubernetes, consulte a documentação do Kubernetes.
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Azure Cloud Shell
O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.
Para iniciar o Azure Cloud Shell:
Opção | Exemplo/Ligação |
---|---|
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. | |
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. | |
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. |
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.
Selecione Enter para executar o código ou comando.
Se optar por instalar e usar a CLI localmente, este tópico requer a execução da versão 2.0.4 ou posterior da CLI do Azure. Executar az --version
para localizar a versão. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.
Criar um grupo de recursos
Crie um grupo de recursos com o comando az group create. Um grupo de recursos do Azure é um grupo lógico, no qual os recursos do Azure são implementados e geridos.
O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização westeurope.
az group create --name myResourceGroup --location westeurope
Saída:
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup",
"location": "westeurope",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Criar cluster do Kubernetes
Crie um cluster do Kubernetes no Azure Container Service com o comando az acs create. O exemplo seguinte cria um cluster com o nome myK8sCluster com um nó principal do Linux e três nós de agente do Linux.
az acs create --orchestrator-type kubernetes --resource-group myResourceGroup --name myK8sCluster --generate-ssh-keys
Em alguns casos, como numa versão de avaliação limitada, uma subscrição do Azure tem acesso limitado aos recursos do Azure. Caso a implementação falhe devido a um número limitado de núcleos disponíveis, reduza a contagem de agentes pré-definida ao adicionar --agent-count 1
ao comando az acs create.
Ao fim de vários minutos, o comando é concluído e devolve informações sobre o cluster no formato json.
Ligar ao cluster
Para gerir um cluster de Kubernetes, utilize kubectl, o cliente de linha de comandos do Kubernetes.
Se estiver a utilizar o Azure CloudShell, o kubectl já está instalado. Se pretender instalá-lo localmente, pode utilizar o comando az acs kubernetes install-cli.
Para configurar kubectl para se ligar ao seu cluster do Kubernetes, execute o comando az acs kubernetes get-credentials. Este passo transfere credenciais e configura a CLI do Kubernetes para as utilizar.
az acs kubernetes get-credentials --resource-group=myResourceGroup --name=myK8sCluster
Para verificar a ligação ao cluster, utilize o comando kubectl get para devolver uma lista de nós do cluster.
kubectl get nodes
Saída:
NAME STATUS AGE VERSION
k8s-agent-14ad53a1-0 Ready 10m v1.6.6
k8s-agent-14ad53a1-1 Ready 10m v1.6.6
k8s-agent-14ad53a1-2 Ready 10m v1.6.6
k8s-master-14ad53a1-0 Ready,SchedulingDisabled 10m v1.6.6
Executar a aplicação
Um ficheiro de manifesto do Kubernetes define um estado pretendido para o cluster, incluindo que imagens de contentor devem estar em execução. Neste exemplo, é utilizado um manifesto para criar todos os objetos necessários para executar a aplicação Azure Vote.
Crie um ficheiro com o nome azure-vote.yml
e copie-o para o YAML seguinte. Se estiver a trabalhar no Azure Cloud Shell, este ficheiro pode ser criado através de vi ou Nano, como se estivesse a trabalhar num sistema físico ou virtual.
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
template:
metadata:
labels:
app: azure-vote-back
spec:
containers:
- name: azure-vote-back
image: redis
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/v1beta1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
template:
metadata:
labels:
app: azure-vote-front
spec:
containers:
- name: azure-vote-front
image: microsoft/azure-vote-front:v1
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
Utilize o comando kubectl create para executar a aplicação.
kubectl create -f azure-vote.yml
Saída:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Testar a aplicação
À medida que a aplicação é executada, é criado um serviço do Kubernetes que expõe o front-end da aplicação na Internet. Este processo pode demorar alguns minutos a concluir.
Para monitorizar o progresso, utilize o comando kubectl get service com o argumento --watch
.
kubectl get service azure-vote-front --watch
Inicialmente, o EXTERNAL-IP do serviço azure-vote-front aparece como pendente. Quando o endereço EXTERNAL-IP mudar de pendente para Endereço IP, utilize CTRL-C
para parar o processo de observação do kubectl.
azure-vote-front 10.0.34.242 <pending> 80:30676/TCP 7s
azure-vote-front 10.0.34.242 52.179.23.131 80:30676/TCP 2m
Agora, pode navegar para o endereço IP externo para ver a aplicação Azure Vote.
Eliminar o cluster
Quando o cluster já não for necessário, pode utilizar o comando az group delete para remover o grupo de recursos, o serviço de contentores e todos os recursos relacionados.
az group delete --name myResourceGroup --yes --no-wait
Obter o código
Neste guia de introdução, foram utilizadas imagens de contentores pré-criadas para criar uma implementação de Kubernetes. O código da aplicação relacionado, o Dockerfile, e o ficheiro de manifesto do Kubernetes, estão disponíveis no GitHub.
https://github.com/Azure-Samples/azure-voting-app-redis
Próximos passos
Neste guia de início rápido, implementou um cluster do Kubernetes e implementou uma aplicação de vários contentores no mesmo.
Para saber mais sobre o Azure Container Service e ver um exemplo completo de código para implementação, avance para o tutorial dos clusters de Kubernetes.