Pods com vários contêineres (sidecars)
Explore padrões para executar vários contêineres colocados juntos em um único pod, como os contêineres sidecar.
Pods com vários contêineres (sidecars) é uma aula grátis de Kubernetes Basics no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kubernetes Basics, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kubernetes Basics inclui 4 aulas no total.
Além de um único contêiner
Até agora, consideramos os pods como estruturas que executam um único contêiner. Mas e se sua aplicação precisar de um processo auxiliar?
O Kubernetes permite que um pod execute vários contêineres. Esses contêineres ficam sempre no mesmo local e compartilham recursos.
Por que usar pods com vários contêineres?
Executar vários contêineres em um pod é ideal para aplicações fortemente acopladas que precisam compartilhar:
- Espaço de nomes de rede (o mesmo endereço IP; eles podem se comunicar por meio de
localhost) - Volumes de armazenamento
- Ciclo de vida (eles iniciam, param e reiniciam juntos)
Isso permite ter uma única unidade de gerenciamento para processos relacionados.
Explicação do padrão de contêiner auxiliar
Um design comum é o padrão de contêiner auxiliar. Nesse caso, um contêiner auxiliar é executado ao lado do contêiner da aplicação principal.
Ele amplia ou aprimora a funcionalidade da aplicação principal sem modificar a própria aplicação. Pense nele como um companheiro prestativo!
Casos de uso de contêineres auxiliares
Os contêineres auxiliares são extremamente versáteis. Entre os usos comuns estão:
- Coleta de registros: um contêiner auxiliar coleta os registros da aplicação principal e os envia para um serviço central de registros.
- Proxy: um contêiner auxiliar fornece funções de proxy de rede, por exemplo, para segurança (mTLS) ou gerenciamento de tráfego.
- Sincronização de arquivos: um contêiner auxiliar mantém um volume compartilhado atualizado com configurações ou dados.
Pod com dois contêineres (YAML)
Veja como definir vários contêineres no manifesto YAML de um pod. Cada contêiner é um item na matriz containers.
Observe os contêineres nginx-proxy e main-app definidos em spec.containers.
apiVersion: v1
kind: Pod
metadata:
name: multi-container-pod
spec:
containers:
- name: nginx-proxy
image: nginx:latest
ports:
- containerPort: 80
- name: main-app
image: busybox:latest
command: ["sh", "-c", "echo 'Hello from main app!' && sleep 3600"]Armazenamento compartilhado: emptyDir
Os contêineres dentro do mesmo pod podem compartilhar dados usando volumes do Kubernetes. Uma forma simples de fazer isso é usar um volume emptyDir.
Um volume emptyDir é criado quando um pod é atribuído a um nó e existe enquanto esse pod estiver em execução nesse nó. Trata-se de armazenamento temporário.
Exemplo: contêiner auxiliar coletor de registros
Imagine uma aplicação principal que gera registros em um arquivo. Um contêiner auxiliar pode ler esse arquivo de registro e enviá-lo para um serviço de registros.
Isso separa a lógica de registro da aplicação principal, mantendo-a limpa e concentrada em sua função.
YAML do coletor de registros (parte 1)
Veja o YAML do nosso exemplo de coletor de registros. Definimos um volume emptyDir chamado log-volume. Ambos os contêineres montarão esse volume.
O contêiner main-app grava uma mensagem de registro em /var/log/app.log, dentro do volume compartilhado.
apiVersion: v1
kind: Pod
metadata:
name: log-collector-pod
spec:
volumes:
- name: log-volume
emptyDir: {}
containers:
- name: main-app
image: busybox:latest
command: ["sh", "-c", "while true; do echo $(date) 'Main app log entry' >> /var/log/app.log; sleep 1; done"]
volumeMounts:
- name: log-volume
mountPath: /var/logYAML do coletor de registros (parte 2)
Agora, o contêiner log-sidecar monta o mesmo log-volume. Em seguida, ele usa tail -f para ler continuamente o arquivo de registro gravado pela aplicação principal.
Em um cenário real, esse contêiner auxiliar processaria e enviaria esses registros para um sistema de registros, como Elasticsearch ou Splunk.
apiVersion: v1
kind: Pod
metadata:
name: log-collector-pod # Same Pod as before
spec:
volumes:
- name: log-volume
emptyDir: {}
containers:
- name: main-app
image: busybox:latest
command: ["sh", "-c", "while true; do echo $(date) 'Main app log entry' >> /var/log/app.log; sleep 1; done"]
volumeMounts:
- name: log-volume
mountPath: /var/log
- name: log-sidecar
image: busybox:latest
command: ["sh", "-c", "tail -f /var/log/app.log"]
volumeMounts:
- name: log-volume
mountPath: /var/logVerificação rápida: benefícios dos contêineres auxiliares
Os pods com vários contêineres, especialmente com o padrão de contêiner auxiliar, oferecem várias vantagens para gerenciar aplicações complexas.
Quais das opções a seguir são benefícios importantes do uso de um contêiner auxiliar?
Resumo: pods com vários contêineres
Parabéns! Você aprendeu sobre pods com vários contêineres e o poderoso padrão de contêiner auxiliar.
- Os pods podem hospedar vários contêineres que compartilham rede e armazenamento.
- O padrão de contêiner auxiliar ajuda a ampliar ou aprimorar a funcionalidade da aplicação principal.
- Os usos comuns incluem coleta de registros, proxies e sincronização de dados.
- Os volumes
emptyDirfornecem armazenamento temporário compartilhado dentro de um pod.
Esse padrão é essencial para criar aplicações robustas e modulares no Kubernetes!
Perguntas Frequentes
A aula “Pods com vários contêineres (sidecars)” é grátis?
Sim — o texto completo de “Pods com vários contêineres (sidecars)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kubernetes Basics, atualize para CoddyKit PRO. O curso de Kubernetes Basics inclui 4 aulas no total.
O que vou aprender em “Pods com vários contêineres (sidecars)”?
Explore padrões para executar vários contêineres colocados juntos em um único pod, como os contêineres sidecar. Você pratica Kubernetes Basics com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Kubernetes Basics?
Nenhuma experiência prévia é necessária. Kubernetes Basics no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Pods com vários contêineres (sidecars)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Kubernetes Basics?
Sim. Cada aula de Kubernetes Basics inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Pods: a menor unidade
- Ciclo de vida e estados dos pods
- Pods com vários contêineres (sidecars)
- Contêineres de inicialização e ordenação de inicialização