Sobes.tech
Middle+

Wat wordt momenteel vaker gebruikt: de ingress-klasse of het specificeren van de ingress-controller direct in de applicatie?

sobes.tech AI

Antwoord van AI

De ingressClassName wordt vaker gebruikt.

Dit maakt het mogelijk:

  • De ingress-configuratie los te koppelen van de applicatieconfiguratie.
  • Het beheer van verschillende ingress-controllers in één cluster te vergemakkelijken.
  • Flexibel verschillende ingress-controllerconfiguraties toe te passen voor verschillende ingressen (bijvoorbeeld verschillende SSL-certificaten, verschillende load balancing-typen).

Het aangeven van de ingress-controller via annotaties (bijvoorbeeld kubernetes.io/ingress.class) wordt in de meeste scenario's als verouderd beschouwd, vooral met de introductie van ingressClassName in de API networking.k8s.io/v1.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
spec:
  ingressClassName: nginx # geef de voorkeur aan deze aanpak
  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 # oudere aanpak, nog ondersteund door sommige controllers
spec:
  rules:
  - http:
      paths:
      - path: /test
        pathType: Prefix
        backend:
          service:
            name: test-service
            port:
              number: 80

Vergelijkingstabel:

Aspect ingressClassName Annotatie kubernetes.io/ingress.class
Status Aanbevolen Verouderd (in de meeste gevallen)
Flexibiliteit Hoog Gemiddeld
Leesbaarheid Beter Slechter
API Onderdeel van de API-specificatie Annotatie