1001Ferramentas
🌐Dev

K8s Ingress YAML

Gera um Ingress do Kubernetes com host, service e porta, usando ingressClassName nginx e path raiz. O bloco de TLS você acrescenta à mão.

YAML

Manifesto de Ingress sem contar indentação

O Deployment subiu, o Service responde dentro do cluster e agora falta expor o host para fora. Escrever o Ingress à mão significa acertar de cabeça a árvore rules, http, paths, backend, service, port e number, com a indentação certa em cada nível. Erra um espaço e o kubectl devolve um erro de validação que aponta para o campo errado, e você perde a tarde procurando.

O manifesto que sai daqui usa networking.k8s.io/v1, ingressClassName nginx e uma única regra: o host que você digitar, path barra com pathType Prefix e o backend apontando para o nome do Service e o número da porta. Um alerta honesto: não há bloco tls na saída, embora a descrição da ferramenta mencione TLS opcional, nem campo de namespace ou de annotations. A porta pedida é a do Service, não a do container.

Para HTTPS você acrescenta à mão a seção tls, com a lista de hosts e o secretName, mais a annotation do cluster-issuer se usar cert-manager. Antes de aplicar, rode kubectl get ingressclass para confirmar que a classe se chama mesmo nginx, porque instalações gerenciadas costumam renomear. Um kubectl apply com dry-run de servidor pega o resto. O YAML é montado no navegador, sem enviar nada.

Perguntas frequentes

Como adiciono TLS neste Ingress?
Manualmente. Depois de copiar o YAML, inclua um bloco tls no mesmo nível de rules, com a lista de hosts e o secretName do certificado. A página não gera essa parte.
Qual porta devo informar?
A porta exposta pelo Service, não a do container. Rode kubectl get svc e use o número que aparece na coluna PORT.
Meu Ingress não recebe endereço externo. E agora?
Normalmente falta o controller. Verifique se o ingress-nginx está rodando e se o Service dele tem IP externo, com kubectl get svc no namespace ingress-nginx. Sem controller, o objeto existe mas ninguém roteia tráfego.

Ferramentas Relacionadas