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.
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:
Para verificar:
Versionamento¶
Com o versionamento podemos, criar versões e depois podemos retornar se houve necessidade
Vou alterar a versão do nginx:1.14.2 para nginx:1 com o set.
Em seguida repetimos o processo para verificar a revisão.
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:
Lembrando é importante você anotar sempre que mudar de versão.
E para retorna para alguma versão específica:
Escalando a quantidade de réplicas¶
Para escalar é bem simples:
Usando o scale e com a flag --replicas definimos a quantidade de réplicas.
Leia a Documentação para ter mais informações.