Распространённые ошибки Ingress в Kubernetes
Ingress — мощный инструмент для управления внешним доступом к сервисам в кластере. Но из-за сложности конфигурации он нередко вызывает затруднения. Ниже рассмотрим основные ошибки и способы их устранения.
1. Неправильные аннотации
Аннотации управляют многими функциями, такими как переписывание URL, аутентификация и ограничение трафика. Ошибки в аннотациях могут сломать Ingress.
Пример корректной аннотации:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
2. Неправильный порт сервиса
Порт, указанный в Ingress, должен совпадать с targetPort
в Service.
Пример:
spec:
ports:
- port: 80
targetPort: 8080
3. Ошибки TLS
Ошибки в секрете TLS могут привести к сбоям HTTPS.
Пример:
tls:
- hosts:
- example.com
secretName: example-tls-secret
Проверьте наличие секрета и корректность сертификата и ключа.
4. Контроллер Ingress не запущен
Без работающего контроллера (например, NGINX или Traefik) ресурсы Ingress не работают.
Проверка:
kubectl get pods -n ingress-nginx
5. Проблемы с DNS
Домен должен указывать на внешний IP контроллера.
Проверка IP:
kubectl get svc -n ingress-nginx
Заключение
Ошибки Ingress — распространённое явление, но при правильном подходе они легко устраняются. Всегда начинайте с логов контроллера и проверки конфигурации YAML.