Share via


Criar implementações

Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server

Este artigo fornece uma descrição geral das implementações do Kubernetes e descreve como criar e atualizar implementações no AKS ativada pelo Azure Arc.

Descrição geral das implementações do Kubernetes

Uma implementação refere-se a um objeto do Kubernetes que gere o desempenho e especifica o comportamento pretendido de um pod. Especifica o ciclo de vida da aplicação, incluindo os pods atribuídos à aplicação. Uma implementação fornece uma forma de comunicar o estado pretendido para a sua aplicação e o controlador funciona para alterar o estado atual para o estado pretendido.

As implementações automatizam o processo para iniciar instâncias de pod e garantem que são executadas conforme definido em todos os nós dentro do cluster. Os administradores e os profissionais de TI utilizam implementações para comunicar o que querem de uma aplicação e, em seguida, o Kubernetes toma todos os passos necessários para criar o estado pretendido da aplicação.

Embora as implementações definam a forma como as aplicações são executadas, não garantem onde as aplicações estão localizadas no cluster. Por exemplo, se a sua aplicação precisar de uma instância de um pod em cada nó, quer utilizar um DaemonSet. Para aplicações com estado, um StatefulSet fornece identificadores de rede exclusivos, armazenamento persistente e implementação/dimensionamento ordenados.

O objeto de implementação do Kubernetes permite-lhe:

  • Implementar um conjunto de réplicas ou um pod.
  • Aumente ou reduza verticalmente o número de instâncias de uma aplicação.
  • Atualize todas as instâncias em execução de uma aplicação.
  • Reverter todas as instâncias em execução de uma aplicação para outra versão.
  • Colocar em pausa ou continuar uma implementação.

Para obter mais informações, veja Implementações do Kubernetes.

Create a deployment (Criar uma implementação)

Para criar uma implementação, pode utilizar os kubectl apply comandos ou kubectl create . Uma vez que o número necessário de pods é mantido e monitorizado, estes estão em execução e disponíveis após a implementação ser criada. Se um pod falhar, o Kubernetes implementa imediatamente uma réplica do pod para ocupar o seu lugar no cluster.

O exemplo seguinte descreve as funcionalidades de um ficheiro de manifesto de implementação no formato YAML:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - image: nginx
          name: nginx
          ports:
            - containerPort: 80

Para ver a implementação, o conjunto de réplicas e os pods, execute o seguinte comando:

kubectl get deployment, replicaset, pod

Atualizar uma implementação

A principal vantagem das implementações é a capacidade de atualizar automaticamente o programa Kubernetes. Sem implementações, teria de terminar manualmente todos os pods antigos, iniciar novas versões do pod e executar uma verificação para ver se existem problemas ao criar pods. Pode executar kubectl describe deployment para ver a ordem pela qual os pods foram criados e removidos.

As implementações automatizam o processo de atualização, uma vez que atualiza simplesmente o modelo de pod ou o estado pretendido. A implementação altera o estado do programa em segundo plano com ações, como criar novos pods ou alocar mais recursos, até que a atualização escolhida esteja implementada.

Se existirem problemas na implementação, o Kubernetes reverterá automaticamente para a versão anterior. Também pode reverter explicitamente para uma versão específica com o kubectl rollout undo comando ou pode utilizar o kubectl rollout pause para parar temporariamente uma implementação.

Estratégias para atualizar implementações

O Kubernetes fornece várias estratégias de implementação para que possa atualizar de várias formas de acordo com as necessidades do seu ambiente. As três estratégias de atualização mais comuns são:

  • Atualização sem interrupção: esta atualização é um processo gradual que lhe permite atualizar o seu sistema Kubernetes com apenas um efeito secundário no desempenho e sem tempo de inatividade. Minimiza o tempo de inatividade ao custo da velocidade de atualização.
  • Recreação: esta estratégia é um processo tudo ou nada que lhe permite atualizar todos os aspetos do sistema de uma só vez com um breve período de indisponibilidade. É atualizado rapidamente, mas causa tempo de inatividade.
  • Canary: esta estratégia é um processo de atualização parcial que lhe permite testar a nova versão do programa em utilizadores reais sem um compromisso com uma implementação completa. Atualiza rapidamente para alguns utilizadores selecionados com uma implementação completa mais tarde.

Passos seguintes