
.jpg?auto=compress,webp&upscale=true&width=610&height=488&name=shutterstock_2446979289%20(1).jpg)
Ik begon deze blogpost te schrijven de dag nadat ik thuiskwam van KubeCon en CloudNativeCon 2022. Het belangrijkste wat me opviel was dat de inhoud van de gesprekken de afgelopen jaren is veranderd.
De nieuwe uitdagingen van Kubernetes
Als je kijkt naar de onderwerpen van KubeCon / CloudNativeCon van dit jaar, voelt het alsof veel vragen over Kubernetes, soorten cloud, logging tools en meer worden beantwoord voor de meeste bedrijven. Dat is logisch, want steeds meer organisaties hebben Kubernetes al met succes geïmplementeerd. Kubernetes wordt niet langer beschouwd als het volgende grote ding, maar eerder als de logische keuze. We hebben echter gemerkt (tijdens de gesprekken, maar ook in ons eigen traject) dat er nieuwe problemen en uitdagingen zijn ontstaan, die tot andere vragen leiden:
- Hoe kan ik meer automatisering implementeren?
- Hoe kan ik de kosten voor deze opstellingen beheersen/verlagen?
- Is er een manier om het bestaande uit te breiden en mijn eigen functionaliteiten aan Kubernetes toe te voegen?
Een van de mogelijke manieren om functionaliteiten aan Kubernetes toe te voegen is het gebruik van Operators. In deze blogpost zal ik kort uitleggen hoe Operators werken.
Hoe Operators werken
Het concept van een operator is vrij eenvoudig. Ik denk dat de makkelijkste manier om het uit te leggen is door daadwerkelijk een operator te installeren.

Binnen ACA gebruiken we de istio operator. De exacte stappen van het installeren hangen af van de operator die je installeert, maar meestal lijken ze erg op elkaar.
Installeer eerst de istioctl binary op de machine die toegang heeft tot de Kubernetes api. De volgende stap is het uitvoeren van het commando om de operator te installeren.
curl -sL https://istio.io/downloadIstioctl | sh -
export PATH=$PATH:$HOME/.istioctl/bin
istioctl operator init
Dit zal de operator resource(s) aanmaken in de istio-system namespace. Je zou een pod moeten zien draaien.
kubectl get pods -n istio-operator
NAMESPACE NAME READY STATUS RESTARTS AGE
istio-operator istio-operator-564d46ffb7-nrw2t 1/1 Running 0 20s
kubectl get crd
NAME CREATED AT
istiooperators.install.istio.io 2022-05-21T19:19:43Z
Zoals je kunt zien, is er een nieuwe CustomResourceDefinition genaamd istiooperators.install.istio.io gemaakt. Dit is een blauwdruk die specificeert hoe resource definities moeten worden toegevoegd aan het cluster. Om config aan te maken, moeten we weten welk 'soort' config de CRD verwacht aangemaakt te worden.
kubectl get crd istiooperators.install.istio.io -oyaml
…
status:
acceptedNames:
kind: IstioOperator
…
Laten we een eenvoudig configuratiebestand maken.
kubectl apply -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: istio-controlplane
spec:
profile: minimal
EOF
Zodra de ResourceDefinition die de configuratie bevat is toegevoegd aan het cluster, zal de operator ervoor zorgen dat de resources in het cluster overeenkomen met wat is gedefinieerd in de configuratie. Je zult zien dat er nieuwe resources worden aangemaakt.
kubectl get pods -A istio-system istiod-7dc88f87f4-rsc42 0/1 Pending 0 2m27s
Omdat ik een klein soort cluster draai, kan de istiod pod niet worden ingepland en staat deze vast in de status Pending. Laat me eerst het proces uitleggen voordat ik dit verander.
De istio-operator blijft het IstioOperator configuratiebestand in de gaten houden voor wijzigingen. Als er wijzigingen worden aangebracht in het bestand, zal het alleen de wijzigingen aanbrengen die nodig zijn om de bronnen in het cluster bij te werken zodat ze overeenkomen met de status die is gespecificeerd in het configuratiebestand. Dit gedrag wordt reconciliatie genoemd.
Laten we eens kijken naar de status van het configuratiebestand IstioOperator. Merk op dat het is aangemaakt in de istio-system naamruimte.
kubectl get istiooperator -n istio-system
NAME REVISION STATUS AGE
istio-controlplane RECONCILING 3m
Zoals je kunt zien, is dit nog steeds aan het afstemmen, omdat de pod niet kan starten. Na enige tijd zal deze in een ERROR status gaan.
kubectl get istiooperator -n istio-system NAME REVISION STATUS AGE istio-controlplane ERROR 6m58s
Je kunt ook de istio-operator log bekijken voor nuttige informatie.
kubectl -n istio-operator logs istio-operator-564d46ffb7-nrw2t --tail 20
- Verwerken van bronnen voor Istiod.
- Verwerking van middelen voor Istiod. Wachten op implementatie/istio-systeem/istiod
✘ Istiod kwam een fout tegen: wacht niet op bron: bronnen niet klaar na 5m0s: timed out wachten op de voorwaarde.
Aangezien ik een klein demo-cluster draai, zal ik de geheugenlimiet aanpassen zodat de POD ingepland kan worden. Dit wordt gedaan in het spec: deel van de IstioOperator-definitie.
kubectl -n istio-system edit istiooperator istio-controlplane
spec:
profiel: minimaal
componenten:
piloot:
k8s:
middelen:
aanvragen:
geheugen: 128Mi
De istiooperator gaat terug naar een RECONCILING status.
kubectl get istiooperator -n istio-system
NAME REVISION STATUS AGE
istio-controlplane RECONCILING 11m
En na enige tijd wordt het HEALTHY.
kubectl get istiooperator -n istio-system
NAME REVISION STATUS AGE
istio-controlplane HEALTHY 12m
Je kunt zien dat de istiod pod draait.
NAMESPACE NAME READY STATUS
istio-system istiod-7dc88f87f4-n86z9
Afgezien van de istiod implementatie, zijn er ook veel nieuwe CRDs toegevoegd.
authorizationpolicies.security.istio.io 2022-05-21T20:08:05Z
destinationrules.networking.istio.io 2022-05-21T20:08:05Z
envoyfilters.networking.istio.io 2022-05-21T20:08:05Z
gateways.networking.istio.io 2022-05-21T20:08:05Z
istiooperators.install.istio.io 2022-05-21T20:07:01Z
peerauthentications.security.istio.io 2022-05-21T20:08:05Z
proxyconfigs.networking.istio.io 2022-05-21T20:08:05Z
requestauthentications.security.istio.io 2022-05-21T20:08:05Z
serviceentries.networking.istio.io 2022-05-21T20:08:05Z
sidecars.networking.istio.io 2022-05-21T20:08:05Z
telemetries.telemetry.istio.io 2022-05-21T20:08:05Z
virtualservices.networking.istio.io 2022-05-21T20:08:05Z
wasmplugins.extensions.istio.io 2022-05-21T20:08:06Z
workloadentries.networking.istio.io 2022-05-21T20:08:06Z
workloadgroups.networking.istio.io 2022-05-21T20:08:06Z
Hoe de operator werkt - samenvatting
Zoals je kunt zien, is dit een zeer eenvoudige manier om istio snel in te stellen binnen ons cluster. In het kort zijn dit de stappen:
- Installeer de operator
- Een (of meer) CustomResourceDefinitions wordt toegevoegd die een blauwdruk geeft voor de objecten die kunnen worden gemaakt/beheerd. Er wordt een deployment aangemaakt, die op zijn beurt een Pod aanmaakt die de Configuraties bewaakt van de soorten die zijn gespecificeerd door de CRD.
- De gebruiker voegt een configuratie toe aan het cluster, waarvan het type is gespecificeerd door de CRD.
- De operator POD merkt de nieuwe configuratie op en neemt alle stappen die nodig zijn om ervoor te zorgen dat het cluster zich in de gewenste staat bevindt die door de configuratie is gespecificeerd.

Voordelen van de operatoraanpak
De operator-benadering maakt het eenvoudig om een verzameling resources zoals Deployments, Jobs, CustomResourceDefinitions te verpakken. Op deze manier is het eenvoudig om extra gedrag en mogelijkheden aan Kubernetes toe te voegen.
Er is een bibliotheek met een overzicht van de beschikbare operators die te vinden zijn op https://operatorhub.io/. Op het moment van schrijven zijn er 255 operators. De operators worden meestal geïnstalleerd met slechts een paar commando's of regels code.

Het is ook mogelijk om je eigen operatoren te maken. Het kan zinvol zijn om een set van deployments, jobs, CRD's, ... die een specifieke functionaliteit bieden te verpakken als een operator. De operator kan worden afgehandeld als operators en pipelines gebruiken voor CVE-validaties, E2E-tests, uitrol naar testomgevingen en meer voordat een nieuwe versie naar productie wordt gepromoot.
Valkuilen
We gebruiken Kubernetes al lange tijd binnen de ACA Group en hebben in deze periode een aantal best-practices op het gebied van beveiliging verzameld. We hebben gemerkt dat one-bestand-deployments en helikopters van het internet meestal niet zo goed geconfigureerd zijn als we zouden willen. Denk aan RBAC regels die te veel rechten geven, resources die op dit moment geen namespaced hebben of containers die als root draaien.
Wanneer je operators van operatorhub.io gebruikt, vertrouw je er in principe op dat de leverancier of provider de best practices op het gebied van beveiliging volgt. Echter ... één van de gesprekken op KubeCon 2022 die de grootste indruk op me maakte, stelde dat veel van de operators problemen hebben met de beveiliging. Ik raad je aan om Tweezering Kubernetes Resources te bekijken : Operating on Operators - Kevin Ward, ControlPlane te bekijken voordat je gaat installeren.

Wat we ook hebben gemerkt is dat het gebruik van operators het proces om nieuwe tools en functies te implementeren kan versnellen. Zorg ervoor dat je de documentatie leest die is geleverd door de maker van een operator voordat je in de geavanceerde configuratie duikt. Het is mogelijk dat niet alle mogelijkheden daadwerkelijk zijn geïmplementeerd op het CRD dat is aangemaakt door de operator. Het is echter een slechte gewoonte om de bronnen die door de operator zijn aangemaakt direct te manipuleren. De operator is niet getest tegen je handmatige wijzigingen en dit kan inconsistenties veroorzaken. Bovendien kunnen nieuwe versies van de operator je wijzigingen (gedeeltelijk) ongedaan maken, wat ook problemen kan veroorzaken.
Op dat moment zit je in principe vast, tenzij je je eigen operator maakt die extra mogelijkheden biedt. We hebben ook gemerkt dat er geen echt 'regelboek' is over hoe CRD's aan te bieden en documentatie is niet altijd gemakkelijk te vinden of te begrijpen.
Conclusie
Operators zijn momenteel een hot topic binnen de Kubernetes-gemeenschap. Het aantal beschikbare operators groeit snel, waardoor het eenvoudig is om functionaliteit aan je cluster toe te voegen. Er is echter geen regelboek of een minimale basislijn van kwaliteit. Als je operators installeert vanaf de operatorhub, controleer dan de inhoud of valideer de aangemaakte resources op een lokale opstelling. We verwachten in de nabije toekomst enkele veranderingen en verbeteringen, maar op dit moment kunnen ze al erg nuttig zijn.
What others have also read


CloudBrew is altijd een hoogtepunt op onze kalender geweest, maar de editie van 2025 voelde anders. Misschien lag het aan de timing. Slechts een maand eerder, in november 2025, opende de Azure Belgium Central-regio eindelijk haar deuren. ACA opereert al altijd vanuit het hart van Europa, dus het live gaan van deze grote nationale mijlpaal net voor de conferentie zorgde voor een extra dosis enthousiasme.
Lees verder

Een betere uptime, lagere kosten en vendor lock-in vermijden. Dat zijn drie van de redenen waarom onze klanten kiezen voor een multicloud-strategie. Onze Cloud project manager Roel Van Steenberghe legt uit wat zo’n strategie precies inhoudt en wat de troeven zijn van Google Cloud Platform (GCP).
Lees verder

In de complexe wereld van moderne softwareontwikkeling worden bedrijven geconfronteerd met de uitdaging om verschillende applicaties die door verschillende teams worden ontwikkeld en beheerd, naadloos te integreren. De Service Mesh is van onschatbare waarde bij het overwinnen van deze uitdaging. In dit blogartikel verdiepen we ons in Istio Service Mesh en onderzoeken we waarom investeren in een Service Mesh zoals Istio een slimme zet is." Wat is Service Mesh? Een Service Mesh is een softwarelaag die verantwoordelijk is voor alle communicatie tussen applicaties, in deze context services genoemd. Het introduceert nieuwe functionaliteiten om de interactie tussen services te beheren, zoals monitoring, logging, tracing en verkeerscontrole. Een service mesh werkt onafhankelijk van de code van elke individuele service, waardoor het over netwerkgrenzen heen kan werken en kan samenwerken met verschillende beheersystemen. Dankzij een service mesh kunnen ontwikkelaars zich richten op het bouwen van toepassingsfuncties zonder zich zorgen te maken over de complexiteit van de onderliggende communicatie-infrastructuur. Istio Service Mesh in de praktijk Denk aan het beheren van een groot cluster waarop meerdere applicaties draaien die ontwikkeld en onderhouden worden door verschillende teams, elk met verschillende afhankelijkheden zoals ElasticSearch of Kafka. Na verloop van tijd resulteert dit in een complex ecosysteem van applicaties en containers, overzien door verschillende teams. De omgeving wordt zo ingewikkeld dat het voor beheerders steeds moeilijker wordt om het overzicht te bewaren. Dit leidt tot een reeks pertinente vragen: Hoe ziet de architectuur eruit? Welke applicaties interageren met elkaar? Hoe wordt het verkeer beheerd? Bovendien zijn er specifieke uitdagingen die voor elke afzonderlijke applicatie moeten worden aangepakt: Het afhandelen van aanmeldingsprocessen Implementeren van robuuste beveiligingsmaatregelen Netwerkverkeer beheren dat naar de applicatie wordt geleid ... Een Service Mesh, zoals Istio, biedt een oplossing voor deze uitdagingen. Istio fungeert als een proxy tussen de verschillende applicaties (services) in het cluster, waarbij elk verzoek door een component van Istio gaat. Hoe werkt Istio Service Mesh? Istio introduceert een sidecar proxy voor elke service in het microservices ecosysteem. Deze sidecar proxy beheert al het inkomende en uitgaande verkeer voor de dienst. Daarnaast voegt Istio componenten toe die het inkomende en uitgaande verkeer van het cluster afhandelen. Istio's control plane maakt het mogelijk om beleidsregels te definiëren voor verkeersbeheer, beveiliging en monitoring, die vervolgens worden toegepast op de toegevoegde componenten. Voor een beter begrip van de functionaliteit van Istio Service Mesh, zie ons blogartikel "Istio Service Mesh installeren: A Comprehensive Step-by-Step Guide" , een gedetailleerde, stapsgewijze uitleg over de installatie en het gebruik van Istio. Waarom Istio Service Mesh? Verkeersbeheer: Istio maakt gedetailleerd verkeersbeheer mogelijk, waardoor ontwikkelaars eenvoudig verkeer tussen verschillende versies van hun services kunnen routeren, verdelen en controleren. Beveiliging: Istio biedt een robuuste beveiligingslaag met functies zoals verkeersversleuteling met behulp van eigen certificaten, Role-Based Access Control (RBAC) en mogelijkheden voor het implementeren van authenticatie- en autorisatiebeleid. Waarneembaarheid: Door middel van ingebouwde instrumentatie biedt Istio diepgaande observeerbaarheid met tools voor monitoring, logging en gedistribueerde tracering. Hierdoor kunnen IT-teams de prestaties van services analyseren en snel problemen opsporen. Vereenvoudigde communicatie: Istio neemt de complexiteit van servicecommunicatie weg van applicatieontwikkelaars, zodat zij zich kunnen richten op het bouwen van applicatiefuncties. Is Istio geschikt voor uw opstelling? Hoewel de voordelen duidelijk zijn, is het essentieel om te overwegen of de extra complexiteit van Istio past bij jouw specifieke opstelling. Ten eerste is er een sidecar container nodig voor elke ingezette service, wat kan leiden tot ongewenste geheugen- en CPU overhead. Daarnaast kan het zijn dat je team niet beschikt over de specialistische kennis die nodig is voor Istio. Als je overweegt om Istio Service Mesh te gaan gebruiken, vraag dan begeleiding aan specialisten met expertise. Vraag onze experts gerust om hulp. Meer informatie over Istio Istio Service Mesh is een technologische game-changer voor IT-professionals die streven naar geavanceerde controle, beveiliging en observeerbaarheid in hun microservices-architectuur. Istio vereenvoudigt en beveiligt de communicatie tussen services, waardoor IT-teams zich kunnen richten op het bouwen van betrouwbare en schaalbare applicaties. Snel antwoord nodig op al uw vragen over Istio Service Mesh? Neem contact op met onze experts
Lees verderWant to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!


