Sobes.tech
Middle+

Какво се използва по-често в момента: класът ingress или посочването на ingress контролера директно в приложението?

sobes.tech AI

Отговор от AI

Класът за ingress (ingressClassName) се използва по-често.

Това позволява:

  • Да се отдели конфигурацията на ingress от конфигурацията на приложението.
  • По-лесно управление на различни контролери за ingress в един клъстер.
  • Гъвкаво прилагане на различни конфигурации на контролерите за ingress за различни ingress (например, различни SSL сертификати, различни типове балансировка).

Посочването на контролера за ingress чрез annotations (например, kubernetes.io/ingress.class) се счита за остарял подход в повечето сценарии, особено с появата на ingressClassName в API networking.k8s.io/v1.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
spec:
  ingressClassName: nginx # предпочитаният подход
  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 # по-старият подход, все още поддържан от някои контролери
spec:
  rules:
  - http:
      paths:
      - path: /test
        pathType: Prefix
        backend:
          service:
            name: test-service
            port:
              number: 80

Таблица за сравнение:

Аспект ingressClassName Анотация kubernetes.io/ingress.class
Статус Препоръчително Остаряло (в повечето случаи)
Гъвкавост Висока Средна
Четливост По-добра По-лоша
API Част от спецификацията на API Анотация