Wat is Kubernetes?

Voltooid

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, introduceert het proces van het implementeren, bijwerken, bewaken en verwijderen van containers uitdagingen.

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.

Diagram of a server or application replicated as containers for cloud deployment.

Met de website van de app voor het traceren van drones hebt u bijvoorbeeld op specifieke tijdstippen van de dag meer exemplaren van de cacheservice van de site nodig om de prestaties 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.

Diagram showing how number of deployed container instances is automatically increased if demand rises and how an orchestrator ensures all deployed instances are updated with the latest software version.

Kubernetes definiëren

Kubernetes is een draagbaar, uitbreidbaar opensource-platform voor uw beheer en indeling van workloads in containers. 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).

Diagram of replicated servers as multiple containers in a Kubernetes cluster.

Voordelen van Kubernetes

De voordelen van het gebruik van Kubernetes zijn gebaseerd op de abstractie van taken.

Diagram that lists three Kubernetes benefits: self-healing, dynamic scaling, and rolling updates.

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.

Diagram that shows a list of Kubernetes components that including monitoring, microservices, databases, and the Docker runtime.

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.