Rede no Kubernetes
Em Kubernetes, Pod recebe IP próprio e o CNI fornece a conectividade. Não dependa do IP
do Pod: ele muda ao recriar. Service oferece nome e IP virtual estáveis; ClusterIP é
interno, LoadBalancer pede integração do provedor e NodePort é exceção controlada, não
exposição padrão de produção.
kubectl get svc minha-api -n app -o yamlkubectl get endpointslices -n app -l kubernetes.io/service-name=minha-apikubectl run diag --rm -it --image=curlimages/curl --restart=Never -- \ curl -sv http://minha-api.app.svc.cluster.local:8080/readyzUm Service sem EndpointSlice geralmente tem selector/label divergente ou Pods não Ready.
DNS interno resolve <service>.<namespace>.svc.cluster.local; uma NetworkPolicy que nega
egress sem liberar DNS transforma qualquer acesso por nome em falha de rede.
Ingress e Gateway API roteiam HTTP(S) na borda, mas dependem de controlador instalado. Gateway API separa infraestrutura compartilhada (Gateway) de regras delegáveis (Route), o que ajuda multi-times. Escolha um único padrão por plataforma, defina TLS, timeout, limite de tamanho e observabilidade no controlador — criar o recurso não cria segurança nem certificado por si só.
Comece segmentando com evidência
Seção intitulada “Comece segmentando com evidência”apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata: { name: default-deny, namespace: app }spec: podSelector: {} policyTypes: [Ingress, Egress]Política só funciona se o CNI a impõe. Aplique primeiro em ambiente de teste e adicione explicitamente DNS, ingress e dependências necessárias; use o template de negação padrão como base.
Próximo passo: conecte apenas workloads Ready e use o roteiro de Diagnóstico para separar DNS, Service e aplicação.