Criar implantações no Serviço de Kubernetes do Azure no Azure Stack HCI e no servidor Windows

Uma implantação refere-se a um objeto Kubernetes que gerencia o desempenho e especifica o comportamento desejado de um pod. Ele especifica o ciclo de vida do aplicativo, incluindo os pods atribuídos ao aplicativo. Ele fornece uma maneira de comunicar o estado desejado para seu aplicativo e o controlador trabalha na alteração do estado atual para o estado desejado.

As implantações automatizam o processo para iniciar instâncias de pod e garantem que elas sejam executadas conforme definido em todos os nós dentro do cluster. Administradores e profissionais de TI usam implantações para comunicar o que desejam de um aplicativo e, em seguida, o Kubernetes executa todas as etapas necessárias para criar o estado desejado do aplicativo.

Embora as implantações definam como seus aplicativos são executados, eles não garantem onde seus aplicativos estão localizados em seu cluster. Por exemplo, se o aplicativo exigir uma instância de um pod em cada nó, você desejará usar um DaemonSet. Para aplicativos com estado, um StatefulSet fornece identificadores de rede exclusivos, armazenamento persistente e implantação/dimensionamento ordenado.

O objeto de implantação do Kubernetes permite:

  • Implantar um conjunto de réplicas ou um pod
  • Dimensionar o número de instâncias de um aplicativo para cima ou para baixo
  • Atualizar cada instância em execução de um aplicativo
  • Reverter todas as instâncias em execução de um aplicativo para outra versão
  • Pausar ou continuar uma implantação

Para obter informações adicionais, consulte Implantações do Kubernetes.

Criar uma implantação

Para criar uma implantação, você pode usar os comandos ou kubectl create os kubectl apply comandos. Como o número necessário de pods é mantido e monitorado, eles estão em execução e disponíveis após a criação da implantação. Se um pod falhar, o Kubernetes lançará imediatamente uma réplica do pod para tomar seu lugar no cluster.

O exemplo a seguir descreve os recursos de um arquivo de manifesto de implantaçã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 exibir a implantação, o conjunto de réplicas e os pods, execute o seguinte comando:

kubectl get deployment, replicaset, pod

Atualizar uma implantação

A principal vantagem das implantações é atualizar automaticamente o programa Kubernetes. Sem implantações, você precisaria encerrar manualmente todos os pods antigos, iniciar novas versões do pod e executar uma verificação para ver se há algum problema ao criar pods. Você pode executar kubectl describe deployment para ver a ordem na qual os pods foram criados e removidos.

As implantações automatizam o processo de atualização, pois você simplesmente atualiza o modelo de pod ou o estado desejado. A implantaçã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 em vigor.

Se houver problemas na implantação, o Kubernetes reverterá automaticamente para a versão anterior. Você também pode reverter explicitamente para uma versão específica usando o kubectl rollout undo comando ou pode usá-la kubectl rollout pause para interromper temporariamente uma implantação.

Estratégias para atualizar implantações

O Kubernetes fornece várias estratégias de implantação para que você possa atualizar de várias maneiras para atender às necessidades do seu ambiente. As três estratégias de atualização mais comuns são:

  • Atualização sem interrupção: essa atualização é um processo gradual que permite que você atualize seu sistema kubernetes com apenas um efeito secundário sobre o desempenho e nenhum tempo de inatividade. Ele minimiza o tempo de inatividade ao custo da velocidade de atualização.
  • Recreação: essa estratégia é um processo tudo ou nada que permite que você atualize todos os aspectos do sistema de uma só vez com um breve período de tempo de inatividade. Ele é atualizado rapidamente, mas causa tempo de inatividade.
  • Canário: essa estratégia é um processo de atualização parcial que permite testar sua nova versão do programa em usuários reais sem um compromisso com uma distribuição completa. Ele é atualizado rapidamente para alguns usuários selecionados com uma distribuição completa mais tarde.

Próximas etapas