Aanmaken ingress objects

In deze handleiding leggen we uit hoe je een ingress object moet aanmaken in OpenShift. Een Ingress object is een concept van Kubernetes die ervoor zorgt dat een applicatie van buitenaf te benaderen is via een hostname. Je kan een Ingress object op 3 verschillende manieren aanmaken:

De eerste twee opties kunnen handig zijn voor het testen van een applicatie. Voor productieapplicaties raden we aan om het via een yaml aan te maken zodat deze yaml ook netjes kan worden opgeslagen.

We gaan er van uit dat je bent ingelogd op de OpenShift Console en/of de commandline en dat je de Workshop hebt gedaan. In dit voorbeeld heb ik een nginx webserver draaien met de naam test-ingress. Verder heb je natuurlijk een hostname nodig. Je kan ervoor kiezen om een eigen hostname te gebruiken, bijvoorbeeld www.xrtv.nl, zorg er dan wel voor dat de DNS goed staat. Je kan ook gebruik maken van een subdomein binnen het OpenShift domein. Voor elke afnemer is een eigen subdomein beschikbaar met de naam van de afnemer er in, deze naam is dezelfde naam als de naam waarmee de Projecten moeten beginnen, bijvoorbeeld xrtv-. Het domein wordt dan my-ingress.apps.xrtv.cluster.chp4.io, in dit voorbeeld gebruik ik my-ingress.apps.hens.cluster.chp4.io

Via de webconsole

Helaas is er geen GUI waar doorheen geklikt kan worden, maar wel gebruik gemaakt kan worden van yaml files. Zorg ervoor dat je bent ingelogd op de webconsole en dat je in het juiste Project zit.

ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: test.omroep.nl  # Replace with your actual domain
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: test-service
            port:
              number: 80

Wanneer je alles hebt ingevuld, klik je op “Create”. In het nieuw geopende scherm wordt een overzicht getoond van de ingress object die is aangemaakt. In Services zal er een nieuwe Service bij gekomen zijn en in Route zal er een route gemaakt zijn.

Om deze te testen kan er op de link worden geklikt in Routes om te testen

Via een yaml file

Je kan ook een ingress aanmaken via een yaml file. Onderstaande yaml is een voorbeeld hoe het eruit kan zien:

ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: test.omroep.nl  # Replace with your actual domain
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: test-service
            port:
              number: 80

Vervang hierbij de volgende dingen:

Nadat je de yaml hebt gemaakt in een texteditor sla je deze op, op een locatie waar je hem terug kan vinden, roep vervolgens oc aan om de Ingress daadwerkelijk in te stellen:

oc apply -f /pad/naar/mijn/ingress.yaml