Kubernetes - implantações

As implantações são atualizadas e uma versão superior do controlador de replicação. Eles gerenciam a implantação de conjuntos de réplicas, que também são uma versão atualizada do controlador de replicação. Eles têm a capacidade de atualizar o conjunto de réplicas e também podem reverter para a versão anterior.

Eles fornecem muitos recursos atualizados de matchLabels e selectors. Temos um novo controlador no mestre do Kubernetes, chamado controlador de implantação, que faz isso acontecer. Ele tem a capacidade de alterar a implantação no meio do caminho.

Mudando a implantação

Updating- O usuário pode atualizar a implantação em andamento antes de ser concluída. Nesse caso, a implantação existente será resolvida e uma nova implantação será criada.

Deleting- O usuário pode pausar / cancelar a implantação excluindo-o antes de ser concluído. Recriar a mesma implantação irá retomá-la.

Rollback- Podemos reverter a implantação ou a implantação em andamento. O usuário pode criar ou atualizar a implantação usandoDeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec.

Estratégias de implantação

As estratégias de implantação ajudam a definir como o novo RC deve substituir o RC existente.

Recreate- Este recurso eliminará todos os RC existentes e, em seguida, exibirá os novos. Isso resulta em implantação rápida, mas resultará em tempo de inatividade quando os pods antigos estiverem inativos e os novos não forem ativados.

Rolling Update- Este recurso desativa gradualmente o RC antigo e ativa o novo. Isso resulta em uma implantação lenta; no entanto, não há implantação. Em todos os momentos, poucos pods antigos e alguns novos estão disponíveis nesse processo.

O arquivo de configuração do Deployment se parece com isso.

apiVersion: extensions/v1beta1 --------------------->1
kind: Deployment --------------------------> 2
metadata:
   name: Tomcat-ReplicaSet
spec:
   replicas: 3
   template:
      metadata:
         lables:
            app: Tomcat-ReplicaSet
            tier: Backend
   spec:
      containers:
         - name: Tomcatimage:
            tomcat: 8.0
            ports:
               - containerPort: 7474

No código acima, a única coisa diferente do conjunto de réplicas é que definimos o tipo como implantação.

Criar implantação

$ kubectl create –f Deployment.yaml -–record
deployment "Deployment" created Successfully.

Busque a implantação

$ kubectl get deployments
NAME           DESIRED     CURRENT     UP-TO-DATE     AVILABLE    AGE
Deployment        3           3           3              3        20s

Verifique o status de implantação

$ kubectl rollout status deployment/Deployment

Atualizando a implantação

$ kubectl set image deployment/Deployment tomcat=tomcat:6.0

Revertendo para a implantação anterior

$ kubectl rollout undo deployment/Deployment –to-revision=2