O Ingress é um recurso do Kubernetes que gerencia o acesso externo aos serviços dentro de um cluster. Ele funciona como uma camada de roteamento HTTP/HTTPS, permitindo a definição de regras para direcionar o tráfego externo para diferentes serviços back-end.
O Ingress pode fornecer balanceamento de carga, terminação SSL e hospedagem virtual baseada em nome.
Para criar um Ingress, precisamos ter um serviço rodando no cluster. Para isso, vamos criar um deployment e um serviço do Giropops Senha + Redis com os seguintes comandos (execute os comandos no diretório kubernetes/Day-11/manisfests pois os arquivos de configuração estão nesse diretório):
Agora, vamos criar o Ingress propriamente dito. Para isso, vamos utilizar o arquivo ingress.yaml:
Criando multiplos Ingress no mesmo Ingress Controller#
Para criar multiplos Ingress no mesmo Ingress Controller, precisamos utilizar o recurso host do Ingress.
Para instalar o Ingress NGINX Controller no EKS, precisamos executar os seguintes comandos. Não esqueça de mudar o contexto para o cluster EKS antes de executar os comandos:
Para criar um Ingress no EKS, precisamos criar um arquivo de configuração do Ingress ingress-eks.yaml com o seguinte conteúdo:
Para que o Ingress funcione corretamente, precisamos substituir o valor {DOMAIN_NAME} por um domínio válido. Inserindo uma entrada do tipo ‘CNAME’ no seu provedor de DNS, apontando para o endereço do Load Balancer do Ingress.
Affinity Cookies são cookies que são adicionados ao navegador do usuário para que ele seja redirecionado sempre para o mesmo pod. Isso é muito útil para aplicações que não são stateless e precisam manter o estado de uma sessão.
O Upstream Hash é um método de balanceamento de carga que utiliza o hash do IP do cliente para determinar para qual pod o tráfego será enviado. Isso é muito útil para aplicações que não são stateless e precisam manter o estado de uma sessão.
Canary Deployment é uma técnica de deploy que consiste em enviar uma pequena porcentagem do tráfego para uma nova versão da aplicação para testar se ela está funcionando corretamente antes de enviar todo o tráfego para a nova versão.
A regra do Canary Deployment deve ser adicionada no Ingress do novo serviço que está sendo testado.
É importante lembrar que o Canary Deployment deve ser utilizado em conjunto com o Affinity Cookie para que o usuário seja redirecionado sempre para o mesmo pod.