DEV Community

Daniel
Daniel

Posted on • Updated on

Pods - Kubernetes (BR)

O que são os pods no kubernetes ?

É um contexto compartilhado dividindo o mesmo isolamento tanto lógico quanto físico, também é semelhante a um conjunto de containers com volumes e namespaces compartilhados.

Exemplo de criação de um Pod no kubernetes:

Utilizando a última versão do nginx

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx:latest
    ports:
    - containerPort: 80
Enter fullscreen mode Exit fullscreen mode

Para rodar o exemplo acima basta utilizar o seguinte comando no mesmo diretório do arquivo:

kubectl apply -f {nome_do_seu_arquivo}
Enter fullscreen mode Exit fullscreen mode

Esse caso de criação de Pod é somente usado para estudos dentro do kubernetes, geralmente você não cria os Pods diretamente, você pode usar outros recursos como Deployment/ReplicasSet ou para casos de rastrear o estado use StatefulSet.

Como se trabalhar com Pods.

Nós temos duas principais maneiras de se trabalhar com Pods:

1/1 - Um Pod para um container

a maneira mais comum de se trabalhar.
Exemplo: Pod é como um wrapper(embrulho) no container, Kubernetes gerencia Pods em vez de gerenciar os containers diretamente.


1/x - Um Pod para múltiplos containers

Para casos onde você tem uma aplicação fortemente acoplada, que precisa compartilhar seus recursos. Exemplo: Um container atende os dados de um Volume enquanto outro container é utilizado para atualizar esses dados.


Pods são na maioria das vezes projetados para serem efêmeros e descartáveis. Os Pods permanecerão ativos até que:

  • Termine a execução.
  • O Pod seja excluído.
  • O Pod seja removido por falta de recursos
  • Ou caso o node falhe.

Um Pod não é um processo, mas um ambiente para execução de containers, um Pod persiste até ser excluído por motivos listados acima. Por isso reiniciar um container é diferente de reiniciar um Pod.


Conclusão

Para concluir pense assim, um Pod é um ambiente para execução de containers, olhe a imagem a seguir.
Exemplo Pods

Basicamente, containers do mesmo Pod podem se comunicar através do localhost por compartilhar os mesmo recursos de rede, agora para acessar outros Pods precisamos do seus IP's e portas dos containers.

Esse foi minha explicação sobre os Pods. Fique atento para os posts explicando os recursos como Deployment, ReplicasSet e StatefulSet.


Referências:

Kubernetes.io

Top comments (1)

Collapse
 
joseborbolato profile image
José Luiz

Excelente texto, Daniel.
Parabéns!!!