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çotestna porta 80. - O tráfego para
http://<host>/anotherpathé roteado para o serviçoanother-testna porta 80.