Criar implantações

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 para alterar o estado atual para o estado desejado.

As implantações automatizam o processo para iniciar instâncias de pod e garantir que elas são executados 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 usa todas as etapas necessárias para criar o estado desejado do aplicativo.

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

O objeto de implantação do Kubernetes permite que você:

  • 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

Você cria uma implantação usando os kubectl apply comandos kubectl create ou . Como o número necessário de pods é mantido e monitorado, eles estão em execução e disponíveis depois que a implantação é criada. Se um pod falhar, o Kubernetes colocará imediatamente uma réplica do pod em 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:
containers:
      template:
           metadata:
      labels:
        app: nginx
            spec:  
      	    containers:  
       	    -name: nginx  
       	    image: nginx: 1.7.9
       	    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 seu programa kubernetes. Sem implantações, você teria que encerrar manualmente todos os pods antigos, iniciar novas versões de pod e executar uma verificação para ver se há problemas ao criar pods. Você pode executar kubectl describe deployment para ver a ordem na qual os pods foram trazidos e removidos.

As implantações automatizam o processo de atualização conforme 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 seja realizada.

Se houver problemas na implantação, o Kubernetes será automaticamente retornado para a versão anterior. Você também pode reverter explicitamente para uma versão específica usando o comando ou pode usar o kubectl rollout undokubectl 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çãosem-rolagem: essa atualização é um processo gradual que permite que você atualize seu sistema Kubernetes com apenas um efeito secundário no desempenho e sem tempo de inatividade. Ele minimiza o tempo de inatividade às custas da velocidade da atualização.
  • Recriaçã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 rollout completa. Ele é atualizado rapidamente para alguns usuários selecionados com uma rollout completa posteriormente.

Próximas etapas