Ku­ber­netes ist eine Open-Source-Plattform zur au­to­ma­ti­sier­ten Be­reit­stel­lung, Ska­lie­rung und Ver­wal­tung von con­tai­ne­ri­sier­ten An­wen­dun­gen. Sie or­ga­ni­siert Container in Clustern und sorgt dafür, dass Dienste zu­ver­läs­sig und effizient laufen. Durch Funk­tio­nen wie Last­ver­tei­lung, Selbst­hei­lung und Rollouts ver­ein­facht Ku­ber­netes den Betrieb moderner An­wen­dun­gen erheblich.

Managed Ku­ber­netes
Ku­ber­netes als Managed Service von IONOS Cloud

Die ideale Plattform für per­for­man­te und hoch­ska­lier­ba­re Container-An­wen­dun­gen. Umfassend ins IONOS Cloud Ökosystem in­te­griert und rund um die Uhr pro­fes­sio­nell betreut.

Was ist Ku­ber­netes?

Ku­ber­netes (K8s) ist ein Open-Source-System zur Or­ches­trie­rung von Con­tai­nern, das ur­sprüng­lich von Google ent­wi­ckelt und heute von der Cloud Native Computing Foun­da­ti­on (CNCF) geführt wird. Es verwaltet Container-An­wen­dun­gen in ver­teil­ten Um­ge­bun­gen, indem es au­to­ma­ti­siert Container (neu) startet, skaliert, überwacht und bei Bedarf ersetzt.

Die in der Pro­gram­mier­spra­che Go ge­schrie­be­ne Ar­chi­tek­tur basiert auf einem Master-Node und mehreren Worker-Nodes, wobei ver­schie­de­ne Kom­po­nen­ten wie der Scheduler für zentrale Ver­wal­tungs­auf­ga­ben zuständig sind. Über de­kla­ra­ti­ve Kon­fi­gu­ra­tio­nen (z. B. in YAML-Dateien) definiert man ge­wünsch­te Zustände, die Ku­ber­netes kon­ti­nu­ier­lich si­cher­stellt. Das Tool zielt sowohl auf die Nutzung in der Cloud als auch auf den Einsatz auf lokalen Rechnern oder in On-Premises-Re­chen­zen­tren ab.

Wie funk­tio­niert Ku­ber­netes?

Ku­ber­netes ist ein Container-Or­ches­trie­rungs-System. Das bedeutet: Die Software soll nicht etwa Container erstellen, sondern diese verwalten. Dafür setzt Ku­ber­netes auf Au­to­ma­ti­sie­rung von Prozessen. So fällt es Ent­wick­le­rin­nen und Ent­wick­lern leichter, An­wen­dun­gen zu testen, zu warten oder zu ver­öf­fent­li­chen. Die Ku­ber­netes-Ar­chi­tek­tur besteht aus einer klaren Hier­ar­chie:

  • Container: Ein Container enthält An­wen­dun­gen und Software-Um­ge­bun­gen.
  • Pod: Diese Einheit in der Ku­ber­netes-Ar­chi­tek­tur ver­sam­melt Container, die für eine Anwendung zu­sam­men­ar­bei­ten müssen.
  • Node: Einer oder mehrere Ku­ber­netes-Pods laufen auf einem Node, der sowohl eine virtuelle als auch eine phy­si­ka­li­sche Maschine sein kann.
  • Cluster: Mehrere Nodes werden zu einem Ku­ber­netes-Cluster zu­sam­men­ge­fasst.

Zudem basiert die Ku­ber­netes-Ar­chi­tek­tur auf dem Prinzip von Master- und Worker-Nodes. Als Worker-Nodes, also die kon­trol­lier­ten Teile des Systems, werden die be­schrie­be­nen Nodes ein­ge­setzt. Sie stehen unter der Ver­wal­tung und Kontrolle des Ku­ber­netes-Masters.

Zu den Aufgaben eines Masters gehört es zum Beispiel, Pods auf Nodes zu verteilen. Durch die ständige Über­wa­chung kann der Master auch ein­grei­fen, sobald ein Node ausfällt, und diesen direkt doppeln, um den Ausfall zu kom­pen­sie­ren. Der Ist-Zustand wird immer mit einem Soll-Zustand ver­gli­chen und bei Bedarf angepasst. Solche Vorgänge geschehen au­to­ma­tisch. Der Master ist aber auch der Zu­griffs­punkt für Ad­mi­nis­tra­to­ren. Diese können darüber die Container or­ches­trie­ren.

Ku­ber­netes-Node

Der Worker-Node ist ein phy­si­scher oder vir­tu­el­ler Server, auf dem ein oder mehrere Container aktiv sind. Auf dem Node befindet sich eine Lauf­zeit­um­ge­bung für die Container. Außerdem ist das so­ge­nann­te Kubelet aktiv. Hierbei handelt es sich um einen Be­stand­teil, der die Kom­mu­ni­ka­ti­on zum Master er­mög­licht. Die Kom­po­nen­te startet und stoppt zudem Container. Mit dem cAdvisor hat das Kubelet einen Dienst, der die Res­sour­cen­aus­las­tung auf­zeich­net. Dies ist für Analysen in­ter­es­sant. Schließ­lich gibt es noch den Kube-proxy, mit dem das System Load-Balancing durch­führt und Netz­werk­ver­bin­dun­gen über TCP oder andere Pro­to­kol­le er­mög­licht.

Ku­ber­netes-Master

Der Master ist ebenfalls ein Server. Um die Kontrolle und Über­wa­chung der Nodes zu ge­währ­leis­ten, läuft auf dem Master der Con­trol­ler Manager. Diese Kom­po­nen­te wiederum hat mehrere Prozesse in sich vereint:

  • Der Node Con­trol­ler überwacht die Nodes und reagiert, wenn einer ausfällt.
  • Der Re­pli­ca­ti­on Con­trol­ler stellt sicher, dass immer die ge­wünsch­te Zahl von Pods gleich­zei­tig läuft. In modernen Setups wird er weit­ge­hend durch Re­pli­ca­Sets ersetzt, die in der Regel über De­ploy­ments verwaltet werden.
  • Der Endpoints Con­trol­ler kümmert sich um das Endpoint-Objekt, das für die Ver­bin­dung von Services und Pods zuständig ist.
  • Service Account und Token Con­trol­ler verwalten den Namespace und erstellen API-Zu­griffsto­ken.

Neben dem Con­trol­ler Manager läuft eine Datenbank namens etcd. In dieser Key-Value-Datenbank ist die Kon­fi­gu­ra­ti­on des Clusters ge­spei­chert, für den der Master zuständig ist. Mit der Kom­po­nen­te Scheduler kann der Master au­to­ma­ti­siert die Ver­tei­lung von Pods auf Nodes über­neh­men. Die Ver­bin­dung zum Node funk­tio­niert über den im Master in­te­grier­ten API-Server. Dieser stellt eine REST-Schnitt­stel­le zur Verfügung und tauscht per JSON In­for­ma­tio­nen mit dem Cluster aus. So können z. B. auch die ver­schie­de­nen Con­trol­ler auf die Nodes zugreifen.

Ku­ber­netes und Docker: Kon­kur­ren­ten?

Die Frage, wer im Vergleich Ku­ber­netes vs. Docker am besten performt, stellt sich im Grunde genommen nicht, denn man benutzt die beiden Programme mit­ein­an­der. Docker (oder eine andere Container-Plattform wie rkt) ist auch bei Ku­ber­netes für das Zu­sam­men­stel­len und Ausführen von Con­tai­nern zuständig. Ku­ber­netes greift auf diese Container zu und übernimmt die Or­ches­trie­rung bzw. die Au­to­ma­ti­sie­rung von Prozessen. Ku­ber­netes allein kann die Er­stel­lung von Con­tai­nern nicht leisten.

Eine Kon­kur­renz besteht höchstens zu Docker Swarm. Dabei handelt es sich um ein Tool zur Docker-Or­ches­trie­rung. Dieses Tool arbeitet ebenfalls mit Clustern und bietet ähnliche Funk­tio­nen wie Ku­ber­netes.

Was sind die Vorteile von Ku­ber­netes?

Ku­ber­netes überzeugt mit einer Vielzahl von Vorteilen, die sowohl Ska­lier­bar­keit als auch Be­triebs­si­cher­heit und Effizienz ver­bes­sern.

Au­to­ma­ti­sier­te Ska­lie­rung: Um Kosten zu sparen, kann Ku­ber­netes Res­sour­cen perfekt ausnutzen. Statt derzeit nicht benötigte Maschinen wei­ter­lau­fen zu lassen, kann Ku­ber­netes diese Res­sour­cen wieder freigeben und entweder für andere Tasks einsetzen oder einfach gar nicht benutzen – was Kosten sparen kann.

Hohe Aus­fall­si­cher­heit: Durch Re­pli­ka­ti­on und au­to­ma­ti­sche Wie­der­her­stel­lung stellt Ku­ber­netes sicher, dass An­wen­dun­gen auch bei Fehlern oder Ausfällen einzelner Kom­po­nen­ten wei­ter­lau­fen.

Res­sour­cen­scho­nen­de Or­ches­trie­rung: Pods und Container werden in­tel­li­gent auf die ver­füg­ba­ren Nodes verteilt, wodurch Re­chen­leis­tung optimal genutzt wird.

Einfaches Rollout und Rollback: Neue Versionen von An­wen­dun­gen lassen sich mit minimalem Aufwand ausrollen. Falls nötig, ist auch ein schnelles Zu­rück­rol­len auf frühere Versionen möglich.

Platt­form­un­ab­hän­gig­keit: Ku­ber­netes läuft auf lokalen Servern, in der Cloud oder in einer Hybrid Cloud; die Workloads bleiben dabei portabel.

Service Discovery und Load Balancing: Ku­ber­netes erkennt au­to­ma­tisch Dienste innerhalb des Clusters und verteilt den Da­ten­ver­kehr gleich­mä­ßig, ohne dass externe Load-Balancer nötig sind.

Ef­fi­zi­en­tes Ma­nage­ment durch APIs: Über eine zentrale API können alle Cluster-Kom­po­nen­ten verwaltet und au­to­ma­ti­siert auch durch externe Tools und CI/CD-Pipelines an­ge­steu­ert werden.

Cloud GPU VM
Maximale KI-Per­for­mance mit Ihrer Cloud GPU VM
  • Exklusive NVIDIA H200 GPUs für höchste Re­chen­leis­tung
  • Ga­ran­tier­te Per­for­mance durch voll­stän­dig de­di­zier­te CPU-Kerne
  • 100 % Hosting in Deutsch­land für maximale Da­ten­si­cher­heit und DSGVO-Kon­for­mi­tät
  • Einfaches, kal­ku­lier­ba­res Preis­mo­dell mit festem Preis pro Stunde

Wofür eignet sich Ku­ber­netes?

In der Software-Ent­wick­lung spielt Ku­ber­netes in­zwi­schen eine große Rolle – besonders bei agilen Projekten. Der Zyklus von Ent­wick­lung, Testing und De­ploy­ment (und allen möglichen Zwi­schen­schrit­ten) wird durch die Container-Or­ches­trie­rung ver­ein­facht. Ku­ber­netes ist besonders dann geeignet, wenn An­wen­dun­gen in Con­tai­nern betrieben werden und eine ska­lier­ba­re, hoch­ver­füg­ba­re In­fra­struk­tur benötigt wird. Darüber hinaus lassen sich folgende Use Cases fest­ma­chen:

  • Mi­cro­ser­vice-Ar­chi­tek­tu­ren: In der Praxis wird K8s häufig für den Betrieb von Mi­cro­ser­vice-Ar­chi­tek­tu­ren genutzt, bei denen viele kleine Dienste un­ab­hän­gig von­ein­an­der ent­wi­ckelt, getestet und ak­tua­li­siert werden. Un­ter­neh­men setzen Ku­ber­netes ein, um Ent­wick­lungs- und Pro­duk­ti­ons­um­ge­bun­gen zu au­to­ma­ti­sie­ren und schneller auf neue An­for­de­run­gen reagieren zu können.
  • CI/CD: Auch im Bereich Con­ti­nuous In­te­gra­ti­on und Con­ti­nuous De­ploy­ment findet Ku­ber­netes Anwendung, da sich auf diese Weise De­ploy­ments au­to­ma­ti­sie­ren und Versionen sauber verwalten lassen.
  • Multi- und Hybrid-Cloud: In Multi-Cloud- oder Hybrid-Cloud-Stra­te­gien dient Ku­ber­netes dazu, Workloads platt­form­un­ab­hän­gig be­reit­zu­stel­len und flexibel zwischen ver­schie­de­nen Cloud-Anbietern oder Re­chen­zen­tren zu ver­schie­ben.
  • Big Data: Darüber hinaus eignet sich Ku­ber­netes auch für Big-Data- und Machine-Learning-Projekte, bei denen viele kurz­le­bi­ge Container parallel laufen.
  • Große Platt­for­men: Ku­ber­netes ist auch für große Platt­for­men mit hoher Nut­zer­zahl un­ver­zicht­bar, um Traffic-Spitzen au­to­ma­tisch zu be­wäl­ti­gen und Aus­fall­si­cher­heit zu ga­ran­tie­ren.
Zum Hauptmenü