Hoe vereenvoudigt Kustomize het aanpassen van configuraties in een Kubernetes-omgeving?

Kustomize, tool voor configuraties in Kubernetes
Kustomize, tool voor configuraties in Kubernetes
Home / Blog & Nieuws / Cloud native / Hoe vereenvoudigt Kustomize het aanpassen van configuraties in een Kubernetes-omgeving?
Kustomize biedt een eenvoudige manier voor het aanpassen van de configuratie van applicaties. Met behulp van de tool kun je een basisconfiguratie vastleggen en hierop voor specifieke toepassingen aanpassingen maken. Kenmerkend is dat de basisconfiguratie altijd behouden blijft, dat de herbruikbaarheid van configuraties vergroot. In dit blog zetten we uiteen wat de mogelijkheden en voordelen van Kustomize zijn. Ook leggen we uit waarom wij bij True fan zijn van Kustomize.

Het landschap van cloud native technologieën is zeer breed en divers. Zo bieden tientallen aanbieders hun tools aan die je op allerlei manieren ondersteunen. Hoe vind je je weg in deze tools? Engineers en architecten van True helpen je op weg. In deze serie delen we onze kennis met je over verschillende Kubernetes tools. 💡 Tip: lees ook de blog De Cloud Native Trail Map van CNCF (en welke aanvullingen True daarop heeft) voor het begin van je reis naar cloud native.

Wat is Kustomize?

Online is er een breed scala aan toepassingen en componenten beschikbaar die je kunt integreren in jouw gecontaineriseerde applicatie. De configuratie van deze componenten is van groot belang voor de bruikbaarheid en veiligheid. Het kan zijn dat je voor verschillende toepassingen aanpassingen wilt maken in de configuratie van jouw gecontaineriseerde applicatie. Met behulp van Kustomize leg je de basisconfiguratie vast in een zogeheten base-bestand. Eventuele aanpassingen – bijvoorbeeld voor gebruik in een ontwikkel-, test- en productieomgevingen – leg je vast in een overlay.

Kenmerkend voor het gebruik van Kustomize is dat aanpassingen niet permanent zijn. De aangepaste configuratie is vastgelegd in een overlay. Deze overlay overschrijft configuratieregels die zijn vastgelegd in het base-bestand, zonder dit base-bestand te wijzigen of permanent te vervangen. Dat betekent dat het oorspronkelijke base-bestand en configuratie altijd behouden blijft. Kustomize is in 2018 opgezet door Google.

Wat zijn de voordelen van Kustomize?

Kustomize biedt diverse voordelen. Zo maakt de tool geen gebruik van templates, maar kunnen ontwikkelaars de configuratie vastleggen in standaard YAML. Dit is een voor mensen leesbare taal voor dataserialisatie. YAML is in combinatie met iedere programmeertaal inzetbaar.

Dat YAML eenvoudig leesbaar is voor mensen, vereenvoudigt het werken ermee. Treden er bijvoorbeeld onverhoopt problemen op in de configuratie? Dan kun je het YAML-bestand eenvoudig debuggen voor het achterhalen van de bron van het probleem. Configuraties zijn daarnaast geïsoleerd in specifieke overlays, die je hierdoor eenvoudig kunt terugdraaien. Dit maakt onder meer het opsporen van prestatieproblemen mogelijk. Zo kun je de prestaties van de basisconfiguratie eenvoudig vergelijken met de prestaties van aangepaste configuraties.

Toepassingen van Kustomize

Kustomize kent diverse toepassingen. Enkele voorbeelden zijn:

Standaardinstellingen op selectieve wijze overschrijven

Kustomize maakt gebruik van lagen voor het aanbrengen van wijzigingen in de configuratie van gecontaineriseerde applicaties. Dit betekent in de praktijk dat Kustomize de basisconfiguratie die je vastlegt in een base-bestand niet permanent wijzigt, maar hierop met behulp van een overlay een nieuwe laag legt met aanpassingen. Deze overlay overschrijft configuratieregels uit het base-bestand. De oorspronkelijke configuratiebestanden blijven echter ongewijzigd. Ook kan je eenvoudig op selectieve wijze specifieke wijzigingen overschrijven.

Herbruikbaarheid van configuraties bewaken

Veel organisaties maken gebruik van een combinatie van zelfontwikkelde en van algemeen beschikbare componenten voor het bouwen van hun gecontainiseerde applicaties. Indien je de configuratie van deze componenten aanpast voor een specifieke toepassing, kan dit de herbruikbaarheid van de configuratie voor andere toepassingen schaden. Ook kan het installeren van updates voor specifieke componenten moeilijk of zelfs onmogelijk zijn. Met Kustomize blijft de basisconfiguratie altijd intact en bewaak je dan ook de herbruikbaarheid van configuraties.

Onderliggende componenten updaten zonder verlies van aanpassingen

Ieder component binnen een gecontaineriseerde applicatie kan een update krijgen. Het installeren hiervan kan van groot belang zijn, onder meer met het oog op veiligheid. Indien in de configuratie van dit component aanpassingen zijn gemaakt, bestaat het risico dat deze aanpassingen door een update verloren gaan. Kustomize voorkomt dit. Alle wijzigingen die je via Kustomize aanbrengt voor specifieke toepassingen, zijn opgeslagen in overlay. Update je een bepaald component? Dan past de overlay ook in de geüpdatet versie van het component automatisch de configuratie op de gewenste manier aan.

De mogelijkheden en voordelen van Kustomize

Jeffrey Regan, voormalig Senior Software Engineer bij Google, legt in een video de basis uit van Kustomize. In een half uur praat Regan je bij over alle mogelijkheden en voordelen.

Kustomize, tool voor configuraties in Kubernetes
De mogelijkheden van Kustomize

Waarom is True fan van Kustomize?

Vanuit True raden we klanten vaak Kustomize aan. Zo kun je met de tool de definities of specificaties die je nodig hebt voor het plaatsen van een container in Kubernetes heel eenvoudig aanpassen aan de omgeving die jij hebt staan. Ook kun je dankzij de tool eenvoudig met dezelfde specificaties van een productie- naar acceptatie- of test-omgeving gaan, of juist omgedraaid. Dit zonder dat dit veel handmatig aanpassingen vereist. Wil je daarnaast bijvoorbeeld een hele reeks deployments in een keer van specifieke labels voorzien? Dan regelt Kustomize dat voor je.

Een andere populaire tool voor het definiëren van de configuratie van gecontaineriseerde applicaties is Helm, en specifiek Helm Charts. Een Helm Chart omvat alle definities van resources die nodig zijn voor het draaien van een gecontaineriseerde applicatie, tool of service in een Kubernetes-cluster. Het gebruik van Helm Charts is voor veel developers een stap. Zo moet je aan de slag met Go-gebaseerde templates. Kustomize is in dat opzicht veel eenvoudiger in gebruik en meer recht-toe-recht-aan dat Helm Charts.

Het gebruik van Helm Charts en Kustomize kun je overigens ook combineren. Want hoewel beide tools hetzelfde probleem adresseren, kennen ze ook grote verschillen. Zo maakt Helm het installeren en updaten van componenten zeer eenvoudig, waarbij je in een Helm Chart alle definities van resources vastlegt die nodig zijn voor het draaien van een applicatie in een Kubernetes-cluster. Kustomize biedt juist uitgebreide mogelijkheden voor het aanpassen van configuraties voor specifieke deployments. Development-teams kunnen daarom er ook voor kiezen om bepaalde gecontainerseerde applicaties via Helm te installeren, en vervolgens het aanpassen van deze applicaties voor verschillende omgevingen met behulp van Kustomize te doen.

Samenwerken aan je ambities met Kubernetes?

Steeds meer ontwikkelteams verkennen containerisatie en microservices. Het levert veel voordelen op maar kan ook complex zijn. Fully Managed Kubernetes van True helpt ontwikkelteams met meer efficiëntie en zorgvuldigheid te ontwikkelen.

object storage large
object storage small
Daniëlle van Gils
Content Marketeer