Implantar um aplicativo no seu cluster do Serviço de Kubernetes do Azure

Concluído

Sua empresa está buscando maneiras de implantar seu serviço de renderização de vídeo baseado em nuvem. Você escolheu o Serviço de Kubernetes do Azure (AKS) como sua plataforma de desenvolvimento nativo de nuvem. Com o cluster configurado, você está pronto para implantar um dos componentes no seu aplicativo de renderização de vídeo. Você decide implantar uma versão estática do site da sua empresa para explorar o processo de implantação do Kubernetes.

Antes de discutirmos o método de implantação usado pelo Kubernetes, vamos examinar algumas das etapas que você executará para implantar um aplicativo semelhante em um ambiente não Kubernetes.

Suponha que você esteja usando uma VM (máquina virtual) do Azure como a plataforma de destino. A primeira etapa é preparar o software para servidores para hospedar o aplicativo. Você vai:

  • Instalar o sistema operacional.
  • Certificar-se de atualizar o sistema operacional para os patches de segurança e de software mais recentes.
  • Instalar e configure o software para o servidor Web.
  • Implantar o aplicativo Web.

Repita esse processo para cada nova VM quando decidir expandir o site para lidar com um aumento na demanda dos clientes.

Uma abordagem alternativa é executar o site em uma plataforma baseada em contêiner, como a Instâncias de Contêiner do Azure. Você não precisa se preocupar com a tecnologia de servidor subjacente, mas precisa configurar e gerenciar vários contêineres para usar essa estratégia manualmente.

O Kubernetes e o AKS ajudam a orquestrar os contêineres. Os recursos de orquestração de contêineres do Kubernetes facilitam o gerenciamento de cargas de trabalho no cluster. Você implanta as cargas de trabalho por meio de contêineres criados com base em imagens de contêiner para executar os seus aplicativos em um cluster do AKS.

Aqui você pode explorar como criar cargas de trabalho no seu cluster do AKS.

O que é um registro de contêiner?

Um registro de contêiner permite que você armazene imagens de contêiner com segurança na nuvem para implantação posterior. Considere o registro de contêiner como arquivos que armazenam várias versões da imagem de contêiner. Cada imagem armazenada tem uma marca atribuída para identificação.

Por exemplo, você pode ter a imagem contoso-website:latest, que será uma versão diferente da imagem com a marca contoso-website:v1.0.0.

A diagram that shows how container images are downloaded from a container registry to a Kubernetes cluster by using a manifest file.

Os registros de contêiner podem ser públicos ou privados. Os registros privados exigem credenciais para acessar e baixar as imagens, e essa será a estratégia que você seguirá ao armazenar imagens de contêiner.

O Kubernetes só permite que você implante imagens hospedadas em um registro de contêiner. A criação de um registro de contêiner privado normalmente faz parte da sua estratégia padrão de implantação do AKS.

O que é um pod do Kubernetes?

Um pod do Kubernetes agrupa contêineres e aplicativos em uma estrutura lógica. Esses pods não têm inteligência e são compostos por um ou mais contêineres de aplicativos. Cada um tem um endereço IP, regras de rede e portas expostas.

Por exemplo, se quisesse pesquisar todas as cargas de trabalho relacionadas ao contoso-website, você consultaria no cluster os pods com o rótulo app e o valor contoso-website.

O que é a implantação do Kubernetes?

A diagram that shows a Kubernetes deployment with a label and three pods.

Uma implantação do Kubernetes é uma evolução dos pods. Uma implantação encapsula os pods em um objeto inteligente que permite a expansão deles. Você pode duplicar e escalar o seu aplicativo com facilidade para dar suporte a mais carga sem a necessidade de configurar regras de rede complexas.

As implantações permitem que os usuários atualizem os aplicativos apenas alterando a marca da imagem sem nenhum tempo de inatividade. Quando você atualiza uma implantação, em vez de excluir todos os aplicativos, a implantação desativa os aplicativos online um a um. Em seguida, ela os substitui pela versão mais recente. Esse aspecto significa que qualquer implantação pode atualizar os pods contidos nela sem nenhum efeito visível na disponibilidade.

Arquivos de manifesto do Kubernetes

Um arquivo de manifesto do Kubernetes permite descrever suas cargas de trabalho no formato YAML de maneira declarativa e simplificar o gerenciamento de objetos do Kubernetes.

Imagine que você precise implantar uma carga de trabalho manualmente. Você precisa considerar e gerenciar vários aspectos. Será necessário criar um contêiner, selecionar um nó específico, encapsulá-lo em um pod, executar o pod, monitorar a execução etc.

Os arquivos de manifesto contêm todas as informações necessárias para criar e gerenciar a carga de trabalho descrita.

O que é um rótulo do Kubernetes?

Um rótulo do Kubernetes permite que você agrupe objetos do Kubernetes logicamente. Esses rótulos permitem que o sistema consulte o cluster em busca de objetos que correspondam a um rótulo com um nome específico.

A estrutura de um arquivo de manifesto

A estrutura dos arquivos de manifesto são diferentes, dependendo do tipo de recurso criado. No entanto, os arquivos de manifesto têm instruções em comum. Essas instruções definem vários aspectos, como as APIs a serem usadas e o tipo de carga de trabalho a ser criado.

As duas primeiras entradas de todos os arquivos de manifesto têm duas chaves importantes, apiVersion e kind. Veja a seguir um exemplo de um arquivo de implantação.

apiVersion: apps/v1 # Where in the API it resides
kind: Deployment # The kind of workload we're creating

A chave apiVersion define o ponto de extremidade do servidor de API que gerencia o objeto que será implantado.

A chave kind define a carga de trabalho que será criada por essa implantação.

Outras chaves comuns para todos os arquivos são as chaves metadata e name. Todos os recursos do Kubernetes precisam ter um nome. Esse nome fica dentro da chave de metadata.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: contoso-website # This will be the name of the deployment

Agrupar objetos em uma implantação

As implantações fazem uso de um label para encontrar e agrupar pods. O rótulo é definido como parte do arquivo de manifesto da implantação.

Veja um exemplo. Observe o valor matchLabels especificado na definição selector adicionada à definição spec.

# deployment.yaml
# ...
spec:
  selector:
    matchLabels:
      app: contoso-website
# ...

Desse ponto em diante, todos os arquivos terão estruturas diferentes com base no tipo de recurso que você está instruindo o Kubernetes a criar.

Aplicar um arquivo de implantação

Um arquivo de manifesto de implantação do Kubernetes é implantado por meio do kubectl. Veja a seguir um exemplo do comando.

kubectl apply -f ./deployment.yaml

Verificar seu conhecimento

1.

O que é um registro de contêiner?

2.

O que é um arquivo de manifesto?