Kubernetes is een open source systeem voor het beheren van applicaties in een containertechnologieomgeving. Kubernetes automatiseert de handmatige processen om gecontaineriseerde applicaties te implementeren en te schalen. Het kan ook clusters van gecontaineriseerde applicaties beheren, die openbare, private en hybride clouds kunnen omspannen.

De naam, Kubernetes, is geïnspireerd op de analogie van het containerschip en bouwt hierop voort om het Griekse woord aan te duiden dat “roerganger,” zoals bij degene die het containerschip moet besturen. Kubernetes wordt ook gebeld “kube” en “K8S” wat een numeriek is, met behulp van de eerste letter, de laatste letter en het aantal letters tussen die letters.

Geschiedenis van Kubernetes

Word etiologies terzijde, Kubernetes is oorspronkelijk gemaakt door Google, omdat het voortkwam uit een intern project Borg, met containers die Google Cloud-technologie aandrijven. Google beweert zelfs al vijftien jaar ervaring te hebben met containers en beweert daarvan “voer miljarden containers per week uit,” waardoor ze veel ervaring hebben opgedaan in dit softwareprogramma. Kubernetes werd vervolgens als seed-technologie aan de Linux Foundation geschonken om in 2015 de Cloud Native Computing Foundation (CNCF) te vormen.

Hoewel Kubernetes een open source-project is, wordt het officieel ondersteund door zowel Microsoft Azure als Google Cloud. Kubernetes kreeg aanvankelijke acceptatie bij early adopters, wat zich vertaalde in gestage groei en neemt nu een prominente plaats in in de ruimte voor containerbeheersoftware.

Tegenwoordig is het gebruik van meerdere containers voor een echte productie-app gemeengoed geworden, met de containers op meerdere servers. Kubernetes-software maakt de inzet van deze containers mogelijk en schaalt ze over meerdere servers om de werklast aan te passen, inclusief het plannen van de containers in een cluster. Het kan ook helpen om de gezondheid van deze meerdere containers te beheren.

Kubernetes-inzet

Kubernetes wordt ingezet voor een groep containers, die een cluster wordt genoemd. Een van de containers van het cluster wordt aangewezen als de clustermaster, die de Kubernetes-besturingsvlakprocessen uitvoert. De andere containers van het cluster krijgen toegewezen als knooppunten, de werkmachines, die vallen onder de controle van de clustermaster, die functioneert als een uniform eindpunt.

De clusterstester heeft totale controle over zijn knooppunten, waarbij de levenscyclus wordt aangegeven, inclusief de beoordeling van hun gezondheid, evenals de controle van upgrades en reparaties aan elk knooppunt. In het cluster kunnen er speciale containers zijn, die worden aangeduid als per-node-agents met specifieke functies, bijvoorbeeld logcollection of intra-cluster netwerkconnectiviteit.

De standaardwaarde voor een knooppunt is dat het één virtuele CPU heeft en 3,75 GB RAM, het standaard computertype Compute Engine. Voor meer rekenintensieve taken kan een hoger baselinimum minimaal CPU-platform worden gekozen. Realiseer u dat niet alle bronnen van het knooppunt kunnen worden gebruikt voor de toepassing die moet worden uitgevoerd. Integendeel, sommige van deze bronnen zijn nodig om de Kubernetes-engine te gebruiken. De toewijsbare bronnen van het knooppunt, die kunnen worden gebruikt om de toepassing uit te voeren, is het verschil tussen de totale middelen en het bedrag gereserveerd voor de Kubernetes-engine.

Als het knooppunt bijvoorbeeld 4 GB RAM beschikbaar heeft, wordt 25% gereserveerd voor de Kubernetes-engine en de resterende 75% kan worden gebruikt om de toepassing uit te voeren en vereist slechts 20% van de volgende 4 GB RAM als het knooppunt heeft in totaal 8GB RAM. De Kubernetes-engine heeft minder honger van CPU-bronnen, reserveert slechts 6% van de verwerkingskracht van de eerste kern van het knooppunt en slechts 1% van een tweede kern die is toegewezen aan het knooppunt.

De clustermaster voert Kubernetes API Server uit, die verzoeken behandelt die afkomstig zijn van Kubernetes API-aanroepen van de Kubernetes-software. De Kubernetes API Server functioneert als de 'communicatiehub' voor het gehele containercluster.

Kubernetes-functies

Bijdragen aan de populariteit van Kubernetes is de robuuste functieset. Waaronder:

  • Automatische binpacking: dit automatiseert waar containers worden geplaatst op basis van het meest efficiënte gebruik van middelen.
  • Horizontaal schalen: toepassingen kunnen via een eenvoudige opdracht worden opgeschaald of verlaagd om het CPU-gebruik te evenaren.
  • Geautomatiseerde uitrol en rollbacks: Kubernetes rolt updates uit naar updates van de applicaties in fasen, in plaats van alles tegelijk, en monitort op gezondheidsproblemen, en als deze wordt gevonden, wordt deze automatisch teruggezet naar een stabielere versie om de uptime te behouden.
  • Opslag orkestratie: het werkt met een verscheidenheid aan opslagoplossingen voor extra flexibiliteit, van lokale tot publieke cloud.
  • Zelfherstellend: het vermogen om containers die bevriezen te sluiten en containers te herstarten die bevriezen of falen bij hun gezondheidscontrole.
  • Service discovery en load balancing: Kubernetes kan elke container een eigen IP-adres toewijzen, met één DNS-naam en de mogelijkheid om de belasting tussen hen te verdelen.
  • Geheim- en configuratiebeheer: Toepassingen kunnen worden bijgewerkt zonder een afbeelding opnieuw te hoeven opbouwen.
  • Batch-uitvoering: beheer voor batch- en continue integratieworkloads.

Praktische toepassingen van Kubernetes

Kubernetes wordt gebruikt door topbedrijven, waaronder Comcast, eBay, Goldman Sachs, The New York Times en Pokemon Go, en vele anderen. Een voorbeeld van het gebruik van Kubernetes is videoprovider Sling TV, die na hun lancering in 2015 problemen ondervond omdat nieuwe abonnees hun bestaande middelen overtroffen terwijl ze probeerden live tv via internet te verspreiden. Om de ervaring van hun klanten te verbeteren, en met een verlangen naar meer flexibiliteit - voor nu en in de toekomst - werd besloten over te schakelen naar een hybride cloudstrategie. Dit gebruikte zowel een on-premise VMWare multi-datacenter, geïntegreerd met meerdere openbare clouds en bestuurd via de Kubernetes Engine.

Volgens Brad Linder, hun Sling TV's Cloud Native & Big Data Evangelist, “We gaan naar de plaats waar we met één klik een volledig datacenter kunnen implementeren - het rekennetwerk, loggen en monitoren van alle apps.” Hij wijst er verder op dat het eerder dagen in beslag nemen van een nieuwe app zou zijn, wat nu in ongeveer een uur kan worden bereikt via de Kubernetes Engine.

Hoewel Kubernetes van bescheiden oorsprong is als een intern project bij Google, is het geëvolueerd om een ​​dominante speler te worden voor containerbeheersoftware, ongetwijfeld bevorderd door zijn open source-aanpak. De kracht en flexibiliteit van de Kubernetes Engine verklaart waarom het in zoveel verschillende industrieën wordt gebruikt.

  • We bespreken hier ook containertechnologie in meer detail