Hybride deployments met Kubernetes

Eén van de motivaties die ik vaker hoor wanneer mensen in container technologie en Kubernetes hebben geïnvesteerd (of gaan gebruiken) is “Wij willen een hybride / multi-cloud oplossing. Maar hoe eenvoudig is het om dit te bewerkstelligen?’’

Er zijn zeker technologieën die je hier bij kunnen helpen, daarover later meer. Om een succesvolle hybrid cloud strategie te implementeren heb je kennis nodig van alle platformen welke je wilt gaan gebruiken. Wat zijn de voordelen, de nadelen en waar moet je misschien maatwerk toepassen?

Wanneer je container technologie gebruikt lijkt het allemaal eenvoudig “dit kan op iedere omgeving draaien” en dat is grotendeels waar. Echter bij grotere deployments worden orchestration oplossingen als Kubernetes steeds belangrijker. Hoe goed werken die eigenlijk in een multi / hybrid-cloud scenario? Yup, dan wordt het wel iets ingewikkelder.

Er zijn verschillende redenen waarom je op meerdere clouds / hybride je oplossing wil of moet aanbieden. Misschien is het een eis van de klanten, een klant kan vragen of zelfs eisen dat je oplossing op Azure draait, een andere klant kan hetzelfde stellen voor AWS.

Het is dus goed om te kijken wat er technisch mogelijk is in de markt. Om het nog even wat ingewikkelder te maken. De ontwikkelingen van Kubernetes als oplossing zelf en de oplossing op de bekende public clouds gaat vreselijk snel. Wat vandaag nog niet mogelijk is kan volgende maand al als nieuwe feature worden uitgerold.

Let wel op dat we in dit artikel inzoomen op Kubernetes als het gaat om hybride / multi-cloud oplossingen. In realiteit komt er natuurlijk veel meer bij kijken en zeker als het gaat om legal, compliance en security.

Verschillende technologieën

Waar hebben we het eigenlijk over? Natuurlijk we hebben Kubernetes zelf. Je kunt het installeren en in je eigen omgeving of hosted afnemen. Daarnaast hebben we de bekende hosted Kubernetes clusters van de grotere Public Clouds. Denk hierbij aan Azure, Google of Amazon Web Services. Dat zijn al best wel wat keuzes.

Om het nog even wat makkelijker te maken hebben al deze partijen een Kubernetes aanbieding gekoppeld aan technologieën specifiek voor dat platform.

Voor Amazone hebben we Amazon Elastic Container Service for Kubrnetes (Amazone EKS) op Google hebben we Google Kubernetes Engine (EKS) en voor Microsoft Azure is Azure Kubernetes Service (AKS) beschikbaar. Zij gebruiken alleen een Kubernetes versie zoals deze publiekelijk door Kubernetes is gepubliceerd en onderhouden. Echter, de functionaliteiten welke binnen de standaard Kubernetes beschikbaar zijn hoeven niet altijd beschikbaar te zijn in de public clouds. Andersom geldt hetzelde. We hebben het hier vaak over Autoscaling, pricing en monitoring. Als we andersom kijken heeft Azure weer Azure Policy integratie met Kubernetes wat in de eerste instantie niet beschikbaar is op die andere clouds (hierover later meer). Dit lijken nog eenvoudige verschillen maar als het gaat om Enterprise scale deployments en configuraties dan zijn deze functionaliteit van groot belang voor het succes van je omgeving, helemaal als het gaat om een hybride oplossing.

Pipelines

Wanneer je hebt geïnventariseerd en besloten op welke platform jij je cluster(s) wil gaan draaien kom je bij een nog grotere uitdaging. Deployment pipelines. Ja, containers blijven hetzelfde en wanneer je netjes de Yaml files schrijft of gebruikt maakt van Helm zal dit ook niet veel verschillen. Echter, hoe deploy je de Kubernetes omgeving zelf? Dit wordt vaak gedaan met een technologie die hoort bij die specifiek cloud. Voor Azure hebben we het dan over Azure Resource Manager Templates of scripting met behulp van Azure CLI.

Daarnaast hebben deze clouds allen verschillende features. Wat als een feature op de ene cloud wel beschikbaar is en op de andere niet? Een goede vuistregel is om te standaardiseren op de cloud met de minst beschikbare technologieën zodat je zeker weet dat alles op alle omgevingen beschikbaar is. Dit kan je zeker beperken maar sluit uiteraard maatwerk niet uit wanneer de vraag daar is. Echter, je moet ergens beginnen.

Dan is de vraag welke deployment technologie je gaat gebruiken. Eigenlijk heb je twee opties:

  • Gebruik de cloud technologie van die specifieke cloud zelf;
  • Gebruik een meer generieke third party oplossing.

Beide opties hebben voor en nadelen. Zoals benoemd heeft iedere cloud zijn eigen technologie. Ga je deze gebruiken en flink kennis investeren in al deze oplossingen of ga je naar een meer generieke oplossing als Terraform of Pulumi? Deze twee third party oplossingen zijn zeker niet je enige opties maar worden wel veel gebruikt. Let er wel op dat dit doorgaans niet betekent dat je één deployment hebt voor meerdere clouds. Het schrijven van infrastucture as code zal in dit geval wel in dezelfde taal gebeuren maar zal er voor iedere cloud iets anders uit zien. Daarnaast ondersteunen deze third party oplossingen vaak niet de allerlaatste features van die specifieke cloud. Dus ook hier weer iets om rekening mee te houden.

Eigenlijk is geen van de opties een verkeerde keuze. Het is van belang je dat van te voren goed onderzoek doet naar je eigen wensen en de requirements van de klanten.

 

Azure Arc

Als we verder kijken dan de uitrol zelf maar inzoomen op het beheren van een hybride scenario dan wordt de uitdaging weer iets groter. Microsoft heeft hiervoor in 2019 een technologie in het leven geroepen: “Azure Arc”. Deze technologie is gebouwd voor hybride scenarios. Azure Arc is beschikbaar voor meerdere technologieën dan Kubernetes maar voor nu richten we ons even op dat laatste.

Azure Arc is nog steeds in preview en kan in termen van features beperkt lijken maar de toekomst ziet er goed uit.

Door je Kubernetes cluster te configureren met Azure Arc wordt deze ook zichtbaar binnen het Azure Portal. Hiermee wordt een zogenaamde “Single control plane” gecreëerd en kun je al je clusters vanuit één scherm beheren. Best wel cool toch?

Als we het vanuit technisch perspectief bekijken dan wordt er een agent uitgerold in de azure-arc namespace op het cluster. Deze agent is verantwoordelijk voor de communicatie met Microsoft Azure. Op dit moment worden alle CNCF gecertificeerde clusters ondersteund (AKS-Engines). De volgende technologieën zijn door Microsoft succesvol getest:

  • RedHat OpenShift 4.3
  • Rancher RKE 1.0.8
  • Canonical Charmed Kubernetes 1.18
  • AKS Engine
  • AKS Engine on Azure Stack Hub
  • AKS on Azure Stack HCI
  • Cluster API Provider Azure

(bron: Microsoft Docs)

Okay, welke features heb je dan beschikbaar wanneer je azure-arc gebruikt? Op dit moment kun je je Kubernetes resources in het Azure Portal zien en daarmee technologieën als tagging en grouping toepassen. Maar er is meer. Zo kun je ook je configuratie deployen en is er support en integratie met Azure Monitor en Azure Policy.

Samenvattend

Hybride deployments lijken een schot in de roos en de way to go, echter de eerste vraag is altijd “Heb je dit wel nodig” en de tweede vraag is dan “welke platformen wil je gaan gebruiken?”.

Een goede inventarisatie en marktonderzoek is nodig nog voordat je aan de technische handelingen begint. Het is van belang om goed te begrijpen wat de verschillende clouds bieden en of dit is wat jij en je klanten nodig hebben. Om het samen te vatten:

  • Doe marktonderzoek, kijk wat je klanten nodig hebben en leg je technische requirements vast. Kies dan welke platformen je wilt ondersteunen;
  • Bouw je deployment pipeline. Kies ook hier weer welke technologie je wilt gebruiken. Ga je voor de native deployment technologie van die cloud of een meer generieke third party oplossing?
  • Gebruik Azure Arc om één management portaal te creëren.

Er komt natuurlijk veel meer bij kijken en afhankelijk van de complexiteit van je omgeving zal je veel onderzoek moeten doen. Echter, deze onderwerpen komen altijd terug. Wat je niet wilt is eindigen met 3 verschillende monitoring dashboards, 3 code bases voor je deployment code en 3 verschillende teams om 3 verschillende clouds te managen.

 

 

Dit artikel is onderdeel van een reeks 

Lees in dit vervolg artikel alles over microservices op AKS.

Vorige artikel teruglezen? Klik hier: De evolutie van AKS


Wil je niets missen? Schrijf je dan hier in voor onze Intercept Insights. Dan houden we je op de hoogte van de laatste nieuwsberichten.


Bezoek onze AKS workshop

Leer nog meer over AKS door onze interactieve AKS workshop. In 1.5 uur ontvang jij de voordelen en de best practices om jouw omgeving efficiënter te maken. Middels veelvoorkomende AKS uitdagingen ben jij klaar voor AKS. Klik hier voor data en meld je aan!

Tags

  • Azure Kubernetes Services
  • Containers
  • Hybrid Cloud

Geschreven door

Wesley Haakman

Wesley Haakman

Lead Azure Architect bij Intercept | Microsoft Azure MVP | CISSP | Spreker

Wellicht ook interessant:

  • 202011111 Intercept Illustratie Bij Artikel Aks Monitoring A

    AKS monitoring en management

    In dit artikel geven we je op een hoog niveau meer inzicht in de mogelijkheden van het monitoren van (Azure) resources, maar AKS-clusters in het bijzonder.

    • Leesduur 9min
    Meer over AKS monitoring en management
  • Ingress Name (2)

    Ingress, Services, Pods & Namespaces.

    Nadat je de container technologie hebt omarmd en hebt besloten dat Kubernetes gaat gebruiken, moet je aan de bak en je erin gaan verdiepen. Er is namelijk veel te leren, maar een aantal belangrijke concepten zoals Services, Pods, Ingresses en namespaces zijn van cruciaal belang voor je succes.

    • Leesduur 8min
    Meer over Ingress, Services, Pods & Namespaces.
  • Aks Security

    AKS Security

    Iedereen werkt hard aan het nieuwe platform en dan vraagt iemand... "Hoe zit het met de veiligheid?"

    • Leesduur 10min
    Meer over AKS Security
  • Ebook AKS 6

    Het Intercept AKS e-book

    Dit e-book geeft je alle informatie die je moet weten om te beslissen of Azure Kubernetes een goede match met jouw software architectuur is. Leer daarnaast ook van onze best practices omtrent o.a. security, update scenario's en het monitoren en managen van AKS clusters.

    • Leesduur 2min
    Meer over Het Intercept AKS e-book
  • 20201028 Intercept Illustratie Bij Artikel Windows Container

    Windows containers in een Linux wereld

    Een veel voorkomende vraag wanneer iemand op zoek is naar het transformeren/containeriseren van zijn oplossing is; ‘ik draai nu op een Windows systeem: moet ik Windows containers gebruiken of moet ik kiezen voor Linux containers? En dit is inderdaad een hele terechte vraag.

    • Leesduur 8min
    Meer over Windows containers in een Linux wereld
  • Hoofdfoto Artikel AKS Updates

    Update scenario's op AKS

    In dit artikel ga ik het hebben over een heel belangrijk onderwerp: updates. Als ik zeg updates, dan bedoel ik niet alleen Kubernetes updates, maar ook de worker node OS updates. Veel mensen vergeten het patchen van het work OS in de overtuiging dat het door Microsoft wordt geregeld. Dit is niet het geval.

    • Leesduur 8min
    Meer over Update scenario's op AKS
  • Intercept Illustratie Bij Artikel Microservices Def Verkleind

    Microservices op AKS

    Ik hoor en zie online dat veel mensen praten over Microservices en Service Mesch, maar wat is dit? In dit artikel kijken we naar wat Microservices zijn, wat een Service Mesh is en wat je ermee kunt doen en tot slot of je het nu wel echt nodig hebt

    • Leesduur 9min
    Meer over Microservices op AKS
  • 20200819 Intcercept Artikel Illustratie Aks Cluster

    Best practices voor het opzetten van een AKS cluster

    Kubernetes is “hot & happening”, vrijwel iedereen wil er mee aan de slag. Het aanmaken van een AKS-cluster is zo gedaan, maar gaat dat ook zo makkelijk als je Kubernetes echt in productie wilt nemen? In dit artikel geven wij belangrijke tips en best-practices voor het opzetten en gebruiken van een AKS-productie omgeving.

    • Leesduur 6min
    Meer over Best practices voor het opzetten van een AKS cluster
  • 20200819 Intcercept Artikel Illustratie Aks Cluster

    Best practices voor het opzetten van een AKS cluster

    Kubernetes is “hot & happening”, vrijwel iedereen wil er mee aan de slag. Het aanmaken van een AKS-cluster is zo gedaan, maar gaat dat ook zo makkelijk als je Kubernetes echt in productie wilt nemen? In dit artikel geven wij belangrijke tips en best-practices voor het opzetten en gebruiken van een AKS-productie omgeving.

    • Leesduur 6min
    Meer over Best practices voor het opzetten van een AKS cluster