Como é que as aplicações em execução no Kubernetes interagem entre si?
sobes.tech IA
Resposta da IA
A interação entre aplicações no Kubernetes ocorre principalmente através de serviços de rede.
-
Descoberta de Serviços: As aplicações não se comunicam diretamente com os pods pelos seus endereços IP, pois estes são efémeros e podem mudar ao serem recriados. Em vez disso, usam a Descoberta de Serviços, que fornece um nome DNS estável e um IP para um grupo de pods que desempenham a mesma função.
- ClusterIP: Tipo de serviço padrão, que fornece um IP interno acessível apenas dentro do cluster.
- NodePort: Abre uma porta estática em cada nó do cluster, redirecionando o tráfego para o serviço ClusterIP.
- LoadBalancer: Cria um balanceador de carga externo (se o provedor de nuvem suportar).
- ExternalName: Permite que o serviço faça referência a um nome DNS externo.
-
DNS: O Kubernetes fornece um servidor DNS interno (por exemplo, CoreDNS), que cria automaticamente nomes DNS para os serviços. A aplicação pode aceder a outro serviço pelo nome
service-name.namespace.svc.cluster.localou por uma versão abreviadaservice-name. -
Políticas de Rede: Determinam como os grupos de pods podem interagir entre si e com pontos finais de rede externos. São usadas para isolar o tráfego de rede por motivos de segurança.
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-all-ingress namespace: default spec: podSelector: {} # Aplica-se a todos os pods no namespace default policyTypes: - Ingress ingress: [] # Proíbe todo o tráfego de entrada -
Ingress: Gerencia o acesso externo aos serviços no cluster, geralmente via HTTP/HTTPS. O controlador de Ingress (por exemplo, Nginx Ingress, Traefik) encaminha o tráfego da rede externa para os serviços internos correspondentes com base nas regras definidas no recurso Ingress.
-
Service Mesh: (Por exemplo, Istio, Linkerd) Adiciona um nível adicional de abstração e funcionalidade para a interação entre serviços. Oferece capacidades como TLS mútuo, rastreabilidade de requisições, métricas, gestão de tráfego (testes A/B, lançamentos canários) ao nível de proxies (contenores sidecar) adicionados a cada pod.
Assim, os principais mecanismos de interação são a Descoberta de Serviços via DNS e os diferentes tipos de Serviços, complementados por Políticas de Rede para segurança e Ingress/Service Mesh para uma gestão mais avançada do tráfego e da observabilidade.