Kubernetes-tutorial voor beginners: basisprincipes, functies, Architectuur

Laten we, voordat we aan deze Kubernetes-tutorial beginnen, het volgende leren:

Wat is Kubernetes?

Kubernetes is een containerbeheersysteem dat is ontwikkeld op het Google-platform. Kubernetes helpt bij het beheren van gecontaineriseerde applicaties in verschillende soorten fysieke, virtuele en cloudomgevingen. Google Kubernetes is een zeer flexibele containertool om consistent complexe applicaties te leveren die draaien op clusters van honderden tot duizenden afzonderlijke servers.

Waarom heb je containers nodig?

De hedendaagse internetgebruiker accepteert nooit downtime. Daarom moeten ontwikkelaars een methode vinden om onderhoud en updates uit te voeren zonder hun services te onderbreken.

Daarom container, dat zijn geïsoleerde omgevingen. Het bevat alles wat nodig is om de applicatie te laten werken. Het maakt het voor een ontwikkelaar gemakkelijk om apps te bewerken en te implementeren. Bovendien is containerisatie een voorkeursmethode geworden voor het verpakken, implementeren en updaten van webapps.

Welke taken worden uitgevoerd door Kubernetes?

Kubernetes is de Linux-kernel die wordt gebruikt voor gedistribueerde systemen. Het helpt u de onderliggende hardware van de knooppunten (servers) abstract te maken en biedt een consistente interface voor applicaties die de gedeelde bronnenpool gebruiken.

Waarom Kubernetes gebruiken?

Kubernetes helpt u bij het beheren van de resourcetoewijzing en het verkeersbeheer voor cloudapplicaties en microservices. Het helpt ook om verschillende aspecten van servicegerichte infrastructuren te vereenvoudigen. Met Kubernetes kunt u garanderen waar en wanneer container-applicaties worden uitgevoerd en kunt u bronnen en tools vinden waarmee u wilt werken.

Functies van Kubernetes

Dit zijn de essentiële Kubernetes-functies:

  • Geautomatiseerde planning
  • Zelfgenezend vermogen
  • Geautomatiseerde uitrol en terugdraaiing
  • Horizontale schaling en taakverdeling
  • Biedt omgevingsconsistentie voor ontwikkeling, testen en productie
  • Infrastructuur is losjes gekoppeld, zodat elk onderdeel als een afzonderlijke eenheid kan fungeren
  • Zorgt voor een hogere dichtheid van het gebruik van hulpbronnen
  • Biedt bedrijfsklare functies
  • Applicatiegericht beheer
  • Automatisch schaalbare infrastructuur
  • U kunt een voorspelbare infrastructuur creëren

Basisprincipes van Kubernetes

In deze Kubernetes-tutorial leren we enkele belangrijke basisprincipes van Kubernetes:

  • Cluster

    Het is een verzameling hosts (servers) die u helpt hun beschikbare bronnen samen te voegen. Dat omvat ram, CPU, ram, schijf en hun apparaten in een bruikbare pool.

  • Master

    De master is een verzameling componenten die het controlepaneel van Kubernetes vormen. Deze componenten worden gebruikt voor alle clusterbeslissingen. Het omvat zowel planning als het reageren op clustergebeurtenissen.

  • Knooppunt

    Het is een enkele host die op een fysieke of virtuele machine. Een knooppunt moet zowel kube-proxy, minikube en kubelet uitvoeren, die als onderdeel van het cluster worden beschouwd.

  • namespace

    Het is een logische cluster of omgeving. Het is een veelgebruikte methode die wordt gebruikt voor het bepalen van de scope van toegang of het verdelen van een cluster.

Kubernetes Architectuur

Hieronder ziet u een gedetailleerd Kubernetes-architectuurdiagram:

Kubernetes Archistructuurdiagram
Kubernetes Archistructuurdiagram

Master Node

De master node is het eerste en meest vitale onderdeel dat verantwoordelijk is voor het beheer van het Kubernetes-cluster. Het is het toegangspunt voor alle soorten administratieve taken. Er kan meer dan één master node in het cluster zijn om te controleren op fouttolerantie.

Het masterknooppunt heeft verschillende componenten, zoals API Server, Controller Manager, Scheduler en ETCD. Laat ze allemaal zien.

API-server: De API-server fungeert als toegangspunt voor alle REST-opdrachten die worden gebruikt voor de besturing van het cluster.

Scheduler

De planner plant de taken naar het slave-knooppunt. Het slaat de informatie over het gebruik van bronnen op voor elk slave-knooppunt. Zij is verantwoordelijk voor de verdeling van de werklast.

Het helpt u ook om bij te houden hoe de werklast wordt gebruikt op clusterknooppunten. Het helpt u om de werklast te plaatsen op resources die beschikbaar zijn en de werklast te accepteren.

enz

etcd-componenten slaan configuratiedetails en juiste waarden op. Het communiceert met de meeste componenten om opdrachten te ontvangen en te werken. Het beheert ook netwerkregels en port forwarding-activiteiten.

Werknemer/slave-knooppunten

Werkknooppunten zijn een ander essentieel onderdeel dat alle vereiste services bevat om het netwerk tussen de containers te beheren en te communiceren met het hoofdknooppunt, waarmee u bronnen aan de geplande containers kunt toewijzen.

  • Kubelet: haalt de configuratie van een Pod op van de API-server en zorgt ervoor dat de beschreven containers actief zijn.
  • Docker-container: havenarbeider container wordt uitgevoerd op elk van de werkknooppunten, waarop de geconfigureerde peulen worden uitgevoerd
  • Kube-proxy: Kube-proxy fungeert als load balancer en netwerkproxy om service uit te voeren op één werkknooppunt
  • Pods: Een pod is een combinatie van enkele of meerdere containers die logischerwijs samen op knooppunten draaien

Andere belangrijke terminologieën

Replicatiecontrollers

Een replicatiecontroller is een object dat een pod-sjabloon definieert. Het bestuurt ook parameters om identieke replica's van Pod horizontaal te schalen door het aantal actieve exemplaren te verhogen of te verlagen.

Replicatiesets

Replicatiesets zijn een interactie met het ontwerp van de replicatiecontroller, met flexibiliteit in de manier waarop de controller de pods herkent die hij moet beheren. Het vervangt replicatiecontrollers vanwege hun hogere replicatieselectiemogelijkheden.

implementaties

Implementatie is een algemene werklast die direct kan worden gemaakt en beheerd. Implementatie gebruikt replicatieset als bouwsteen die de functie van levenscyclusbeheer toevoegt.

Statelijke sets

Het is een gespecialiseerde podcontrole die ordening en uniciteit biedt. Het wordt voornamelijk gebruikt voor een fijnmazige controle, die u met name nodig heeft met betrekking tot de implementatievolgorde, stabiele netwerken en persistente gegevens.

Daemon-sets

Daemon sets zijn een andere gespecialiseerde vorm van pod controller die een kopie van een pod op elk knooppunt in het cluster uitvoert. Dit type pod controller is een effectieve methode voor het implementeren van pods waarmee u onderhoud kunt uitvoeren en services voor de knooppunten zelf kunt aanbieden.

Kubernetes versus Docker-zwerm

Hier zijn belangrijke verschillen tussen Kubernetes versus Docker.

Parameter Docker Zwerm Kubernetes
scaling Geen automatische schaling Automatische schaalverdeling
Load balancing Voert automatische taakverdeling uit Configureer uw instellingen voor taakverdeling handmatig
Het delen van opslagvolumes Deelt opslagvolumes met elke andere container Deelt opslagvolumes tussen meerdere containers binnen dezelfde Pod
Gebruik van login- en monitoringtool Gebruik 3rd partytool zoals ELK Zorg voor een ingebouwde tool voor logboekregistratie en monitoring.
Installatie Gemakkelijk en snel Ingewikkeld en tijdrovend
GUI GUI niet beschikbaar GUI is beschikbaar
Schaalbaarheid Opschalen is sneller dan K8S, maar de clustersterkte is niet zo robuust Opschalen is traag vergeleken met Swarm, maar garandeert een sterkere clusterstatus. Load balancing vereist handmatige serviceconfiguratie.
Load Balancing Biedt een ingebouwde taakverdelingstechniek Procesplanning om services te behouden tijdens het updaten
Updates en terugdraaien Gegevensvolumes Registratie en monitoring Progressieve updates en monitoring van de servicestatus. Alleen gedeeld met containers in dezelfde Pod Ingebouwde log- en monitoringtools.

Voordelen van Kubernetes

  • Eenvoudige organisatie van de service met pods
  • Het is ontwikkeld door Google, die jarenlange waardevolle ervaring in de sector met zich meebrengt
  • Grootste community onder container-orchestratietools
  • Biedt een verscheidenheid aan opslagopties, waaronder on-premises, SAN's en openbare clouds
  • Houdt zich aan de principes van een onveranderlijke infrastructuur
  • Kubernetes kan on-premises bare metal, OpenStack en publieke clouds draaien Kopen Google Reviews, Azure, AWS, Etc.
  • Helpt u problemen met leveranciersvergrendeling te voorkomen, omdat het alle leveranciersspecifieke API's of services kan gebruiken, behalve waar Kubernetes een abstractie biedt, bijvoorbeeld load balancer en opslag.
  • Door containerisatie met behulp van kubernetes kan pakketsoftware deze doelen dienen. Het maakt applicaties mogelijk die zonder enige downtime moeten worden vrijgegeven en bijgewerkt.
  • Met Kubernetes kunt u ervoor zorgen dat deze gecontaineriseerde applicaties draaien waar en wanneer u maar wilt, en kunt u de bronnen en tools vinden waarmee u wilt werken.

Nadelen van Kubernetes

  • Kubenetes-dashboard is niet zo nuttig als het zou moeten zijn
  • Kubernetes is een beetje ingewikkeld en onnodig in omgevingen waar alle ontwikkeling lokaal gebeurt.
  • Beveiliging is niet erg effectief.

Samenvatting

  • Container helpt een organisatie onderhoud en updates uit te voeren zonder de services te onderbreken
  • Kubernetes is een voorbeeld van een containerbeheersysteem ontwikkeld in het Google-platform.
  • Het grootste voordeel van het gebruik van Kubernetes is dat het on-premises OpenStack, publieke clouds van Google, Azure, AWS, enz.
  • Kubernetes biedt geautomatiseerde plannings- en zelfherstelmogelijkheden.
  • Cluster, master, node en namespace zijn belangrijke basiselementen van kubernetes
  • Masternode en werknode zijn belangrijke onderdelen van de Kubernetes-architectuur.
  • Replicatiecontrollers, replicatiesets, implementaties, stateful sets en daemonsets zijn andere belangrijke termen die in Kubernetes worden gebruikt.
  • Docker-zwerm staat automatisch schalen niet toe, terwijl Kubernetes automatisch schalen toestaat.
  • Het grootste nadeel van Kubenetes is dat het dashboard niet erg nuttig en effectief is