Sobes.tech
Junior

O que são rotas no Kubernetes e para que são usadas?

sobes.tech IA

Resposta da IA

As rotas, ou Ingress Routes, no Kubernetes, são uma forma de fornecer acesso externo aos serviços dentro do cluster. Permitem gerir o tráfego de entrada, direcionando-o para os serviços correspondentes de acordo com as regras definidas pelo utilizador.

Objetivos principais do uso de rotas:

  • Fornecer acesso externo: Tornam as aplicações acessíveis de fora do cluster.
  • Balanceamento de carga: Distribuem o tráfego de entrada entre várias instâncias de serviços.
  • Terminação SSL/TLS: Processam conexões HTTPS ao nível do Ingress, descarregando os serviços.
  • Hospedagem virtual: Permitem direcionar o tráfego para diferentes serviços dependendo do nome do host na requisição.
  • Enrutamento baseado na rota: Direcionam o tráfego para diferentes serviços dependendo do caminho URL na requisição.

A estrutura típica de uma regra de enrutamento (no manifesto do Ingress) pode parecer assim:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: exemplo-ingress
spec:
  rules:
  - host: exemplo.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 80
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 8080

Neste exemplo, o tráfego para exemplo.com sem especificar caminho é dirigido para o serviço my-service (porta 80), e o tráfego para exemplo.com/api é dirigido para o serviço api-service (porta 8080).

Para que o Ingress funcione, é necessário um Controlador de Ingress, que atua como um proxy reverso e implementa as regras definidas nos recursos de Ingress. Controladores de Ingress populares incluem Nginx Ingress Controller, Ambassador, Traefik.