Dockerfile, Ingress NGINX & cert-manager
Hoe maak je een docker container met behulp van een dockerfile? Een Dockerfile is een bestand waarin stappen worden beschreven voor het maken van een container. Elk commando in het Dockerfile vormt een laag, wat vergelijkbaar is met lagen in Photoshop. In deze blog gaan we in op Dockerfile, Ingress nginx en certmanager.
Lagen in Dockerfile
Het is belangrijk om rekening te houden met de lagen, omdat een cache hiervan wordt gebruikt en oude updates vermeden moeten worden. Bij het beginnen van een Dockerfile wordt altijd gestart met een FROM en worden vervolgens commando's en het programma toegevoegd. Versie nummers moeten altijd worden opgegeven bij het maken van een container. Bovendien kan men zelf een basis container maken. De favoriete basis containers zijn Debian small en Alpine. Ook is het handig om environment variables te definiëren en de werkdirectory aan te passen.
Andere belangrijke commando's in de Dockerfile zijn COPY, die bestanden van de host naar de container kopieert, en CMD, die de opdracht of het programma bevat dat moet worden uitgevoerd wanneer de container wordt gestart. Het is belangrijk om ervoor te zorgen dat de Dockerfile correct is geschreven en de container correct werkt voordat deze in productie wordt gebruikt.
Ingress nginx + certmanager
De klant wil veel websites op zijn kubernetes cluster hebben, maar wil controle houden over de externe IP-adressen om te voorkomen dat de developers deze zonder SSL live kunnen zetten. De ingress is een cruciale factor voor het verkeer in het cluster, het is vergelijkbaar met een sorteermachine die verkeer op basis van URL verdeelt naar de juiste website in kubernetes. Voor de ingress controller kun je veel verschillende bekende producten gebruiken, waaronder Nginx, maar de meest gebruikte is Nginx. Om Nginx te installeren, raad ik aan de Nginx operator van GitHub te gebruiken met de YAML-installatie. Dit is beter dan de helm deployment. Je maakt in de namespace van je applicatie een ingress object, waarin je alles voor je applicatie instelt. De ingress controller zal deze informatie verwerken en de ingress automatisch herstarten als je een object aanmaakt of wijzigt.
Conclusie
Een Dockerfile is een belangrijk bestand waarmee je een container kunt definiëren en bouwen. Het is van cruciaal belang om ervoor te zorgen dat de Dockerfile correct is geschreven en dat de container correct werkt voordat deze in productie wordt gebruikt. Voor het verkeer in het kubernetes cluster is de ingress een cruciale factor, en Nginx is de meest gebruikte ingress controller. De Nginx operator van GitHub met YAML-installatie is een goede keuze voor de installatie van Nginx. Het maken van een ingress object in de namespace van de applicatie is nodig om de verkeersroutering te configureren. De ingress controller zal deze informatie verwerken en de ingress automatisch herstarten als je een object aanmaakt of wijzigt.