5 Belangrijke componenten van een stabiel Kubernetes cluster

Wat is Kubernetes
Wat is Kubernetes
Home / Blog & Nieuws / Cloud / Cloud-native / 5 Belangrijke componenten van een stabiel Kubernetes cluster
Een goede set-up van je Kubernetes cluster in productie zorgt dat je webapplicatie of -shop als een zonnetje draait. Alleen is het grondig opzetten, en volgens best practices, vrij ingewikkeld. In deze blog delen we 5 belangrijke componenten waar we vanuit True rekening mee houden voor de inrichting van een stabiel cluster.

Kubernetes, de facto het standaard container-orkestratieplatform, groeit nog steeds, laten cijfers van CNCF zien. Het platform is echter wel complex om op te zetten, het kost tijd en energie. Je kunt het ook nog op meerdere typen hosting opzetten: zowel op een Private Cloud als op een Public Cloud met speciale services, zoals Azure Kubernetes Services. Veel scale-ups kiezen daardoor voor een managed oplossing. Als managed service provider levert True de expertise en best practices om een effectief, stabiel en veilig Kubernetes cluster op te zetten.

1. Herhaalbare en schaalbare infrastructuur met Infrastructure as Code

Infrastructure as Code, oftwel je infrastructuur als code definiëren, biedt veel voordelen voor beheer van infrastructuur in je Kubernetes omgeving. Werkt je infrastructure as code op een niet-productie-omgeving en bevalt het? Dan rol je het eenvoudig uit naar de productie-omgeving. Een infrastructuur wordt op die manier consistent, betrouwbaar en herhaalbaar.

Infrastructure as Code Tools zoals Terraform werken prima om je gehele Kubernetes cluster in een cloud naar keuze te zetten, op een manier zoals jij het in de code omschrijft, inclusief networking, load balancers en DNS configuratie.

Het opzetten van een dergelijke infrastructuur, met daarbij rechtgezette designfouten uit het verleden, is tijdrovend. Voor haar klanten heeft True standaarden opgezet voor deze geautomatiseerde infrastructuur om het snel en volgens best practices op te zetten.

2. Binnenkomend verkeer managen met een centrale Ingress Controller

Kubernetes gebruikt Ingress Controllers om verkeer van buiten Kubernetes naar je applicatie te leiden. Je installeert een centrale Ingress Controller (bijvoorbeeld Nginx) in het cluster om alle inkomend verkeer voor elke applicatie centraal te beheren. Een Ingress Controller zorgt ook voor verkeer over SSL met HTTPS. Een cert-manager, geïntegreerd in K8s, zorgt voor deze certificaten. Alle inkomend verkeer is daarmee automatisch encrypted.

3. GitOps Deployments

Het kan, handmatig deployen naar je Kubernetes cluster met een apply command in Kubectl, de Command Line Tool voor Kubernetes. Het is echter geen best practice en al helemaal niet voor je productie-omgeving! Best practice is wel om deployments via GitOps te doen. Daarmee is de gewenste applicatiestatus in Git aanwezig, waarna je met een deployment platform werkt die het op Kubernetes uitrolt. Alle veranderingen voor je Kubernetes omgeving zijn traceerbaar, geautomatiseerd en goed te beheren. ArgoCD is het leidende GitOps platform om dit te doen. Deze application controller monitort applicaties en vergelijkt de livestatus met de gewenste doelstatus uit de Git-repo. De tool visualiseert eventuele verschillen en biedt je mogelijkheden om de live status automatisch of handmatig terug te synchroniseren naar de gewenste doelstatus.

4. Monitoring en centrale logging

Wat speelt er in je applicatie? Monitoring en logging zijn cruciaal onderdeel van Kubernetes. Met de juiste monitoring voorkom je problemen als een verlopen certificaat of uitval door verhoogde node memory. Onze favoriete monitoringstool is Prometheus. Gebruik een alert manager om op tijd informatie over kritieke issues in je cluster te ontvangen, waardoor je downtime, fouten of verlies aan data kunt voorkomen.

5. Secret Management

Binnen Kubernetes worden Secrets gebruikt om gevoelige informatie zoals wachtwoorden centraal op te slaan. Standaard staan ze unencrypted opgeslagen in etcd. Zodra de Secret in een container is geïnjecteerd, ziet de container de data uit de secret als plain text. Behoorlijk onveilig! Belangrijk is dat je omgeving beschikt over een oplossing met sterke encryptie voor Secrets.

Een van de manieren daarvoor is een centrale Vault gebruiken, bijvoorbeeld Hashicorp Vault of Azure Key Vault. Hierbij maak je in een deployment een referentie naar een locatie in een Vault. Aan de hand van deze referenties worden de juiste secrets geïnjecteerd in een container.

Een ander voordeel van een dergelijke Vault is dat ontwikkelaars geen toegang nodig hebben tot kubectl en niet bij de Kubernetes API hoeven te kunnen. Ze kunnen wel refereren naar secrets en ze in containers gebruiken, maar ze kunnen ze nooit direct benaderen. Zo kun je een veel duidelijkere scheiding van verantwoordelijkheden toepassen.

Met een ervaren ‘collega’ de leercurve van Kubernetes aangaan?

Een container inrichten met je programmatuur is relatief makkelijk in vergelijking met het op de juiste manier configureren van je Kubernetes-omgeving. Ga met True als jouw ervaren collega de leercurve van Kubernetes aan! Onze Kubernetes specialisten richten je Kubernetes-omgeving in met tools en applicaties uit het cloud-native ecosysteem die op elkaar aansluiten. Na oplevering stoppen we niet: we beheren je omgeving en zorgen dat je precies weet wat er speelt bij een upgrade van Kubernetes. Ook nemen we jou en je ontwikkelteam mee in onboardings- en kennissessies, delen onze kennis en ervaring passend bij de uitdaging van jouw organisatie.

Meer informatie over Fully Managed Kubernetes?

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

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