Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Kubernetes möchte sich bei jedem Systemadministrator bedanken, der um 3 Uhr morgens aufgewacht ist, um einen Prozess neu zu starten. Jedem Entwickler, der Code in die Produktion gebracht hat, um dann festzustellen, dass er nicht so läuft wie auf seinem Laptop. Jeder Systemarchitekt, der einen Lasttest fälschlicherweise auf den Produktionsserver gelegt hat, weil er den Hostnamen nicht aktualisiert hat. Es waren die Schmerzen, die seltsamen Stunden und die seltsamen Fehler, die die Entwicklung von Kubernetes inspiriert haben. In einem einzigen Satz: Kubernetes will die Aufgabe, verteilte Systeme zu erstellen, zu verteilen und zu warten, radikal vereinfachen. Kubernetes wurde von jahrzehntelanger Praxiserfahrung beim Aufbau zuverlässiger Systeme inspiriert und von Grund auf so konzipiert, dass diese Erfahrung wenn nicht euphorisch, so doch zumindest angenehm ist. Wir wünschen dir viel Spaß mit dem Buch!
Wer sollte dieses Buch lesen?
Ganz gleich, ob du neu im Bereich verteilter Systeme bist oder schon seit Jahren Cloud-native Systeme einsetzt, mit Containern und Kubernetes kannst du ein neues Maß an Schnelligkeit, Agilität, Zuverlässigkeit und Effizienz erreichen. Dieses Buch beschreibt den Kubernetes-Cluster-Orchestrator und wie seine Werkzeuge und APIs genutzt werden können, um die Entwicklung, Bereitstellung, Sicherheit und Wartung verteilter Anwendungen zu verbessern. Obwohl keine Vorkenntnisse über Kubernetes vorausgesetzt werden, solltest du mit der Entwicklung und Bereitstellung von serverbasierten Anwendungen vertraut sein, um das Buch optimal nutzen zu können. Vertrautheit mit Konzepten wie Load Balancern und Netzwerkspeicherung ist hilfreich, aber nicht zwingend erforderlich. Auch Erfahrungen mit Linux, Linux-Containern und Docker sind zwar nicht unbedingt erforderlich, helfen dir aber, das Buch optimal zu nutzen.
Warum wir dieses Buch geschrieben haben
Wir haben uns seit den Anfängen mit Kubernetes beschäftigt. Es war wirklich bemerkenswert zu beobachten, wie sich Kubernetes von einer Kuriosität, die hauptsächlich für Experimente genutzt wurde, zu einer wichtigen produktionsfähigen Infrastruktur entwickelt hat, die groß angelegte Produktionsanwendungen in verschiedenen Bereichen, vom maschinellen Lernen bis hin zu Online-Diensten, ermöglicht. Im Zuge dieses Wandels wurde es immer klarer, dass ein Buch, das sowohl die Nutzung der Kernkonzepte von Kubernetes als auch die Beweggründe für die Entwicklung dieser Konzepte beschreibt, einen wichtigen Beitrag zum Stand der Entwicklung von Cloud-nativen Anwendungen leisten würde. Wir hoffen, dass du bei der Lektüre dieses Buches nicht nur lernst, wie du zuverlässige, skalierbare Anwendungen auf Kubernetes aufbaust, sondern auch einen Einblick in die zentralen Herausforderungen verteilter Systeme erhältst, die zu seiner Entwicklung führten.
Warum wir dieses Buch aktualisiert haben
Das Kubernetes-Ökosystem ist seit der ersten und zweiten Auflage dieses Buches weiter gewachsen und hat sich weiterentwickelt. Es gab viele Kubernetes-Veröffentlichungen, und viele weitere Tools und Muster für die Nutzung von Kubernetes sind zu De-facto-Standards geworden. In der dritten Auflage haben wir uns darauf konzentriert, Themen hinzuzufügen, die im Kubernetes-Ökosystem an Interesse gewonnen haben, wie z. B. Sicherheit, Zugriff auf Kubernetes von Programmiersprachen aus sowie Multicluster-Anwendungen. Außerdem haben wir alle bestehenden Kapitel aktualisiert, um die Änderungen und Entwicklungen von Kubernetes seit der ersten und zweiten Auflage zu berücksichtigen. Wir gehen davon aus, dass wir dieses Buch in ein paar Jahren erneut überarbeiten werden (und freuen uns darauf), wenn sich Kubernetes weiter weiterentwickelt.
Ein Wort zu Cloud Native Applications heute
Von den ersten Programmiersprachen über die objektorientierte Programmierung bis hin zur Entwicklung der Virtualisierung und der Cloud-Infrastruktur - die Geschichte der Informatik ist eine Geschichte der Entwicklung von Abstraktionen, die die Komplexität verbergen und es dir ermöglichen, immer anspruchsvollere Anwendungen zu entwickeln. Trotzdem ist die Entwicklung zuverlässiger, skalierbarer Anwendungen immer noch deutlich schwieriger, als sie sein sollte. In den letzten Jahren haben sich Container und Container-Orchestrierungs-APIs wie Kubernetes als eine wichtige Abstraktion erwiesen, die die Entwicklung zuverlässiger, skalierbarer verteilter Systeme radikal vereinfacht. Mit Containern und Orchestratoren können Entwickler/innen Anwendungen mit einer Geschwindigkeit, Agilität und Zuverlässigkeit entwickeln und bereitstellen, die noch vor wenigen Jahren wie Science Fiction erschienen wäre.
Navigieren in diesem Buch
Dieses Buch ist wie folgt aufgebaut. Kapitel 1 umreißt die allgemeinen Vorteile von Kubernetes, ohne zu sehr ins Detail zu gehen. Wenn du Kubernetes noch nicht kennst, ist dies ein guter Startpunkt, um zu verstehen, warum du den Rest des Buches lesen solltest.
Kapitel 2 bietet eine detaillierte Einführung in Container und die Entwicklung von Containeranwendungen. Wenn du dich noch nie mit Docker beschäftigt hast, ist dieses Kapitel eine nützliche Einführung. Wenn du bereits ein Docker-Experte bist, wird es wahrscheinlich hauptsächlich eine Wiederholung sein.
In Kapitel 3 geht es darum, wie du Kubernetes einsetzt. Obwohl sich der Großteil dieses Buches auf die Nutzung von Kubernetes konzentriert, musst du einen Cluster einrichten, bevor du ihn nutzen kannst. Obwohl der Betrieb eines Clusters für die Produktion außerhalb des Rahmens dieses Buches liegt, werden in diesem Kapitel einige einfache Möglichkeiten vorgestellt, wie du einen Cluster erstellen kannst, damit du verstehst, wie du Kubernetes nutzen kannst. Kapitel 4 behandelt eine Auswahl gängiger Befehle für die Interaktion mit einem Kubernetes-Cluster.
Beginnend mit Kapitel 5 tauchen wir in die Details der Bereitstellung einer Anwendung mit Kubernetes ein. Wir behandeln Pods(Kapitel 5), Labels und Annotationen(Kapitel 6), Dienste(Kapitel 7), Ingress(Kapitel 8) und ReplicaSets(Kapitel 9). Dies sind die wichtigsten Grundlagen, die du brauchst, um deinen Dienst in Kubernetes bereitzustellen. Dann geht es um die Bereitstellung(Kapitel 10), die den Lebenszyklus einer kompletten Anwendung zusammenfasst.
Nach diesen Kapiteln behandeln wir einige speziellere Objekte in Kubernetes: DaemonSets(Kapitel 11), Aufträge(Kapitel 12) sowie ConfigMaps und Secrets(Kapitel 13). Diese Kapitel sind zwar für viele Produktionsanwendungen unerlässlich, aber wenn du Kubernetes gerade erst kennenlernst, kannst du sie überspringen und später, wenn du mehr Erfahrung und Fachwissen gesammelt hast, darauf zurückkommen.
Als Nächstes stellen wir die rollenbasierte Zugriffskontrolle vor(Kapitel 14) und behandeln Service-Meshes(Kapitel 15) und die Integration von Speicherung(Kapitel 16) in Kubernetes. Wir besprechen die Erweiterung von Kubernetes(Kapitel 17) und den Zugriff auf Kubernetes von Programmiersprachen aus(Kapitel 18). Anschließend konzentrieren wir uns auf die Sicherung von Pods(Kapitel 19) und die Kubernetes-Politik und -Governance(Kapitel 20).
Zum Schluss folgen einige Beispiele für die Entwicklung und den Einsatz von Multicluster-Anwendungen(Kapitel 21) und eine Diskussion darüber, wie du deine Anwendungen in der Versionskontrolle organisieren kannst(Kapitel 22).
Online-Ressourcen
Du wirst Docker installieren wollen. Wahrscheinlich möchtest du dich auch mit der Docker-Dokumentation vertraut machen, falls du das noch nicht getan hast.
Außerdem solltest du das Kommandozeilen-Toolkubectl
installieren. Vielleicht möchtest du auch dem Kubernetes Slack-Kanal beitreten, wo du eine große Gemeinschaft von Nutzern findest, die zu fast jeder Tageszeit bereit sind, sich auszutauschen und Fragen zu beantworten.
Wenn du fortgeschrittener bist, solltest du dich mit dem Open-Source-Repository von Kubernetes auf GitHub beschäftigen.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.
Constant width
-
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.
Constant width bold
-
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
Constant width italic
-
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Hinweis
Dieses Symbol steht für einen Tipp, eine Anregung oder einen allgemeinen Hinweis.
Warnung
Dieses Symbol weist auf eine Warnung oder Vorsicht hin.
Code-Beispiele verwenden
Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter https://github.com/kubernetes-up-and-running/examples zum Download bereit .
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Wenn du eine CD-ROM mit Beispielen aus den O'Reilly-Büchern verkaufst oder verteilst, ist eine Genehmigung erforderlich. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Erlaubnis erforderlich.
Wir schätzen die Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Kubernetes: Up and Running, 3. Auflage, von Brendan Burns, Joe Beda, Kelsey Hightower, und Lachlan Evenson (O'Reilly). Copyright 2019 Brendan Burns, Joe Beda, Kelsey Hightower, and Lachlan Evenson, 978-1-098-11020-8."
Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
O'Reilly Online Learning
Hinweis
Seit fast 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel, Konferenzen und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen findest du unter http://oreilly.com.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/kubernetesUR3 aufrufen .
Schreib eine E-Mail an bookquestions@oreilly.com, um Kommentare oder technische Fragen zu diesem Buch zu stellen.
Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.
Du findest uns auf LinkedIn: https://linkedin.com/company/oreilly-media.
Folge uns auf Twitter: http://twitter.com/oreillymedia.
Sieh uns auf YouTube: http://www.youtube.com/oreillymedia.
Danksagungen
Wir möchten uns bei allen bedanken, die uns bei der Entwicklung dieses Buches geholfen haben. Dazu gehören unsere Redakteurinnen Virginia Wilson und Sarah Grey und alle großartigen Mitarbeiter von O'Reilly sowie die technischen Prüfer, die uns mit ihrem Feedback das Buch erheblich verbessert haben. Schließlich möchten wir uns bei allen Lesern der ersten und zweiten Auflage bedanken, die sich die Zeit genommen haben, Fehler zu melden, die in dieser dritten Auflage gefunden und behoben wurden. Vielen Dank euch allen! Wir sind sehr dankbar.
Get Kubernetes: Up and Running, 3. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.