Curso Container Networking Docker Kubernetes

  • DevOps | CI | CD | Kubernetes | Web3

Curso Container Networking Docker Kubernetes

24 horas
Visã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ático
Conteú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.
  • 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.
  • 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 e ipvs 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 pelo kube-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.
TENHO INTERESSE

Cursos Relacionados

Curso Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h