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
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.
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
Je kan ook een ingress aanmaken via een yaml file. Onderstaande yaml is een voorbeeld hoe het eruit kan zien:
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:
<ingress-name>: De naam van de Ingress.<namespace>: Het project waar de ingress in moet draaien.<ingress-hostname>: De hostname.<ingress-port>: De port waarop de Service bereikbaar is.<ingress-service>: De naam van de Service.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