Wat is Kubernetes?
Het losgekoppelde ontwerp van microservices in combinatie met de atomiciteit van containers maakt het mogelijk om apps uit te schalen die op de vraag reageren. In complexe oplossingen zoals de app voor het traceren van drones brengt het implementeren, bijwerken, bewaken en verwijderen van containers uitdagingen met zich mee.
Voordat u bekijkt wat er in Kubernetes is, zijn er twee concepten die u eerst moet begrijpen: containerbeheer en orchestrators.
Wat is containerbeheer?
Containerbeheer is het proces van het ordenen, toevoegen, verwijderen of bijwerken van een groot aantal containers.
De app voor het traceren van drones bestaat uit meerdere microservices die verantwoordelijk zijn voor taken zoals caching, wachtrijen of gegevensverwerking. Elk van deze services wordt gehost in een container die onafhankelijk van elkaar wordt geïmplementeerd, bijgewerkt en geschaald.
Met de website van de app voor het traceren van drones hebt u bijvoorbeeld meer exemplaren van de cacheservice van de site nodig om de prestaties tijdens specifieke tijdstippen van de dag te behouden, zodat u meer containerinstanties van de cacheservice toevoegt.
Stel vervolgens dat u het aantal cache-exemplaren hebt verhoogd en een nieuwe versie van de microservice moet implementeren. U moet alle actieve containers bijwerken om de nieuwe versie te kunnen gebruiken.
Containerbeheer helpt u bij deze handmatige terugkerende taken.
Wat is een containerorchestrator?
Een containerorchestrator is een systeem dat container-apps automatisch implementeert en beheert. Als onderdeel van het beheer verwerkt de orchestrator het schalen van dynamische wijzigingen in de omgeving om het aantal geïmplementeerde exemplaren van de app te verhogen of te verlagen. Het zorgt er ook voor dat alle geïmplementeerde containerinstanties worden bijgewerkt wanneer een nieuwe versie van een service wordt uitgebracht.
Kubernetes definiëren
Kubernetes is een draagbaar, uitbreidbaar opensource-platform voor het beheren en indelen van in containers geplaatste workloads. Kubernetes vereenvoudigt complexe taken voor containerbeheer en biedt u declaratieve configuratie voor het organiseren van containers in verschillende computeromgevingen. Dit indelingsplatform biedt u hetzelfde gebruiksgemak en dezelfde flexibiliteit die u mogelijk al kent van PaaS-aanbiedingen (Platform as a Service) of IaaS-aanbiedingen (Infrastructure as a Service).
Voordelen van Kubernetes
De voordelen van het gebruik van Kubernetes zijn gebaseerd op de abstractie van taken.
Deze taken omvatten:
Zelfherstel van containers; Bijvoorbeeld het opnieuw opstarten van containers die mislukken of containers vervangen
Het aantal geïmplementeerde containers dynamisch omhoog of omlaag schalen, op basis van de vraag
Rolling updates en terugdraaiacties van containers automatiseren
Opslag beheren
Netwerkverkeer beheren
Gevoelige informatie opslaan en beheren, zoals gebruikersnamen en wachtwoorden
Belangrijk
Bedenk wel dat voor alle voorafgaande aspecten van Kubernetes configuratie en een goed begrip van de besproken onderliggende technologieën vereist zijn. U moet bijvoorbeeld kennis hebben van concepten als virtuele netwerken, load balancers en omgekeerde proxy's om Kubernetes-netwerken te configureren.
Aandachtspunten bij Kubernetes
Met Kubernetes kunt u uw datacentrum als één grote rekenresource beschouwen. U hoeft zich geen zorgen te maken over hoe en waar u uw containers implementeert, alleen over het implementeren en schalen van uw apps als dat nodig is.
Het is echter belangrijk om te begrijpen dat Kubernetes niet een geïnstalleerde app is die wordt geleverd met alle benodigde onderdelen voor het beheren en organiseren van een containeroplossing:
Aspecten zoals implementatie, aanpassing van de schaal, taakverdeling, logboeken en controle zijn allemaal optioneel. Het is uw verantwoordelijkheid de beste oplossing voor uw behoeften te vinden om deze aspecten aan te pakken.
In Kubernetes kan een onbeperkt aantal app-typen op het platform worden uitgevoerd. Als uw app in een container kan worden uitgevoerd, kan deze in Kubernetes worden uitgevoerd. Om optimaal gebruik te maken van containeroplossingen moeten uw ontwikkelaars kennis hebben van concepten zoals microservicearchitectuur.
Kubernetes biedt geen middleware, frameworks voor gegevensverwerking, databases, caches of clusteropslagsystemen. Al deze items worden uitgevoerd als containers of als onderdeel van een ander serviceaanbod.
Voor Kubernetes om containers uit te voeren, heeft het een containerruntime nodig, zoals Docker of containerd. De container-runtime is het object dat verantwoordelijk is voor het beheer van containers. De container-runtime bijvoorbeeld start, stopt en rapporteert over de status van de container.
U bent zelf verantwoordelijk voor het onderhouden van uw Kubernetes-omgeving. U moet bijvoorbeeld besturingssysteemupgrades en de Kubernetes-installatie en -upgrades beheren. U beheert ook de hardwareconfiguratie van de hostcomputers, zoals netwerk, geheugen en opslag.
Cloudservices zoals Azure Kubernetes Service (AKS) verminderen deze uitdagingen door een gehoste Kubernetes-omgeving te bieden. Deze services vereenvoudigen ook het implementeren en beheren van container-apps in Azure. Met AKS profiteert u van de voordelen van opensource-Kubernetes zonder de complexiteit van operationele overhead van het uitvoeren van uw eigen aangepaste Kubernetes-cluster.
Notitie
Kubernetes wordt soms afgekort tot K8s. De 8 staat voor de acht tekens tussen de K en de s van het woord K[ubernete]s.