Programming On Mars Logo
  • Início
  • Artigos
  • Laboratórios
Programming On Mars Logo
  • Início
  • Artigos
  • Laboratórios

  • Andre Lucas
  • Mon Aug 12 2024

Executando Primeira Aplicação no Kubernetes

First Application Header

Para seguir este artigo você pode obter os arquivos em - https://github.com/ProgrammingOnMars/kubernetes-for-dev

Agora vamos ver como funcionam as menores unidades implantáveis do Kubernetes chamadas Pod.

Pods são as menores unidades implantáveis de computação que você pode criar e gerenciar no Kubernetes - Recuperado em 13 de agosto de 2024 de https://kubernetes.io/docs/concepts/workloads/pods/

Lembre-se que um Pod não é um container, ele envolve um container.

Também, um Pod pode ter mais de um container mas o caso de uso mais comum é "um-container-por-Pod". Assim, o Kubernetes gerencia o pod ao invés dos containers diretamente.

Uma coisa importante para enfatizar é que pod não é um container ou um processo. É um ambiente para executar cargas de trabalho de containers.

Um Pod não é um processo, mas um ambiente para executar container(s). Um Pod persiste até ser deletado. Recuperado em 13 de agosto de 2024 de https://kubernetes.io/docs/concepts/workloads/pods/

Pod Diagram

Podemos ver na imagem acima, o Pod dentro de um Worker Node e o container dentro de um Pod

De agora em diante, recomendo que você siga e coloque em prática os mesmos exemplos que eu.

Criando um Pod Simples

Vamos criar um arquivo yml para representar um pod.

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: programmingonmars
spec:
  containers:
  - name: nginx
    image: nginx:latest
    ports:
    - containerPort: 80
  • apiVersion: Kubernetes tem uma versão de API. Você precisa especificar a versão da API com a qual deseja se comunicar.
  • kind: o tipo de unidade implantável
  • metadata: Esses dados são usados pelo Kubernetes para gerenciar, identificar e interagir com recursos como Pods, Services, Deployments.
  • metadata -> name: este é um identificador único.
  • metadata -> labels: Estes são pares chave-valor que são anexados a recursos e são usados para organizar, selecionar e consultar recursos.
  • spec: esta é a especificação do Pod, ela contém todas as configurações desejadas, e descreve como o Pod deve parecer e se comportar.
  • spec -> containers: esta é uma lista de containers que serão executados dentro do Pod.
  • spec -> containers -> image: a imagem do container será usada
  • spec -> containers -> ports: as portas do container que serão expostas
kubectl apply -f simple-pod.yml

O que acontecerá após aplicar esta configuração no meu cluster k8s?

Então, basicamente o kubectl solicitará ao kube-api para agendar a criação do Pod.

Pod Get Pods Output

Por enquanto, só precisamos saber que o pod foi criado, seu status está running, e temos 1 em execução.

Execute o comando:

kubectl get pods -o wide

para ver os pods com mais detalhes.

Pod Get Pods Wide Output

Escalabilidade, Disponibilidade e Confiabilidade

Imagine que você tem uma falha na sua aplicação e precisa manter confiabilidade e disponibilidade, vamos ver se usando um pod você consegue manter isso.

kubectl delete pod nginx

A verdade é que se você quer usar um cluster Kubernetes, provavelmente quer gerenciar muitas aplicações de carga de trabalho, talvez usar uma arquitetura de microserviços ou aumentar o número de réplicas do módulo específico (microserviço) do seu sistema.

Como você pode ver, o Pod foi deletado, e é isso, precisamos melhorar esta implementação e usar outro tipo de objeto para manter a escalabilidade, disponibilidade e confiabilidade de uma boa aplicação.

Como poderíamos melhorar este cenário?

Vamos compreender o ReplicaSet

Tags:
KubernetesHands-OnArquitetura de Softwarek8sDevOps
  • Política de Privacidade
  • Termos de Serviço
  • Contato
© 2025 Programming On Mars. Todos os direitos reservados.