Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Ingress


IMPORTANTE

Ingress nginx foi decontinuado recomendamos usar Traefik com Gateway API

Na página do Gateway API há exemplos de migração de ingress para httproute


Um Ingress é um objeto do Kubernetes que gerencia o acesso externo aos serviços em um cluster, geralmente HTTP. Ele pode fornecer balanceamento de carga, terminação TLS e roteamento baseado em nome de host ou caminho.

Ingress Controller

Para que os recursos de Ingress funcionem, o cluster precisa ter um Ingress Controller em execução. O Ingress Controller é responsável por satisfazer as regras de Ingress. Existem vários Ingress Controllers disponíveis, como Nginx, Traefik e HAProxy.

Ingress NGINX

O Ingress NGINX é um dos Ingress Controllers mais populares. Ele usa o Nginx como um proxy reverso e balanceador de carga.

Instalação

Minikube

Em clusters Minikube, você pode habilitar o Ingress NGINX com o seguinte comando:

minikube addons enable ingress
Helm

Você pode instalar o Ingress NGINX usando o Helm:

helm upgrade --install ingress-nginx ingress-nginx \
  --repo https://kubernetes.github.io/ingress-nginx \
  --namespace ingress-nginx --create-namespace

Exemplo de Ingress

Abaixo está um exemplo de um recurso de Ingress que roteia o tráfego para dois serviços diferentes com base no caminho:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - http:
        paths:
          - path: /testpath
            pathType: Prefix
            backend:
              service:
                name: test
                port:
                  number: 80
          - path: /anotherpath
            pathType: Prefix
            backend:
              service:
                name: another-test
                port:
                  number: 80

Neste exemplo:

  • O tráfego para http://<host>/testpath é roteado para o serviço test na porta 80.
  • O tráfego para http://<host>/anotherpath é roteado para o serviço another-test na porta 80.