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