Распространённые ошибки 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.