Kubernetes: Eine Einführung
Summary
TLDRIn diesem Video gibt es einen detaillierten Überblick über Kubernetes, ein Open-Source-Projekt, das ursprünglich von Google entwickelt wurde. Tobias erklärt, was Kubernetes ist, wie es als Orchestrator für Container funktioniert und welche Vorteile es bietet. Er diskutiert die Architektur, die zentrale API, verschiedene Komponenten und wie Kubernetes die Verteilung und Verwaltung von Software im Cluster ermöglicht. Zudem spricht er über die Schnittstellen wie CRI, CNI und CSI, die Flexibilität in der Nutzung von Kubernetes und seine Fähigkeit, hochverfügbare Systeme zu erstellen. Abschließend betont er die Stärke von Kubernetes als Plattform, die Entwickler von Herstellerabhängigkeiten befreit und die Portabilität von Software fördert.
Takeaways
- 😀 Kubernetes ist ein Open-Source-Projekt, das ursprünglich von Google-Entwicklern initiiert wurde und für die Verwaltung von Containern in einem Cluster konzipiert ist.
- 🚀 Es bietet Orchestrierungsfunktionen für Container, die automatische Platzierung, Skalierung und Migration von Anwendungen ermöglicht.
- 👥 Kubernetes ist Teil der Cloud Native Foundation und hat eine große Community, die an der Weiterentwicklung mitgewirkt hat.
- 🔧 Es ist modular aufgebaut und bietet viele Schnittstellen für die Integration von Fremdprodukten, um zusätzliche Funktionalitäten bereitzustellen.
- 🌐 Kubernetes unterstützt die Verwendung von Microservices, bietet jedoch keine spezifischen Vorgaben für deren Entwicklung, sondern ist eine allgemeine Plattform.
- 🔒 Die Sicherheit von Anwendungen, die auf Kubernetes laufen, hängt von der Konfiguration und den zusätzlichen Produkten ab, die eingesetzt werden.
- 💾 Es bietet das Container Storage Interface (CSI) für die Verwaltung von persistenten Datenspeichern für Container.
- 🌐 Das Container Network Interface (CNI) ermöglicht es jedem Pod, eine eigene IP-Adresse zu haben und sich unabhängig vom Standort mit anderen Pods zu verbinden.
- 🔄 Kubernetes kann hochverfügbar eingerichtet werden, indem es auf mehreren Knoten in einem Rechenzentrum läuft, und unterstützt die Verwendung mehrerer Rechenzentren durch die Federation.
- 🛠️ Die Verwendung von Kubernetes fördert die Infrastruktur-as-Code-Bewegung, da die Konfiguration des Clusters in YAML-Dateien deklarativ definiert wird.
- 🔄 Es ermöglicht die Automatisierung von Workflows, einschließlich des Rollouts neuer Features und des Testens in isolierten Namespaces.
Q & A
Was ist Kubernetes und was wurde es entwickelt?
-Kubernetes ist ein Open-Source-Projekt, das von einigen Google-Entwicklern initiiert wurde und das das interne System Borg von Google nachempfunden hat, diesmal aber für die Öffentlichkeit.
Welche Rolle spielt Kubernetes in Bezug auf die Verwaltung von Software-Containern?
-Kubernetes agiert als Orchestrator, der mehrere Knoten kontrolliert und dafür sorgt, dass die Software auf den Knoten läuft, egal ob es sich um Hardware- oder Virtual Machines handelt.
Welche ist die zentrale Komponente von Kubernetes?
-Die zentrale Komponente von Kubernetes ist die API, die gut designed ist und die Kommunikation mit anderen Komponenten wie der Datenbank und dem Scheduler steuert.
Was ist der Unterschied zwischen einem Pod und einem Container in Kubernetes?
-Ein Pod ist eine Gruppe von Containern, die auf einem Knoten zusammenlaufen und zusammengehörig sind. Ein Container ist eine isolierte Laufzeitumgebung für eine Anwendung.
Was ist das Container Runtime Interface (CRI) in Kubernetes?
-Das CRI ist eine Schnittstelle, die es Kubernetes ermöglicht, mit verschiedenen Container-Runtimes wie Docker oder anderen zu arbeiten, unabhängig davon, wie ein Knoten aussieht.
Wie sorgt Kubernetes für Netzwerkkommunikation zwischen Pods?
-Kubernetes verwendet das Container Network Interface (CNI), um jedem Pod eine eigene IP-Adresse zuzuweisen und die Kommunikation zwischen verschiedenen Pods zu ermöglichen.
Was sind die sogenannten 'Network Policies' in Kubernetes?
-Network Policies sind eine Funktion von Kubernetes, die es ermöglicht, Firewall-Regeln zu definieren, die steuern, welche Pods auf welche anderen Pods zugreifen dürfen.
Wie wird Load Balancing in Kubernetes realisiert?
-Load Balancing wird in Kubernetes durch sogenannte Services realisiert, die eine virtuelle IP-Adresse zuweisen und den Zugriff auf die Anwendungen im Cluster load-balancen.
Was ist das 'Container Storage Interface' (CSI) in Kubernetes?
-Das CSI ist eine Schnittstelle, die definiert, wie Kubernetes mit verschiedenen Speicherlösungen interagieren kann, um Dateien für Anwendungen persistent zu speichern.
Welche Vorteile bringt Kubernetes in Bezug auf die Verwaltung und Skalierung von Anwendungen?
-Kubernetes ermöglicht eine zentrale Verwaltung von Anwendungen, die automatische Skalierung, die Verteilung auf verschiedene Knoten, die automatische Wiederherstellung bei Ausfällen und die Verwendung von verschiedenen Schnittstellen für Speicher, Netzwerk und Authentifizierung.
Was sind die sogenannten 'Namespaces' in Kubernetes und was sind ihre Funktion?
-Namespaces sind eine logische Trennung von Ressourcen innerhalb von Kubernetes. Sie ermöglichen es, verschiedene Teams oder Projekte voneinander zu isolieren und zu verwalten.
Wie kann man Kubernetes nutzen, um die Infrastruktur mit Code zu beschreiben?
-Kubernetes unterstützt die Infrastruktur-as-Code-Bewegung, indem es die Möglichkeit bietet, die Konfiguration des Clusters in YAML oder JSON-Dateien zu definieren, die dann automatisch von Kubernetes verarbeitet werden.
Outlines
😀 Einführung in Kubernetes
Tobias von der predic8 aus Bonn stellt das Open-Source-Projekt Kubernetes vor, das ursprünglich von Google-Entwicklern initiiert wurde und als Nachfolger des internen Systems Borg entwickelt wurde. Er erklärt, dass Kubernetes kein Mittel gegen Corona ist, sondern einen Orchestrator darstellt, der Software-Container verwaltet. Tobias kündigt an, dass er in Teil 1 einen Überblick über Kubernetes geben und in Teil 2 die praktische Umsetzung in Code zeigen wird. Er betont die Größe und die Vielfalt der Kubernetes-Community und deren Beiträge zum Projekt.
🤔 Funktionsweise von Kubernetes als Orchestrator
Der Orchestrator in Kubernetes sucht nach einem geeigneten Knotenpunkt, um die Software zu starten, egal ob es sich um Hardware oder virtuelle Maschinen handelt. Er kümmert sich um die automatische Migration der Software, falls ein Knoten ausfällt, und stellt sicher, dass die Anweisungen des Benutzers, wie z.B. 'die Software soll einmal im Cluster laufen', immer erfüllt bleiben. Tobias erklärt, wie die Orchestrierung die Arbeitsbelastung für Unternehmen reduziert und wie sie die Software-Verfügbarkeit gewährleistet, selbst wenn Knoten ausfallen.
🛠️ Architektur und Komponenten von Kubernetes
Kubernetes besteht aus mehreren zentralen Komponenten, darunter einer gut gestalteten API, die die Kernkomponente ist. Tobias erklärt die Rolle von Deployments, ReplicaSets, Pods, den Scheduler und den Controller Manager. Er beschreibt, wie diese Komponenten zusammenarbeiten, um die Software im Cluster zu verwalten und sicherzustellen, dass sie bei Ausfällen neu gestartet wird. Zudem werden Schnittstellen wie das Container Runtime Interface (CRI) und das Container Network Interface (CNI) erläutert, die für die Interaktion mit anderen Systemen und die Bereitstellung einer eigenen IP-Adresse für jeden Pod sorgen.
🔒 Netzwerk- und Speicherkonzepte in Kubernetes
Tobias erläutert die Netzwerk- und Speicherkonzepte in Kubernetes, einschließlich der Verwendung von Network Policies für die Firewall-Steuerung und LoadBalancern für die Optimierung der Kommunikation zwischen Pods. Er beschreibt das Sky DNS-Addon, das die Kommunikation mit Services erleichtert, und das Container Storage Interface (CSI), das die Speicherung von Daten ermöglicht, unabhängig davon, ob ein Knoten ausfällt. Zudem wird auf die Hochverfügbarkeits-Möglichkeiten von Kubernetes eingegangen, die durch die Verwendung mehrerer Knoten und das Setup von etcd erreicht werden können.
🤷♂️ Hinterfragen der angeblichen Vorteile von Kubernetes
Tobias hinterfragt die oft behaupteten Vorteile von Kubernetes, wie Zuverlässigkeit, Skalierbarkeit, einfache Entwicklung, Microservices und Kostenersparnis. Er stellt fest, dass viele dieser Vorteile nicht direkt durch Kubernetes erreicht werden, sondern dass sie von der Art der Software und ihrer Implementierung abhängen. Er betont, dass Kubernetes nicht als allumfassende Lösung für alle Probleme angesehen werden sollte, sondern als ein Werkzeug, das bestimmte Herausforderungen im Bereich der Containerverwaltung lösen kann.
🌐 Warum Kubernetes so beliebt ist
Schließlich erklärt Tobias, warum Kubernetes weltweit so beliebt ist: Es bietet eine funktionierende Open-Source-Plattform mit einer aktiven Community und einer großen Anzahl von Unternehmen, die sich um die Entwicklung und den Betrieb kümmern. Kubernetes ermöglicht es, Software unabhängig von der verwendeten Infrastruktur zu betreiben und bietet modulare Erweiterungen durch Schnittstellen und Plugins. Tobias betont die Flexibilität und die Möglichkeit zur Automatisierung von Kubernetes, die es zu einer bevorzugten Wahl für viele Entwickler macht.
Mindmap
Keywords
💡Kubernetes
💡Orchestrator
💡Cloud Native Foundation
💡Deployment
💡Pod
💡Scheduler
💡Controller Manager
💡Persistent Volume
💡Container Runtime Interface (CRI)
💡Container Network Interface (CNI)
Highlights
Tobias von der predic8 aus Bonn präsentiert Kubernetes, ein Open-Source-Projekt, das von Google-Entwicklern initiiert wurde.
Kubernetes dient als Orchestrator, ähnlich wie das interne Google-System Borg, und wird heute von der Cloud Native Foundation verwaltet.
Kubernetes hat eine riesige Community, mit 2500 bisherigen Beitragenden und 1,5 Millionen Sourcecode-Zeilen.
Ein Orchestrator ist ein Softwaresystem, das mehrere Knoten steuert und Software automatisch an passenden Knoten startet.
Kubernetes kann Software automatisch migrieren, falls ein Knoten ausfällt oder ein Sicherheitsupdate erforderlich ist.
Kubernetes unterstützt die gleichzeitige Ausführung von Software an mehreren Knoten, um Redundanz und Verfügbarkeit zu gewährleisten.
Kubernetes besteht aus mehreren Komponenten, zentral ist die API, die gut designed ist und die Kernkomponenten steuert.
Der Controller Manager beobachtet Deployments und stellt sicher, dass die Software immer an dem richtigen Knoten läuft.
Der Scheduler ist für die Zuweisung von Pods zu Knoten verantwortlich, basierend auf Ressourcenverfügbarkeit.
Kubernetes hat Schnittstellen wie das Container Runtime Interface (CRI), das unabhängig von der verwendeten Container-Engine ist.
Das Container Network Interface (CNI) gewährleistet, dass jeder Pod eine eigene IP-Adresse erhält und mit anderen Pods kommunizieren kann.
Kubernetes ermöglicht es, durch die Verwendung von Services und LoadBalancern die Kommunikation zwischen Pods zu optimieren.
Das Kubernetes-Ökosystem hat zu 141 Partnerfirmen geführt, die mit Kubernetes interagieren und zusätzliche Produkte anbieten.
Kubernetes kann hochverfügbar installiert werden, mit mehreren Knoten und einem Cluster, der als Datenbank fungiert.
Kubernetes bietet Flexibilität, indem es die Möglichkeit bietet, in verschiedenen Rechenzentren und mit einem Federation-Setup zu arbeiten.
Kubernetes wird von vielen Unternehmen verwendet, da es zuverlässig ist, skalierbar und unterstützt die Plattformunabhängigkeit.
Kubernetes ist modular aufgebaut und bietet viele Schnittstellen für die Erweiterung mit Fremdprodukten.
Kubernetes unterstützt die Infrastruktur-as-Code-Bewegung, indem es die Möglichkeit bietet, Konfigurationen in Dateien zu deklarieren.
Kubernetes hat sich auf die Lösung von Problemen konzentriert, die Entwickler tatsächlich lösen wollen, und bietet dazu eine solide Grundlage.
Das Video bietet einen Überblick über Kubernetes und seine Funktionsweise, sowie seine Vor- und Nachteile.
Transcripts
Ja Hallo. Mein Name ist Tobias und ich komme von der predic8 aus Bonn.
Heute schauen wir uns Kubernetes an. Was ist das? Was bringt einem das? Hilft Kubernetes
gegen Corona? Nein, das ist natürlich Quatsch!
Aber ich habe hier noch ein paar weitere Pseudo-Vorteile bei denen einem
Kubernetes nicht weiterhilft und ich freue mich schon, am Ende die mit euch
durchzugehen. Das hier ist Teil 1, wo wir uns
einfach mal einen groben Überblick über Kubernetes verschaffen und alles was ich
hier sage zeige ich dann im Teil 2 wirklich in der Praxis im Code und wir
schauen uns an, wie man die ganzen features realisieren kann.
Vielleicht sind ein paar viele features für ein Video - da müssen wir dann halt
mal schauen wie viele reinpacken können.
Ja, was ist eigentlich genau Kubernetes? Kubernetes ist ein Open-Source-Projekt
was von ein paar Google Entwicklern initiiert wurde und wo die das Google
interne System Borg nach entwickelt haben aber diesmal eben in der Öffentlichkeit. Wie Borg auch ist überdies ein sogenannter
Orchestrator. Was das genau ist schauen wir uns gleich an.
heute gehört Kubernetes als projekt zur Cloud Native Foundation und das heißt nicht nur
google hat zu sagen wo die reise hingeht sondern eben alle teilnehmer mitglieder
von der Cloud Native Foundation was eine ganze reihe firmen sind übernimmt das
hat heute 2500 leute die sourcecode beigesteuert haben bisher das eine ganze
menge und insgesamt 1,5 millionen source code zeilen und das macht es ziemlich
schwierig genau auf den punkt zu bringen was geht es eigentlich ist das ist
natürlich eine riesige community die sich da entwickelt hat und das macht es
natürlich auch so spannend und deswegen vertrauen auch so viele leute in dieses
projekt ein orchester ist ein software system was mehrere knoten kontrolliert
ich als anwender sagte marquez trader software soll einmal im gesamten cluster
laufen völlig egal wo und der orchester sucht sich dann einen von den knoten aus
und startet software drauf ob diese knoten jetzt hardware sind oder
virtuelle maschinen sind ob darauf dakar installiert ist es erstmal völlig egal
der orchestrator schaut sich die knoten anschaut wo es noch platz wo es zum
beispiel speicher frei und startet dann software a da drauf wenn jetzt knoten 1
ausfällt zum beispiel dann entdeckt er orchestra das und wird woanders noch mal
neu starten zb auf knoten zwei weil hier eben noch speicher frei ist
das heißt der Orchestrator hat dafür gesorgt dass meine anweisung an ihn das
einmal im cluster laufen soll immer noch erfüllt ist das muss man sich erst mal
auf der zunge zergehen lassen dass der Orchestrator automatisch migriert hat ich
kenne heute noch viele firmen die zwei rechenzentren haben davon ist 1 aktiv
und wenn das ausfällt dann rufen sie manuell das zweite an und sagen dem ihr
fahrt mal hoch diese aufgabe hat genau der orchestra übernommen und das ist
natürlich ein wahnsinniges ding der riesen vorteil ist wenn man diese
migration das starten von software im code gegossen hat dass der orchestra das
dann automatisch tatsächlich durchführen kann
zum beispiel wenn ein sicherheitsupdate für den knoten 1 kommt und er neu
gestartet werden muss kann man eben vorher wegziehen oder auch ebenfalls ein
hardware defekt aufgetreten ist kann sich auch der Orchestrator darum kümmern
das ist ein riesenvorteil der wahnsinnig viel arbeit abnimmt
jetzt ist natürlich während diese migration stattfindet software für einen
ganz kurzen moment nicht verfügbar wenn man das nicht will dann hätte man
dem orchester ja zum beispiel sagen können startet doch software nicht nur
einmal sondern mehrfach auf verschiedenen knoten und man vertraut
darauf dass nicht alle knoten gleichzeitig ausfallen
dieses muss dann aber die software ab können
der entwickler der es ja üblicherweise gewohnt ist dass seine ko zeile nur an
einer stelle an einem ort läuft muss jetzt plötzlich darauf
trainiert werden dass das an mehreren orten läuft und wenn man das wirklich
macht dann kann man natürlich den vorteil den pseudo vorteil der einfachen
entwicklung gleich mal zum fenster rauswerfen
zum glück ist das in der praxis nicht ganz so schlimm bei ganz vielen code
zeilen kann man sagen ja wenn die für eine sekunde nicht verfügbar sind
und dann ist das egal und an den stellen wo man halt tatsächlich die
verfügbarkeit braucht da muss man sich dann was einfallen lassen
schauen wir uns doch mal Kubernetes als Orchestrator an. Kubernetes besteht aus
mehreren komponenten die ich hier mal an gezeichnet habe und ganz zentral aus
einem API das ist relativ gut designed: Wir haben eine datenbank etc in dem fall
und darum herum um das um das storage der daten herum hat Kubernetes sein API
gestrickt das ist sehr schönes design in dieses schreibe ich jetzt rein software
soll einmal laufen das kann man technisch zum beispiel so machen ich
habe ein deployment so heißt das in Kubernetes dass also die software so und
so häufig laufen soll. Das heißt "demo". Das sagt die software
soll einmal laufen und zwar software a das ist eine YAML datei das kann man
auch in JSON ausdrücken allerdings machten es die wenigsten leute diese
information diese datei lade ich ans API hoch und wenn ich ihn berechtigt bin
dazu dann speichert übernehmers hat das einfach in der datenbank ab
als nächstes gehe ich jetzt ganz kurz auf die anderen komponenten ein den
namen oder die funktionsweise müsst ihr euch aber fürs weitere video eigentlich
überhaupt nicht merken nur für die interessierten von euch der controller
manager beobachtet die deployments sieht oder ist ein neues deployment macht
daraus ein replicas at schreibt das wieder in die datenbank beobachtet
gleichzeitig die replicasets und macht dann daraus ein
und schreibt den wieder in die datenbank im pod ist eine gruppe von containern
die auf einem knoten zusammenlaufen die also zusammengehörig sind dieser pod
wird vom scheduler gefunden das heißt das sind eigentlich alles
endlosschleifen die einfach nur beobachten was ist in der datenbank und
dann darauf reagieren der scheduler beobachtet jetzt
gleichzeitig die ressourcen auslastung von den knoten sie darauf knoten 1 ist
noch platz also schreibt er in die datenbank "pod soll auf knoten eins
gescheduled werden". Dann kommt das komplett auf knoten 1 entdeckt oder ist ein neuer
pod für mein knoten und weißt dann den lokalen knoten an, doch diese software A
tatsächlich auf ihm zu starten. Wenn knoten 1 ausfällt, dann entdeckt
natürlich der controller manager, dass dieser pod nicht mehr verfügbar ist - also
dass das kubelet sich nicht zurückgemeldet hat in einer gewissen
zeit und reagiert dann darauf indem es einen neuen pod anlegt der dann neu
gescannt wird und zb eben auf knoten 2 gestartet wird
jetzt ist das design von kubernetes sehr clever gemacht denn kubernetes hat sich
bei ganz vielen themen auf die Probleme konzentriert, die die Entwickler
tatsächlich lösen konnten und lösen wollten. Da, wo Kubernetes mit Umsystemen
kommunizieren, muss haben die entwickler schnittstellen geschaffen, so dass sich
andere firmen oder andere projekte dann darum kümmern konnten, was dahinter
passiert. Und es gibt eine ganze reihe von schnittstellen wo ich eigentlich nur
auf drei stück in diesem video eingehen will.
die erste schnittstelle da sagt kubernetes ist "eigentlich ist uns egal wie so
ein knoten genau aussieht". Das ist das sogenannte "container runtime interface"
oder CRI. Da ist es nämlich so dass in der regel
Kubernetes ist immer im zusammenspiel mit Docker betrieben wird
das heißt normalerweise sind das linux maschinen
auf den Docker installiert ist ob das jetzt virtuelle maschinen sind oder ob
das hardware ist es mal völlig egal wenn ihr euch zu Docker interessiert kann ich
euch diese videos empfehlen ich habe einmal grob beschrieben was da ist und
dann hab ich meine cloud nummer eins gemacht wo ich mal wirklich in der
praxis zeige wie man mit locker umgehen kann
aber Kubernetes verwendet ja Docker das heißt also der anwender sieht davon
relativ wenig also der entwickler hier anstelle von docker können hier aber
auch andere systeme sitzen ich kenne zum beispiel in cloud provider
da kann man dessen container engine anbinden und hat dann plötzlich fast
unendlich viele knoten zur verfügung auf denen man seine container scannen kann
diese schnittstellen von Kubernetes haben zu einem wahnsinnig gut
funktionierenden ökosystemen geführt es gibt insgesamt 141 partnerstand heute
von Kubernetes das sind also partnerfirmen die mit Kubernetes
interagieren und dazu zusatzprodukte zum beispiel ganz häufig anbieten und
insgesamt setzten - google weiß schließlich alles ungefähr 10.000 firmen
auf der welt - Kubernetes ein. Die zweite großen schnittstelle über die
ich kurz was sagen will ist das sogenannte Container Network Interface
oder CNI das sorgt dafür, dass jeder Pod der auf Kubernetes läuft, eine eigene
ip-adresse bekommt und dass mehrere pods, die auf Kubernetes laufen, miteinander
kommunizieren können - völlig egal, ob die auf demselben Knoten laufen oder ob die
auf verschiedenen Knoten laufen. Natürlich muss man bei der ip-adressen-
vergabe sich mit den netzwerk technikern außerhalb absprechen wie das netzwerk
draußen aussieht und natürlich ist eine menge arbeit zu tun und Kubernetes sagt
eben ja dieser arbeit sollen andere produkte machen aber damit will ich
nichts zu tun haben Kubernetes sag lediglich: Jeder pod kriegt eine
ip-adresse und die können miteinander reden. Beziehungsweise eben auch nicht,
denn man kann firewalls aufgeblähtes einrichten das sind die sogenannten
Network Policies. das ist ein wahnsinnig ein
mächtiges konzept. Und da kann man eben zum beispiel beschreiben, wenn man
mehrerePods hat von verschiedenen typen zum beispiel eine software b hier
laufen lässt dann kann man sagen darf zb auch b zugreifen aber b nicht auf wenn
man jetzt das mit mehreren pods hier realisieren will da kann man sich
überlegen dass da eine menge firewall regeln rausfallen der riesenvorteil in
Kubernetes ist dass man die nur ganz einfach ausdrücken muss man könnte zum
beispiel sagen darf auf b zugreifen aber b nicht auf das sind zwei regeln die man
formulieren muss und Kubernetessetzt das dann in den zig Regeln, um welcher
pod jetzt auf welchen genau zugreifen kann. natürlich auf welchem port und so.
weiter das ist ein wahnsinnig mächtiges konzept damals damit kann man nämlich
seine dmz die demilitarized zone auf Kubernetes verlagern und dadurch dass man ja
noch dass das alles software ist kann man ja beliebig viele zonen plötzlich
erzeugen. Etwas was man sage ich mal mit hardware
bisher sehr teuer bezahlen musste des weiteren ist es so dass Kubernetes
die kommunikation zwischen den Pod optimieren kann indem man loadbalancer
einzieht. das sind so genannte services und das heißt, man könnte, wenn software a auf b
zugreifen will der software beibringen dass sie mit dem service kommuniziert
das ist im prinzip eine virtuelle ip adresse und Kubernetes wird dann diesen
zugriff auf diese virtuelle ip adresse load-balancen auf die software de je
nachdem wie viele instanzen von gerade im cluster laufen und verfügbar sind und
dieses load balancing ist direkt in goethes eingebaut und wahnsinnig
praktisch jetzt müsste ich dafür natürlich der software diese virtuelle
ip adresse beibringen das muss man zum glück nicht denn es
gibt ein addon zug über das was sage ich mal so im umfeld der
kern software entwickelt wird das sogenannte sky dns und das sorgt dann
dafür dass sich der software einfach sagen kann mach doch ein dns lookup
mit dem namen b und die antwort daraus wird dann von diesem sky dns gegeben und
ist genau die virtuelle ip adresse von dem service und das heißt die
konfiguration hier sieht auch noch schön aus software versucht einfach mit b zu
kommunizieren und kommt genau gelobt balanced auf einem der b instanzen raus
wunderbares konzept darüber könnte man noch viel mehr sagen aber das mache ich
vielleicht mal in einem weiteren video daneben ist es noch so dass kybernetik
nur ganz grob vorgibt wie eigentlich netzwerk traffic in den cluster rhein
kommt da hat man üblicherweise ein gateway oder ein reverse proxy wenn euch
interessiert was das ist könnt ihr dieses video von thomas mal anschauen
der reverse proxy kann natürlich auch im cluster laufen als ein ganz normaler
pott und verteilt dann die aufrufe auf den verschiedenen diensten die im
cluster laufen wie dieser reverse proxy jetzt intern konfiguriert wird
er hat hubert es zwar ein paar grobe vorgaben aber wie das natürlich im
detail passiert will kybernetik auch gar nicht sagen denn das hängt ja von dem
produkt von der verwendeten software beim reverse proxy ab und deswegen ist
auch hier so dass kybernetik zwar eine schnittstelle ein konzept geschaffen hat
aber nur ganz grob vorgibt wie das eigentlich konkretisiert wird
die letzte schnittstelle zu der ich was sagen will ist das sogenannte container
storage interface oder csi das hat folgende bewandtnis dass wenn
eine software dateien ablegen will dann ist die frage wo sie das macht und
kybernetik schafft hierfür ein konzept gibt aber selber nicht genau vor wie das
realisiert ist eine variante kann natürlich sein dass man diese dateien
tatsächlich auf dem rechner auf dem knoten 1 ablegt wo diese software läuft
das hat dann aber das problem dass wenn rechner 1 oder knoten 1 ausfällt dass
dann die dateien weg sind und deswegen will man häufig die irgendwo anders
ablegen aber wo das genau der fall ist lässt kybernetik auch offen hat nur eine
idee geschaffen wie man damit umgeht das sind die sogenannten Persistent Volumes
also persistent dateiordner und da könnte man auch dazu ein ganz eigenes
video machen ein ganz entscheidender punkt bei
Kubernetes ist noch dass man es hoch verfügbar installieren kann
bei etcd installiert man es auf mehreren knoten in einem rechenzentrum
die schließen sich zusammen und bilden dann als cluster die datenbank nach
außen an. Die APIs kann man einfach mehrfach betreiben, die werden alle aktiv.
der controller manager und scheduler, die kann man auch mehrfach starten. Da wird
dann immer nur einer von aktiv die machen untereinander eine master
election. und die kubelets, die hat man ja sowieso schon mehrfach installiert damit
ist dann über nettes insgesamt ausfallsicher. jetzt denkt ihr vielleicht
"alles in einem rechenzentrum?" - Hat er nicht vorhin gesagt, dass wir ausfälle
über mehrere rechenzentren hinweg damit abbilden können? Ja, das ist richtig.
alles was ich hier gezeigt hat würde man so in einem rechenzentrum installieren
und noch mal in einem anderen installieren und dann kann man ein
separates API noch mal aufsetzen das sogenannte federation mit dem man dann
beide kontrollieren kann einheitlich und das sozusagen als eine cloud dann
betrachten kann das wäre dann aber nochmal ein separates
setup ja kommen wir zum nächsten punkt zu den angeblichen vorteilen von Kubernetes
punkt eins gewann das ist zuverlässiger also das heißt die software auf kümmern
insel lässt sich zuverlässiger betreiben als vorher
kommt drauf an solange ich diesem eine software tatsächlich nur einmal in einem
pott auf einem knoten laufen lässt dann ist natürlich wenn der knoten ausfällt
die software weg das heißt alleine bringt mir das
nichts wenn ich jetzt den replikations faktor hoch 3 und a mehrfach laufen
lassen dann ist die entwicklung schwieriger
das heißt also per se ist überhaupt nichts zuverlässiger bloß weil ich da
drunter Kubernetes nächster punkt gut designte micro services wie der code in
meinem dienstag aussieht gibt kybernetik überhaupt nicht vor flug übernehme das
ist das eine blackbox wenn ihr euch über das thema micro service schneiden
interessiert kann ich euch nur das video von thomas empfehlen aber Kubernetes
macht ihr überhaupt gar keine vorgaben nächster punkt die software ist
skalierbarer als vorher naja also schon richtig wenn man diese
ganzen knoten hat dann kann man natürlich einfach den replikations
faktor hoch und runter drehen und damit mehrere instanzen von a starten aber
dass der entscheidende punkt ist muss das eben auch ab können und das heißt
völlig alleine nur mit Kubernetes ist auch da nichts gewonnen
nächster punkt einfache entwicklung das hatten wir vorher schon gesprochen ist
auch nicht der fall nächster punkt Kubernetes ist die
allumfassende micro serviceplattform das stimmt überhaupt nicht wir haben zwar
gesehen dass Kubernetes aspekte von der microserver micro service kommunikation
uns abnimmt wie zum beispiel firewalls oder load balancing aber ganz viele
andere themen wie zb verschlüsselung hat es überhaupt nicht drauf das heißt auch
der es raus nächster punkt billiger betrieb naja moment mal bei so viel
komponenten da brauche ich ja auch entsprechend leute die sich darum
kümmern das heißt per se kann man nicht sagen dass bloß weil ich was auf
überlaufen habe dass es dadurch billiger im betrieb wird
und letzter punkt sicherer na ja da muss man erst mal sagen wenn man das reine
kern kybernetik installiert und so aufsetzt dann kann ein normaler mensch
der hier zugreifen kann ein container skate holen der hier ruht
ist auf dem knoten das heißt das kann man auch nicht
behaupten das per se sicherer ist es gibt zwar
viele produkte die man sich dazu kaufen kann die sich dann darum kümmern und das
versuchen zu vermeiden oder auch verhindern aber per se kann man nicht
sagen dass es sicherer ist und natürlich ob die software a sicher ist oder nicht
da macht mir kybernetik auch überhaupt gar keine vorschriften dazu das heißt
also auch der punkt kann man wegwerfen warum setzt also dann die halbe welt
gefühlt kybernetischen irgendwo muss ja ein vorteil sein
und das ist ganz klar da Kubernetes hat eine ist ein funktionierendes open
source produkt mit einer wahnsinnigen community und wahnsinnig viel firmen die
sich darum herum gegliedert haben Kubernetes kann man jetzt als plattform
betrachten auf der man seine software laufen lassen kann und zwar völlig egal
und das sind ganz entscheidender punkt ob ich jetzt zu abs zu gc eg oder ob ich
das ganze auf meine eigenen hardware im eigenen rechenzentrum oder auch im
eigenen keller betreiben würde Kubernetes verhindert damit den wendler
login dh dass ich von einem hersteller
abhängig bin natürlich muss ich diese ganzen fragen hinter den schnittstellen
beantworten also wie mache ich networking wie mach ich storage und so
weiter aber als plattform wenn ich als meine software die ich darauf entwickeln
meint wenn ich meinen entwicklern sagt das was ihr hier zur verfügung habt das
ist ein reines Kubernetes dann kann ich diese software eben von einem Kubernetes
cluster ganz einfach auf einen anderen migrieren und habe relativ wenig
schmerzen ja wir haben gesehen Kubernetes ist im
prinzip eine datenbank mit einem da drumherum ist ein orchester mit dem ich
software sozusagen auf noten verteilen kann
darüber hinaus ist Kubernetes wahnsinnig modular aufgebaut und hat ganz viele
plugins schnittstellen wo ich mit fremdprodukten Kubernetes noch erweitern
kann der riesenvorteil von Kubernetes ist das
ist sozusagen weiß dass es mitten im stack sitzt dass es
sozusagen oberhalb von der container engine wie locker sitzt
aber dass es auch nach außen hin zur verfügung stellt was durch andere
programme wieder verwendet werden kann da sei mal nur istio genannt. darüber
habe ich ein video gemacht. aber natürlich auch so was wie spilo kommt
vielleicht noch mal ein video könnt ihr den kanal abonnieren verwendet das
Kubernetes API um sozusagen noch mehr Funktionalität darauf anzubieten. In dem
API handelt ja Kubernetes die authentifizierung und autorisierung von
den zugreifenden ab und da kann man zum beispiel so was machen dass man sagt
naja man legt verschiedene namespace an namespace sind im prinzip so eine
logische trennung der ressourcen die in der datenbank sind man macht zum
beispiel ein namespace für team und ein namespace für team b und sagte na ja
thema darf nur auf die pods von thema aufzugreifen und da hat man dann gute
konzepte die sich die entwickler von Kubernetes ausgedacht haben wo sie ihre
erfahrung von Borg natürlich eingebracht haben
die einen auch an die allem an anderen stellen weiter helfen
gerade mit den namespaces zb wenn ich jetzt einen namespace up und meine
software da drin betreibe zum beispiel in produktion und ich hab automatisiert
wie dieser namespace aufgesetzt wird wie die deployments da reinkommen wie die
pods also im endeffekt da reinkommen und dann da laufen wenn ich das
automatisiert habe dann ist es ja ganz einfach stattdessen namespace denselben
namespace nochmal aufzusetzen aber anders zu nennen dann läuft meine
software plötzlich zweimal aber halt anders genannt was ich dann machen kann
zum beispiel ist dass ich wenn ich ein feature für meine software zusätzlich
entwickeln wer kann ich ihm geht ein brunch aufmachen und da kann ich zum
beispiel voll automatisiert aus jedem brunch ein namespace erzeugen lassen und
gleich mal die software dahin diplom und dann habe ich eine test instanz meiner
software nur mit diesem einen zusätzlichen feature kann mir das da
schon mal anschauen das ist ein wahnsinnig schönes system
dadurch das gerät ist diese ganze beschreibung
dessen was hier eigentlich die konfiguration des clusters ausmacht in
diesem level dateien hält hilft es einem wahnsinnig in richtung infrastructures
code zu gehen also eine deklaration beschreibung in dateien abzulegen was
ein wahnsinnig mächtiges konzept ist und sehr zur automatisierung und zur ja
wiederverwendbarkeit von diesen beschreibungen für Kubernetes
konzentriert sich also wirklich auf die probleme die es lösen kann und da glänzt
es wirklich wenn euch das video gefallen hat würde ich mich über ein like freuen
wenn ihr das praxis video mit bekommen wollt abonniert den kanal und ja wenn
ihr fragen habt könnt ihr natürlich in die kommentare darunter schreiben oder
er kommt einfach in eines von unseren webinaren schaut die man auf unserer
homepage da würde ich mich auch freuen euch mal kennenzulernen
bis dahin viel spaß
Посмотреть больше похожих видео
So erstellst du fotorealistische KI Bilder in Canva. Schritt für Schritt Anleitung.
Michael Wunsch - „Wie nutzen Sozialunternehmen Soziale Innovationen als Motor der Zukunft?“ (2022)
My Simple Productivity System For Insane Focus
Sample Blood Work Interpretation - where do I start?
Bei welchen KI-Aktien wir uns für 2025 jetzt positionieren!
How to CATCH UP ON SCHOOL WORK when you've fallen behind
5.0 / 5 (0 votes)