Назад к вопросам
Middle+
126
questionbank

Что в настоящее время используется чаще: класс ингресса или указание ингресс-контроллера непосредственно в приложении?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Класс ингресса (ingressClassName) используется чаще.

Это позволяет:

  • Отделить конфигурацию ингресса от конфигурации приложения.
  • Легче управлять различными ингресс-контроллерами в одном кластере.
  • Гибко применять разные конфигурации ингресс-контроллеров для разных ингрессов (например, разные сертификаты SSL, разные типы балансировки).

Указание ингресс-контроллера через аннотации (например, kubernetes.io/ingress.class) считается устаревшим подходом в большей части сценариев, особенно с появлением ingressClassName в API networking.k8s.io/v1.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
spec:
  ingressClassName: nginx # prefer this approach
  rules:
  - http:
      paths:
      - path: /test
        pathType: Prefix
        backend:
          service:
            name: test-service
            port:
              number: 80
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: older-ingress
  annotations:
    kubernetes.io/ingress.class: nginx # older approach, still supported by some controllers
spec:
  rules:
  - http:
      paths:
      - path: /test
        pathType: Prefix
        backend:
          service:
            name: test-service
            port:
              number: 80

В таблице сравнение:

Аспект ingressClassName Аннотация kubernetes.io/ingress.class
Статус Рекомендованный Устаревающий (в большинстве случаев)
Гибкость Высокая Средняя
Читаемость Лучше Хуже
API Часть спецификации API Аннотация