CLOUD & MANAGED SERVICESKUBERNETES
23/05/2022 • ACA Cloud Team

KubeCon / CloudNativeCon 2022 highlights!

Kon je dit jaar niet aanwezig zijn op KubeCon? Lees dan snel verder voor de hoogtepunten van de KubeCon / CloudNativeCon conferentie van 2022 volgens ons Cloud Native team!

Wat is KubeCon / CloudNativeCon?

KubeCon (Kubernetes Conference) / CloudNativeCon wordt jaarlijks georganiseerd in de EMEA-regio door de Cloud Native Computing Foundation (CNCF). Tijdens deze topconferentie verzamelen gebruikers en technologen van toonaangevende open source en cloud native community's zich op één locatie. Dit jaar woonden zo’n 5 000 fysiek en 10 000 virtueel aanwezigen de conferentie bij.

CNCF is de open source, vendor-neutrale hub van Cloud Native Computing en host projecten zoals Kubernetes en Prometheus om cloud native universeel en duurzaam te maken.

Met meer dan 300 sessies van partners, industrieleiders, gebruikers en vendors over onderwerpen zoals CI/CD, GitOps, Kubernetes, machine learning, waarneembaarheid, netwerken, prestaties, service mesh en beveiliging, valt er altijd iets interessants te ontdekken op KubeCon, ongeacht je interesses of expertiseniveau.

Het is duidelijk dat het cloud native-ecosysteem ondertussen is uitgegroeid tot een volwassen, trendsettende en revolutionaire gamechanger in de industrie. Het begon allemaal met de Kubernetes-trend en de vele organisaties die cloud native-producten ondersteunen en gebruiken en hun bedrijf hebben laten groeien door deze te bouwen of te gebruiken in bedrijfskritische oplossingen.

Wat waren de belangrijkste thema's?

Dit waren de belangrijke thema’s die ons het meest opvielen tijdens de KubeCon van dit jaar.

  • Het eerste aspect was de toenemende maturiteit en stabilisatie van Kubernetes en bijbehorende producten voor monitoring, CI/CD, GitOps, operators, kostprijsberekening en service meshes. Maar ook bug fixing en kleine verbeteringen.
  • Het tweede is een meer uitgesproken focus op beveiliging. We denken daarbij aan het veiliger maken van pods, het voorkomen van podtrampoline-uitbraken, end-to-end encrypties en een grondige analyse van bedreigingen voor een volledige K8s-bedrijfsinfrastructuur.
  • Het derde thema is duurzaamheid en een groeiend bewustzijn over het feit dat systemen waarop K8s en de apps draaien veel energie verbruiken, terwijl 60 tot 80% van de CPU niet gebruikt wordt.
  • Zelfs de talen kunnen energie(in)efficiënt zijn. Zo is Java een van de meest energie-efficiënte, terwijl Python dat blijkbaar veel minder is door de aard van de interpreter / compiler. Alle bedrijven moeten maatregelen nemen en inspanningen doen om hun energievoetafdruk zowel in applicaties als in infrastructuur te verkleinen. Autoscaling zal hierbij een belangrijke rol spelen.

Overzicht van de hoogtepunten van de sessies

Duurzaamheid

Datacenters van over de hele wereld verbruiken 8% van alle wereldwijd gegenereerde elektriciteit. Daarom moeten we nadenken over:

  • het doeltreffende gebruik van onze infrastructuur en inactiviteit vermijden (gemiddeld ligt de CPU-benutting slechts tussen 20 en 40%)
  • zoveel mogelijk workloads uitvoeren wanneer servers draaien
  • resources uitschakelen wanneer ze niet nodig zijn door autoscaling toe te passen
  • de gebruikte coderingstechnologie in je software, want sommige programmeertalen gebruiken minder CPU

CICD / GitOps

GitOps automatiseert infrastructuurupdates door gebruik te maken van een Git-workflow met continue integratie (CI) en continue levering (CI/CD). Wanneer nieuwe code wordt samengevoegd, voert de CI/CD pipeline de verandering door in de omgeving.

Flux is daar een mooi voorbeeld van. Flux voorziet GitOps voor zowel apps als infrastructuur. Het ondersteunt GitRepository, HelmRepository en Bucket CRD als de enige bron van waarheid.

Dankzij de A/B- of Canary-implementaties is het eenvoudig om nieuwe functies uit te rollen zonder alle gebruikers te beïnvloeden. Mislukt de implementatie, dan kan deze makkelijk weer ongedaan gemaakt worden.

Raadpleeg de KubeCon-agendapagina voor meer informatie!

Kubernetes

Hoewel Kubernetes 1.24 enkele weken voor het evenement werd gereleased, ging het niet vaak over Kubernetes zelf. Wel over het uitbreiden van Kubernetes (met behulp van API's, controllers, operators, ...) of best practices omtrent beveiliging, CI/CD, monitoring, ... voor wat er ook binnen de Kubernetes-cluster zal draaien. Ben je geïnteresseerd in de nieuwe functies die Kubernetes 1.24 te bieden heeft, neem dan zeker een kijkje op de officiële website.

Observability

Inzicht krijgen in hoe je applicatie werkt in je cluster is van cruciaal belang, maar niet altijd evident. Gelukkig is er eBPF, dat gebruikt wordt door tools zoals Pixie om gegevens te verzamelen zonder wijzigingen aan de code.

Raadpleeg de KubeCon-agendapagina voor meer informatie!

FinOps

Nu steeds meer mensen Kubernetes gebruiken, zijn er veel workloads gemigreerd. Al deze containers hebben een voetafdruk. Geheugen, CPU, opslag, ... Stuk voor stuk moeten ze worden toegewezen en hebben ze een kostprijs. Kostenbeheer was een terugkerend gespreksonderwerp. Het gebruik van autoscaling (het toevoegen maar ook verwijderen van capaciteit) in functie van de benodigde resources en het identificeren van ongebruikte resources maken deel uit van deze nieuwe beweging. Nieuwe diensten zoals “kubecost” worden steeds populairder.

Performantie en prestaties

Een veelvoorkomend probleem in de cluster is onvoldoende ruimte / resources. Met behulp van een Vertical Pod Autoscaler (VPA) is dat echter verleden tijd. VPA analyseert en bewaart geheugen- en CPU-metrieken/-gegevens om zich automatisch aan te passen aan de juiste CPU- en geheugenverzoeklimieten. De voordelen van deze aanpak? Je bespaart geld, je voorkomt verspilling, je kunt de onderliggende hardware optimaal dimensioneren, resources op worker nodes afstemmen en de plaatsing van pods in een Kubernetes-cluster optimaliseren.

Raadpleeg de KubeCon-agendapagina voor meer informatie!

Service mesh

Het is heel belangrijk om te weten welke applicatie gegevens deelt met welke andere applicatie binnen je cluster. Service mesh controleert de trafiek binnen je cluster(s). Je kunt elk verzoek van of naar andere applicaties blokkeren of toestaan. Het biedt ook informatie over Metrics, Specs, Split, ... om de gegevensstroom beter te begrijpen. 

Tijdens de sessie Service Mesh at Scale: How Xbox Cloud Gaming Secures 22k Pods with Linkerd, legt Chris uit waarom ze voor Linkerd kozen en wat de voordelen zijn van een service mesh.

Raadpleeg de KubeCon-agendapagina voor meer informatie!

Beveiliging

Trampolinepods: klinkt leuk, toch? Tijdens een lezing van twee beveiligingsonderzoekers van Palo Alto Networks kwamen we er echter achter dat ze helemaal niet zo leuk zijn.
Het zijn kort samengevat pods die gebruikt kunnen worden om clusterbeheerprivileges te krijgen.

Wil je meer weten over het concept en hoe je ermee moet omgaan, neem dan zeker de slides door op de KubeCon pagina!

In zijn lezing The Hitchhiker's Guide to Pod Security legde Lachlan Evenson van Microsoft duidelijk uit wat Pod Security is.

Pod Security is een ingebouwd toegangscontrolemechanisme dat podspecificaties evalueert aan de hand van een reeks vooraf gedefinieerde Pod Security Standards en bepaalt of de pod al dan niet mag worden uitgevoerd.

Lachlan Evenson, Principal Program Manager bij Microsoft
Lachlan Evenson - Principal Program Manager

Pod Security vervangt PodSecurityPolicy vanaf Kubernetes 1.23. Dus als je PodSecurityPolicy gebruikt, is het nu misschien het uitgelezen moment om Pod Security en het migratiepad te verkennen. In versie 1.25 wordt PodSecurityPolicy niet meer ondersteund.

Gebruik je PodSecurityPolicy of Pod Security niet, dan is het de hoogste tijd om dit wel te doen!

Ook operators waren een van de terugkerende thema's van dit evenement. Dankzij operators kunnen de Kubernetes-API’s worden uitgebreid met operationele kennis. Hoe? Dankzij de combinatie van Kubernetes-controllers en bekeken objecten die de gewenste status beschrijven. Ze introduceren Custom Resource Definitions, custom controllers, Kubernetes of cloud resources, logging en metrieken. En dat maakt het leven makkelijker voor dev en ops.

Tijdens een lezing van Kevin Ward van ControlPlane leerden we echter dat er toch enkele risico’s aan verbonden zijn en - belangrijker nog - hoe we deze kunnen opsporen met tools zoals BadRobot en een operator thread matrix.

Raadpleeg de KubeCon pagina voor meer informatie!

Scheduling

Telemetry Aware Scheduling helpt je om je workloads in te plannen op basis van metrieken van je worker nodes. Je kunt bijvoorbeeld een regel instellen om geen nieuwe workloads in te plannen op worker nodes met meer dan 90% gebruikt geheugen. De cluster zal hier dan rekening mee houden bij het inplannen van een pod. Een andere handige functie van deze tool is dat hij - indien gewenst - pods opnieuw kan inplannen om er zeker van te zijn dat je regels in lijn blijven.

Raadpleeg de KubeCon pagina voor meer informatie!

Autoscaling van clusters

AWS EC2 Spot - reserve VM-capaciteit die beschikbaar is met korting - is perfect geschikt voor een kostenefficiënte scaling van statusloze workloads. Om Spot-instanties doeltreffend te gebruiken in een K8S-cluster, maak je best gebruik van de aws-node-termination-handler. Op die manier kan je je workloads weghalen van een worker node wanneer Spot beslist deze terug te claimen. Karpenter is nog een andere goede tool om net op tijd Spot-instanties te voorzien voor je cluster. Met deze 2 tools kun je je statusloze workloads dan ook kostenefficiënt hosten.

Raadpleeg de KubeCon pagina voor meer informatie!

Event-driven autoscaling

De Horizontal Pod Autoscaler is een uitstekende tool voor de scaling van pods op basis van metrieken zoals CPU-gebruik, geheugengebruik, ...

In plaats van scaling op basis van metrieken, doet KEDA (Kubernetes Event Driven Autoscaling) aan scaling op basis van events (Apache Kafka, RabbitMQ, AWS SQS, …) en kan het in tegenstelling tot HPA zelfs tot 0 scalen.

Raadpleeg de KubeCon pagina voor meer informatie!

Wrap-up

De conferentie was dit jaar weer fantastisch. We vertrokken er met een flinke dosis inspiratie die we zullen vertalen in interne projecten, zullen aanboren voor nieuwe klantenprojecten en indien van toepassing zullen bespreken met bestaande klanten. We zullen ook onze collega’s briefen en een afterglow sessie organiseren voor de geïnteresseerden in België.

Stuur ons gerust een berichtje als je onze blog leuk vond. Het doet ons altijd plezier als de content die we publiceren ook voor jou van zekere waarde of belang is. Denk je dat we jou of je bedrijf kunnen helpen bij de implementatie van cloud native, laat het me dan zeker weten via peter.jans@aca-it.be.

Tot slot willen we ACA bedanken, en dan vooral Mona voor de logistiek, Stijn en Ronny voor deze mooie kans en de rest van het team dat op post bleef om de systemen van onze gewaardeerde klanten in de gaten te houden.