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:

facebook              

 

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

PIX Nubank

PIX Nubank


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:

  1. 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.
  2. 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.
  3. 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)

template:

  • metadata:
    • labels:
      • app: nginx (rótulos aplicados aos Pods criados pelo Deployment)
  • spec:
    • containers:
      • name: nginx (nome do container)
      • image: nginx:1.16 (imagem do container a ser executada)
      • ports:
        • containerPort: 80 (porta interna do container)

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.

Até lá! 🚀

Voltar para página principal do blog

Todas as aulas desse curso

Aula 05                                                 Aula 07

Meu github:

https://github.com/toticavalcanti

Novamente deixo meus link de afiliados:

Hostinger

Digital Ocean

One.com

Obrigado, até a próxima e bons estudos. 😉

Category: DevOps, Kubernates
About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>