Aula 06 – Kubernetes – Deployments
Aula 06 – Kubernetes – Deployments
Voltar para página principal do blog
Todas as aulas desse curso
Aula 05 Aula 07
Redes Sociais:
Site das bibliotecas
Tensorflow
Keras
Cursos Gratuitos
Digital Innovation
Quer aprender python3 de graça e com certificado? Acesse então:
workover
Empresas de Cloud:
Hostinger
Digital Ocean
One.com
Canais do Youtube
Toti
Lofi Music Zone Beats
Backing Track / Play-Along
Código Fluente
Putz!
Vocal Techniques and Exercises
Fiquem a vontade para me adicionar ao linkedin.
PIX para doações
Aula 06 – Kubernetes – Deployments
Documentação do Minikube: https://minikube.sigs.k8s.io/docs
Documentação do Kubernates: https://kubernetes.io/docs/home/
Github do Kubernates: https://github.com/kubernetes/kubernetes
Playground: https://killercoda.com/kubecon
Introdução
Bem-vindos à sexta aula do curso de Kubernetes!
Nesta, vamos dar continuidade ao aprendizado, explorando agora o conceito de Deployments.
Deployment – Visão Geral
O que é um Deployment?
Um Deployment é um recurso no Kubernetes que gerencia a implantação declarativa de aplicativos.
Ele fornece atualizações para aplicações declarando o estado desejado da aplicação.
Um Deployment permite que você descreva um estado desejado em um arquivo e o Kubernetes cuida da execução desse estado na infraestrutura.
Por que usar Deployments?
Enquanto o ReplicaSet é eficaz para garantir que um número específico de réplicas de Pods esteja sempre em execução, o Deployment oferece uma camada de abstração adicional e traz benefícios significativos:
- Declaratividade: Com um Deployment, você declara o estado desejado do sistema e o Kubernetes se encarrega de fazer com que o sistema alcance esse estado.
- Atualizações Declarativas: Os Deployments facilitam as atualizações de aplicativos. Você pode declarar uma nova versão de seu aplicativo e o Kubernetes cuidará da atualização gradual dos Pods, garantindo zero tempo de inatividade, se configurado adequadamente.
- Rollback Simples: Se algo der errado durante uma atualização, você pode facilmente reverter para a versão anterior com um comando simples.
Exemplo de Deployment
Inicie o minikube
minikube start
Veja o status
minikube status
Agora vamos dar uma olhada em um exemplo de uso de Deployment.
my-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.16
ports:
- containerPort: 80
Explicação:
apiVersion: apps/v1 (indica a versão da API do Kubernetes usada)
kind: Deployment (indica o tipo de recurso criado)
metadata:
- name: nginx-deployment (nome do Deployment)
- spec: (seção onde definimos as especificações do Deployment)
spec:
- replicas: 3 (número de réplicas do container que o Deployment mantém em execução)
- selector:
- matchLabels:
- app: nginx (usado para selecionar Pods que possuem o label “app=nginx” para fazer parte deste Deployment)
- matchLabels:
template:
- metadata:
- labels:
- app: nginx (rótulos aplicados aos Pods criados pelo Deployment)
- labels:
- spec:
- containers:
- name: nginx (nome do container)
- image: nginx:1.16 (imagem do container a ser executada)
- ports:
- containerPort: 80 (porta interna do container)
- containers:
Hands-On: Aplicando e Gerenciando Deployments
Vamos realizar alguns comandos práticos para aplicar e gerenciar Deployments no nosso cluster Kubernetes. Certifique-se de ter o Minikube iniciado.
1. Aplicar o Deployment:
kubectl apply -f my-deployment.yaml
2. Verificar o status do Deployment:
kubectl get deployments
3. Verificar os Pods associados ao Deployment:
kubectl get pods
4. Mostra do detalhes do Deployment:
kubectl describe deployment nginx-deployment
5. Aumentando o número de Replicas do Deployment de 1 Pod para 5 Pods:
kubectl scale deployment nginx-deployment --replicas=5
Veja agora os Pods que estão em execução
kubectl get pods -o wide
OBS. Veja que os pods estão em execução no mesmo nó, no caso, o nó minikube, mas em um cluster com vários nós, esses pods estariam em execução em diferentes nós.
6. Atualizar a versão da imagem do contêiner no Deployment:
kubectl set image deployment/nginx-deployment nginx=nginx:1.18
7. Verificar o histórico de revisões do Deployment:
kubectl rollout history deployment/nginx-deployment
8. Reverter para uma revisão específica:
kubectl rollout undo deployment/nginx-deployment --to-revision=2
Conclusão
Nesta aula, exploramos o conceito de Deployments no Kubernetes.
Vimos como eles oferecem uma camada de abstração para facilitar a implantação e atualização de aplicações de forma declarativa.
Os Deployments são uma peça-chave na gestão de aplicações em clusters Kubernetes, proporcionando flexibilidade e controle.
Na próxima aula, continuaremos a aprimorar nossos conhecimentos, explorando outro recurso essencial do Kubernetes, que são os services.