Pular para conteúdo

Deployment

Você descreve um estado desejado em um Deployment e controla e altera o estado real para o estado desejado a uma taxa controlada. Você pode definir Deployment para criar novos ReplicaSets ou remover Deployment existentes e adotar todos os seus recursos com novas Deployment.

Bem, para simplificar iremos criar um .yaml e passar no kind o Deployment, que vai criar um versionamento para a aplicação, porém ele engloba o ReplicaSets, passando a quantidade de réplicas.

deployment

Para simplificar ainda mais é praticamente um ReplicaSet com versionamento.

Crie o arquivo .yaml e vamos executar:

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

Execute em seguida:

kubectl apply -f deployment.yaml

Para verificar:

kubectl get deployment

Versionamento

Com o versionamento podemos, criar versões e depois podemos retornar se houve necessidade

kubectl rollout history deployment

Se houver mais deployment basta passa o nome no final para especificar.

REVISION  CHANGE-CAUSE
1         <none>

Aqui no nosso histórico está em none na versão 1

Vou alterar a versão do nginx:1.14.2 para nginx:1 com o set.

kubectl set image deployment/nginx-deployment nginx=nginx:1

Em seguida repetimos o processo para verificar a revisão.

kubectl rollout history deployment

Se houver mais deployment basta passa o nome no final para especificar.

REVISION  CHANGE-CAUSE
1         <none>
2         <none>

Aqui no nosso historico agora com a versão 2

Que tal mudamos o nome das alterações que fizemos? Usando o annotate

kubectl annotate deployment/nginx-deployment kubernetes.io/change-cause="alteração da imagem para a versão 1"

E a saida do kubectl rollout history deployment agora está com a alteração:

REVISION  CHANGE-CAUSE
1         <none>
2         alteração da imagem para a versão 1

Lembrando é importante você anotar sempre que mudar de versão.

E para retorna para alguma versão específica:

kubectl rollout undo deployment/nginx-deployment --to-revision=1

Escalando a quantidade de réplicas

Para escalar é bem simples:

kubectl scale deployment/nginx-deployment --replicas=10

Usando o scale e com a flag --replicas definimos a quantidade de réplicas.

Leia a Documentação para ter mais informações.