Curso Container Networking Docker Kubernetes
24 horasVisão Geral
Curso Container Networking Docker Kubernetes. Este curso abrangente é projetado para desenvolvedores, engenheiros de DevOps, administradores de sistemas e arquitetos de nuvem que buscam uma compreensão sólida e prática das redes de contêineres nos ecossistemas Docker e Kubernetes. Do ponto de vista técnico, você explorará os conceitos fundamentais de rede Linux subjacentes aos contêineres (namespaces de rede, vEth pairs, bridges), mergulhará nos modelos de rede do Docker (bridge, host, overlay, macvlan) e, em seguida, avançará para o modelo de rede do Kubernetes (IP-por-Pod) e o papel do CNI (Container Network Interface). O curso oferecerá uma jornada passo a passo, de conceitos básicos a configurações avançadas, incluindo a comunicação entre contêineres e Pods, exposição de aplicações e técnicas de troubleshooting, garantindo que os participantes possam projetar, implementar e depurar redes de contêineres com confiança.
Curso Container Networking Docker Kubernetes, o domínio das redes de contêineres é absolutamente crucial para o sucesso de qualquer estratégia de adoção de contêineres e microsserviços. Problemas de rede são uma das principais causas de falhas e gargalos de desempenho em ambientes conteinerizados. Este curso capacita os profissionais a construir arquiteturas mais resilientes e seguras, a otimizar o desempenho de aplicações, a reduzir o tempo de inatividade por meio de troubleshooting eficaz e a tomar decisões de design de rede informadas, seja em ambientes on-premise ou na nuvem. Profissionais com essa expertise são altamente procurados, pois garantem que as aplicações conteinerizadas operem de forma confiável e eficiente, maximizando o ROI da infraestrutura moderna.
Objetivo
Ao final do Curso Container Networking Docker Kubernetes, você será capaz de:
- Explicar os conceitos básicos de rede Linux que fundamentam os contêineres (namespaces, cgroups, vEth pairs).
- Compreender e configurar os diferentes modos de rede do Docker (bridge, host, none, overlay, macvlan) e seus casos de uso.
- Analisar a comunicação entre contêineres e entre contêineres e o host no Docker.
- Explicar o modelo de rede do Kubernetes (IP-por-Pod) e seus requisitos.
- Entender a função da Container Network Interface (CNI) e como ela se integra ao Kubernetes.
- Descrever como a comunicação Pod-to-Pod ocorre no Kubernetes (dentro e entre nós).
- Configurar e gerenciar Serviços Kubernetes (ClusterIP, NodePort, LoadBalancer) para exposição de aplicações.
- Implementar e solucionar problemas de rede em ambientes Docker e Kubernetes.
- Utilizar ferramentas de linha de comando para inspecionar e depurar problemas de rede em contêineres.
Publico Alvo
- Desenvolvedores: Que trabalham com aplicações conteinerizadas e precisam entender a comunicação entre elas.
- Engenheiros de DevOps: Para gerenciar e solucionar problemas de rede em ambientes de contêineres.
- Administradores de Sistemas: Que estão migrando para contêineres ou gerenciando infraestruturas conteinerizadas.
- Arquitetos de Nuvem: Para projetar soluções de rede escaláveis e seguras para contêineres.
- Qualquer profissional que utilize Docker e/ou Kubernetes e deseja aprofundar seus conhecimentos em rede.
Pre-Requisitos
- Conhecimento básico de Linux: Comandos de terminal, sistema de arquivos, permissões.
- Conhecimento básico de Docker: Comandos
docker run
,docker build
, imagens, contêineres. - Conhecimento básico de Kubernetes: Conceitos de Pods, Deployments, Services, Namespaces.
- Noções básicas de redes TCP/IP (endereçamento IP, portas, DHCP, DNS).
Materiais
Inglês/Português/Lab PráticoConteúdo Programatico
Módulo 1: Fundamentos de Rede Linux para Contêineres (3 horas)
- 1.1. Revisão de Conceitos de Rede Linux:
- Interfaces de rede, endereçamento IP, roteamento, tabelas ARP.
- Bridges Linux: O papel das pontes de rede (e.g.,
docker0
).
- 1.2. Namespaces de Rede (Network Namespaces):
- O que são e como fornecem isolamento de rede para contêineres.
- Comandos
ip netns
para inspeção.
- 1.3. Veth Pairs (Virtual Ethernet Pairs):
- Como os vEth pairs conectam um namespace de rede a outro (e.g., contêiner ao host bridge).
- 1.4. Regras de
iptables
:- Visão geral de
iptables
e seu papel no roteamento e NAT de tráfego de contêineres.
- Visão geral de
- Prática:
- Criar e inspecionar namespaces de rede e vEth pairs manualmente.
- Observar o tráfego usando
tcpdump
em diferentes interfaces.
Módulo 2: Rede Docker: Modos e Topologias (6 horas)
- 2.1. O Modelo de Rede do Docker:
- A rede padrão
bridge
(docker0
). - Como o Docker atribui IPs e configura o roteamento para contêineres.
- NAT (Network Address Translation) no Docker.
- A rede padrão
- 2.2. Modos de Rede Nativos do Docker:
- Bridge Network: O modo padrão, comunicação entre contêineres na mesma bridge.
- Host Network: Contêiner usando a stack de rede do host (sem isolamento).
- None Network: Contêiner sem interface de rede.
- Container Network: Contêiner utilizando a stack de rede de outro contêiner.
- 2.3. Redes Definidas pelo Usuário (
docker network create
):- Benefícios das redes definidas pelo usuário (isolamento, descoberta de serviço por nome).
- Configuração e comunicação.
- 2.4. Redes de Overlay (Swarm Mode):
ingress
network e comunicação entre hosts em um cluster Swarm.- Conceito de VXLAN para redes de overlay.
- 2.5. Redes
macvlan
:- Contêineres com seu próprio endereço MAC e IP na rede física.
- Casos de uso e limitações.
- 2.6. Publicação de Portas (
-p
,--publish
):- Mapeamento de portas entre o host e o contêiner.
- Publicação em portas específicas, em todas as interfaces.
- Prática:
- Criar contêineres em diferentes modos de rede e testar a comunicação.
- Configurar redes definidas pelo usuário e testar a descoberta de serviço por nome.
- Montar um pequeno cluster Docker Swarm e testar redes overlay.
- Publicar portas e acessar aplicações de fora do host.
Módulo 3: Introdução à Rede Kubernetes (5 horas)
- 3.1. O Modelo de Rede do Kubernetes:
- Revisão do princípio "IP-por-Pod": Todos os Pods em um cluster podem se comunicar diretamente.
- Por que não há NAT entre Pods.
- Requisitos de conectividade entre Pods e entre Pods e Serviços.
- 3.2. Container Network Interface (CNI):
- O que é o padrão CNI?
- Como os CNI plugins (e.g., Calico, Flannel, Cilium) implementam o modelo de rede do Kubernetes.
- Principais componentes de um CNI: IPAM (IP Address Management) e Network Plugin.
- 3.3. Comunicação Pod-to-Pod no Kubernetes:
- No Mesmo Nó: Como os Pods se comunicam via bridge ou rotas diretas.
- Entre Nós Diferentes: Explicação de redes overlay (VXLAN, IPIP) vs. roteamento de Underlay (BGP).
- 3.4.
kube-proxy
em Detalhe no Kubernetes:- Revisão do seu papel como proxy de serviço (L4).
- Funcionamento nos modos
iptables
eipvs
para balanceamento de carga de Serviços.
- Prática:
- Instalar um cluster Minikube/Kind.
- Inspecionar as configurações de rede de Pods e nós.
- Observar o tráfego
ping
entre Pods no mesmo nó e entre nós (se o ambiente permitir). - Analisar as regras
iptables
criadas pelokube-proxy
.
Módulo 4: Serviços Kubernetes e Descoberta de Serviço (3 horas)
- 4.1. Tipos de Serviço Kubernetes:
- ClusterIP: Serviço interno, acessível apenas dentro do cluster.
- NodePort: Expondo um serviço em uma porta de cada nó.
- LoadBalancer: Integração com Load Balancers de provedores de nuvem.
- ExternalName: Mapeamento de um serviço para um nome DNS externo.
- 4.2. Descoberta de Serviço com DNS no Kubernetes (CoreDNS):
- Como os Pods descobrem outros serviços usando nomes de domínio.
- Registros DNS para Pods e Serviços.
resolv.conf
em contêineres e seu papel na resolução de nomes.
- 4.3. Headless Services e EndpointSlices:
- Quando usar Headless Services (para StatefulSets, descoberta de serviço customizada).
- Como
EndpointSlices
melhoram a escalabilidade.
- Prática:
- Criar diferentes tipos de Serviços e testar a acessibilidade de dentro e fora do cluster.
- Diagnosticar problemas de resolução de DNS em Pods.
- Criar um Headless Service e observar a descoberta direta de Pods.
Módulo 5: Exposição de Aplicações e Troubleshooting (3 horas)
- 5.1. Ingress e Controladores de Ingress:
- Expondo aplicações HTTP/HTTPS para o mundo externo.
Ingress
como um proxy reverso L7.- Exemplo com Nginx Ingress Controller.
- Roteamento baseado em host e path.
- 5.2. Network Policies (Visão Geral Conceitual):
- Segurança da rede e isolamento de Pods.
- Como os CNI plugins suportam Network Policies.
- 5.3. Ferramentas e Técnicas de Troubleshooting de Rede:
docker network inspect
/docker inspect
: Para inspecionar redes e contêineres Docker.kubectl describe pod/service
/kubectl get events
: Para informações de status.kubectl exec
+ ferramentas de rede:netstat
,ss
,ip route
,ping
,traceroute
,curl
,netcat
dentro de Pods.tcpdump
: Captura de pacotes em interfaces de nó e Pod.- Verificando logs de componentes de rede (
kube-proxy
, CNI DaemonSet). - Cenários de problemas comuns (Pod pending, Service unreachable, DNS issues).
- Prática:
- Implantar uma aplicação web no Kubernetes e expô-la usando um Ingress.
- Realizar um laboratório de troubleshooting guiado para diagnosticar e resolver problemas de conectividade em cenêrios Docker e Kubernetes.