Kubernetes

Kubernetes
Автор книги: id книги: 1957195     Оценка: 0.0     Голосов: 0     Отзывы, комментарии: 0 1907,17 руб.     (18,59$) Читать книгу Купить и скачать книгу Купить бумажную книгу Электронная книга Жанр: Математика Правообладатель и/или издательство: Bookwire Дата добавления в каталог КнигаЛит: ISBN: 9783969100493 Скачать фрагмент в формате   fb2   fb2.zip Возрастное ограничение: 0+ Оглавление Отрывок из книги

Реклама. ООО «ЛитРес», ИНН: 7719571260.

Описание книги

Einfach und schnell erklärt von den Kubernetes-Mitbegründern persönlich Kubernetes vereinfacht das Bauen, Deployen und Warten skalierbarer, verteilter Systeme in der Cloud radikal. Dieser praktische Leitfaden zeigt Ihnen, wie Kubernetes und die Container-Technologie dabei helfen können, in Bezug auf Schnelligkeit, Agilität, Zuverlässigkeit und Effizienz in ganz neue Bereiche vorzudringen. Die Autoren Brendan Burns, Joe Beda und Kelsey Hightower haben bei Google und in anderen Firmen mit Kubernetes gearbeitet und erklären Ihnen, wie sich dieses System in den Lebenszyklus einer verteilten Anwendung einfügt. Sie werden lernen, wie Sie Tools und APIs einsetzen, um skalierbare, verteilte Systeme zu automatisieren – egal ob es sich um Online-Services, Systeme zum maschinellen Lernen oder ein Cluster aus Raspberry Pis handelt. – Lernen Sie die Herausforderungen verteilter Systeme kennen, die Sie mit Kubernetes angehen können. – Tauchen Sie ein in die containerisierte Anwendungsentwicklung und nutzen Sie dabei zum Beispiel Docker-Container. – Erstellen Sie Container im Docker-Image-Format mit Kubernetes und lassen Sie sie über die Docker-Runtime ausführen. – Begutachten Sie die zentralen Konzepte und API-Objekte von Kubernetes, die notwendig sind, um Anwendungen produktiv laufen zu lassen. – Rollen Sie neue Softwareversionen zuverlässig ohne Downtime oder Fehler aus. – Lernen Sie aus Beispielen zum Entwickeln und Deployen realer Anwendungen in Kubernetes. «In nur wenigen Jahren hat sich Kubernetes an die Spitze einer weitreichenden Revolution in der Anwendungsentwicklung gesetzt. Es löst seit langem bestehende Probleme in Anwendungsentwicklung und -management auf eine saubere und trotzdem sehr leistungsfähige Art und Weise. Brendan, Joe und Kelsey waren zentrale Mitspieler beim Auslösen und Vorantreiben dieser Revolution. Ihr Buch dient als Grundlage, um die Technologie Kubernetes, aber auch die dahinterstehenden Kräfte bei der Transformation zu verstehen.» Eric Brewer, Vice President, Google

Оглавление

Kelsey Hightower. Kubernetes

Kubernetes

Inhaltsverzeichnis

Vorwort. Kubernetes: Eine Widmung

Wer dieses Buch lesen sollte

Warum wir dieses Buch geschrieben haben

Warum wir dieses Buch aktualisiert haben

Ein Wort zu aktuellen Cloud-nativen Anwendungen

Was Sie in diesem Buch finden

Online-Ressourcen

Konventionen in diesem Buch

Tipp

Warnung

Der Download und Einsatz von Codebeispielen

Wie Sie uns erreichen

Danksagungen

1Einführung

1.1Schnelligkeit

1.1.1Der Wert der Immutabilität

1.1.2Deklarative Konfiguration

1.1.3Selbstheilende Systeme

1.2Ihren Service und Ihre Teams skalieren

1.2.1Entkoppeln

1.2.2Einfaches Skalieren für Anwendungen und Cluster

1.2.3Entwicklungs-Teams mit Microservices skalieren

1.2.4Konsistenz und Skalierung durch Separation of Concerns

1.3Abstrahieren Sie Ihre Infrastruktur

1.4Effizienz

1.5Zusammenfassung

2Container erstellen und ausführen

2.1Container-Images

2.1.1Das Docker-Image-Format

Container-Layering

2.2Anwendungs-Images mit Docker bauen

2.2.1Dockerfiles

2.2.2Die Image-Größe optimieren

2.2.3Sicherheit von Images

2.3Multistage Image Build

2.4Images in einer Remote-Registry ablegen

2.5Die Docker Container Runtime

2.5.1Container mit Docker ausführen

2.5.2Die kuard-Anwendung erforschen

2.5.3Den Ressourcen-Einsatz begrenzen

Speicher-Ressourcen begrenzen

CPU-Ressourcen begrenzen

2.6Aufräumen

2.7Zusammenfassung

3Ein Kubernetes-Cluster deployen

3.1Kubernetes auf einem öffentlichen Cloud-Provider installieren

3.1.1Google Kubernetes Engine

3.1.2Kubernetes mit dem Azure Kubernetes Service installieren

3.1.3Kubernetes auf den Amazon Web Services installieren

3.1.4Kubernetes mit minikube lokal installieren

Tipp

3.2Kubernetes in Docker ausführen

3.3Kubernetes auf dem Raspberry Pi ausführen

3.4Der Kubernetes-Client

3.4.1Den Cluster-Status prüfen

Tipp

Tipp

3.4.2Worker-Knoten in Kubernetes auflisten

3.5Cluster-Komponenten

3.5.1Kubernetes-Proxy

3.5.2Kubernetes-DNS

Tipp

3.5.3Kubernetes-UI

3.6Zusammenfassung

4Häufige kubectl-Befehle

4.1Namensräume

4.2Kontexte

4.3Objekte der Kubernetes-API anzeigen

4.4Kubernetes-Objekte erstellen, aktualisieren und löschen

Tipp

4.5Objekte mit einem Label und Anmerkungen versehen

4.6Debugging-Befehle

Tipp

4.7Autovervollständigen von Befehlen

4.8Alternative Möglichkeiten zur Kommunikation mit Ihrem Cluster

4.9Zusammenfassung

5Pods

Tipp

5.1Pods in Kubernetes

5.2In Pods denken

5.3Das Pod-Manifest

Tipp

5.3.1Einen Pod erstellen

5.3.2Ein Pod-Manifest schreiben

5.4Pods starten

5.4.1Pods auflisten

Tipp

5.4.2Pod-Details

5.4.3Einen Pod löschen

5.5Auf Ihren Pod zugreifen

5.5.1Port-Forwarding einsetzen

5.5.2Mehr Informationen aus Logs erhalten

Tipp

5.5.3Befehle in Ihrem Container mit exec ausführen

5.5.4Dateien von und auf Container kopieren

5.6Health-Checks

5.6.1Liveness-Probe

Tipp

5.6.2Readiness-Probe

5.6.3Arten von Health-Checks

5.7Ressourcen-Management

5.7.1Ressourcen-Anforderungen: Minimal notwendige Ressourcen

Tipp

Details zu den Request-Grenzen

Tipp

5.7.2Den Ressourcen-Einsatz durch Grenzen beschränken

5.8Daten mit Volumes persistieren

5.8.1Volumes in Pods definieren

5.8.2Volumes in Pods nutzen

Kommunikation/Synchronisation

Cache

Persistente Daten

Das Host-Dateisystem mounten

5.8.3Daten auf Remote-Speicher persistieren

5.9Fügen Sie alles zusammen

5.10Zusammenfassung

6Labels und Anmerkungen

6.1Labels

Tipp

6.1.1Labels anwenden

6.1.2Labels anpassen

Warnung

6.1.3Label-Selektoren

Tipp

6.1.4Label-Selektoren in API-Objekten

6.1.5Labels in der Architektur von Kubernetes

6.2Anmerkungen

6.2.1Anmerkungen definieren

Warnung

6.3Aufräumen

6.4Zusammenfassung

7Service-Discovery

7.1Was ist Service-Discovery?

7.2Das Service-Objekt

7.2.1Service-DNS

7.2.2Readiness-Checks

7.3Über das Cluster hinausschauen

7.4Cloud-Integration

Tipp

7.5Weitere Details

7.5.1Endpunkte

7.5.2Manuelle Service-Discovery

7.5.3kube-proxy und Cluster-IPs

Tipp

7.5.4Umgebungsvariablen zur Cluster-IP

7.6Mit anderen Umgebungen verbinden

7.7Aufräumen

7.8Zusammenfassung

8HTTP Load Balancing mit Ingress

8.1Ingress-Spec versus Ingress-Controller

8.2Contour installieren

Tipp

8.2.1DNS konfigurieren

8.2.2Eine lokale hosts-Datei konfigurieren

8.3Ingress verwenden

8.3.1Einfachste Anwendung

8.3.2Hostnamen verwenden

8.3.3Pfade verwenden

8.3.4Aufräumen

8.4Fortgeschrittenere Themen und Probleme mit Ingress

8.4.1Mehrere Ingress-Controller laufen lassen

8.4.2Mehrere Ingress-Objekte

8.4.3Ingress und Namensräume

8.4.4Path Rewriting

8.4.5TLS

8.5Alternative Ingress-Implementierungen

8.6Die Zukunft von Ingress

8.7Zusammenfassung

9ReplicaSets

Tipp

9.1Reconciliation-Schleifen

9.2Die Verbindung zwischen Pods und ReplicaSets

9.2.1Bestehende Container übernehmen

9.2.2Container in Quarantäne stecken

9.3Mit ReplicaSets designen

9.4Spezifikation eines ReplicaSets

9.4.1Pod-Templates

9.4.2Labels

Tipp

9.5Ein ReplicaSet erstellen

9.6Ein ReplicaSet untersuchen

9.6.1Ein ReplicaSet über einen Pod finden

9.6.2Eine Gruppe von Pods für ein ReplicaSet finden

9.7ReplicaSets skalieren

9.7.1Imperatives Skalieren mit kubectl scale

9.7.2Deklaratives Skalieren mit kubectl appy

9.7.3Ein ReplicaSet automatisch skalieren

Tipp

Basierend auf der CPU automatisch skalieren

Warnung

9.8ReplicaSets löschen

9.9Zusammenfassung

10Deployments

Tipp

10.1Ihr erstes Deployment

10.1.1Deployment-Interna

10.2Deployments erstellen

Tipp

10.3Deployments verwalten

10.4Deployments aktualisieren

10.4.1Ein Deployment skalieren

10.4.2Ein Container-Image aktualisieren

Warnung

10.4.3Rollout-History

Warnung

10.5Deployment-Strategien

10.5.1Recreate-Strategie

10.5.2RollingUpdate-Strategie

Mehrere Versionen Ihres Service managen

Ein rollierendes Update konfigurieren

Tipp

Tipp

10.5.3Rollouts verlangsamen, um die Service-Qualität sicherzustellen

Warnung

Tipp

10.6Ein Deployment löschen

10.7Ein Deployment überwachen

10.8Zusammenfassung

11DaemonSets

11.1Der DaemonSet-Scheduler

Tipp

11.2DaemonSets erstellen

11.3DaemonSets auf bestimmte Knoten beschränken

11.3.1Knoten mit Labels versehen

11.3.2Knoten-Selektoren

Warnung

11.4Ein DaemonSet aktualisieren

11.4.1Rollierendes Update eines DaemonSet

11.5Ein DaemonSet löschen

Warnung

11.6Zusammenfassung

12Jobs

12.1Das Job-Objekt

12.2Job-Muster

12.2.1Einmalig

Tipp

Pod-Fehler

12.2.2Parallelism

12.2.3Work-Queues

Eine Work-Queue starten

Die Queue füllen

Den Konsumenten-Job erstellen

Aufräumen

12.3CronJobs

12.4Zusammenfassung

13ConfigMaps und Secrets

13.1ConfigMaps

13.1.1ConfigMaps erstellen

13.1.2Eine ConfigMap verwenden

13.2Secrets

Warnung

13.2.1Secrets erstellen

Tipp

Warnung

13.2.2Secrets konsumieren

Secrets-Volumes

13.2.3Private Docker-Registries

13.3Namensbeschränkungen

Tipp

13.4ConfigMaps und Secrets managen

13.4.1Ausgabe

13.4.2Erstellen

13.4.3Aktualisieren

Aus einer Datei aktualisieren

Warnung

Neu erstellen und aktualisieren

Bestehende Version bearbeiten

Live-Updates

13.5Zusammenfassung

14Role-Based Access Control für Kubernetes

Tipp

14.1Role-Based Access Control

14.1.1Identität in Kubernetes

14.1.2Rollen und Role Bindings verstehen

14.1.3Rollen und Role Bindings in Kubernetes

Verben für Kubernetes-Rollen

Eingebaute Rollen verwenden

Automatischer Abgleich für eingebaute Rollen

Warnung

14.2Techniken zur Arbeit mit RBAC

14.2.1Die Autorisierung mit can-i testen

14.2.2RBAC in der Versionsverwaltung managen

14.3Fortgeschrittene Techniken

14.3.1Cluster-Rollen aggregieren

14.3.2Gruppen für Bindings verwenden

14.4Zusammenfassung

15Storage-Lösungen in Kubernetes integrieren

15.1Externe Services importieren

Tipp

15.1.1Services ohne Selektoren

Tipp

15.1.2Grenzen für externe Services: Health-Checking

15.2Zuverlässige Singletons ausführen

15.2.1Ein MySQL-Singleton ausführen

15.2.2Dynamisches Volume-Provisioning

Warnung

15.3Kubernetes-eigenes Storage mit StatefulSets

15.3.1Eigenschaften von StatefulSets

15.3.2Manuell replizierte MongoDB mit StatefulSets

Tipp

15.3.3Das MongoDB-Cluster automatisch erstellen

Tipp

15.3.4Persistente Volumes und StatefulSets

Tipp

15.3.5Zum Abschluss: Readiness-Proben

15.4Zusammenfassung

16Kubernetes erweitern

16.1Was bedeutet das Erweitern von Kubernetes?

16.2Erweiterungspunkte

16.3Patterns für Custom Resources

16.3.1Just Data

16.3.2Compiler

16.3.3Operator

16.3.4Der Einstieg

16.4Zusammenfassung

17Reale Anwendungen deployen

17.1Jupyter

17.2Parse

17.2.1Voraussetzungen

17.2.2Den Parse-Server bauen

17.2.3Den Parse-Server deployen

17.2.4Parse testen

17.3Ghost

17.3.1Ghost konfigurieren

Ghost und MySQL

17.4Redis

17.4.1Redis konfigurieren

17.4.2Einen Redis-Service erstellen

17.4.3Redis deployen

17.4.4Mit unserem Redis-Cluster experimentieren

17.5Zusammenfassung

18Organisieren Sie Ihre Anwendung

18.1Leitprinzipien

18.1.1Dateisysteme als Source of Truth

Tipp

18.1.2Die Rolle des Code Reviews

Tipp

18.1.3Feature Gates und Guards

Tipp

18.2Ihre Anwendung in der Versionsverwaltung managen

18.2.1Struktur im Dateisystem

Tipp

18.2.2Regelmäßige Versionen managen

Mit Branches und Tags versionieren

Tipp

Versionieren mit Verzeichnissen

18.3Ihre Anwendung für Entwicklung, Testen und Deployment strukturieren

18.3.1Ziele

18.3.2Verlauf eines Releases

Ein Entwicklungs-Tag einführen

Stages auf Versionen abbilden

18.4Ihre Anwendung durch Templates parametrisieren

18.4.1Mit Helm und Templates parametrisieren

18.4.2Dateisystem-Layout zur Parametrisierung

18.5Ihre Anwendung weltweit deployen

18.5.1Architekturen für ein weltweites Deployment

18.5.2Ein weltweites Deployment implementieren

18.5.3Dashboards und Monitoring für weltweite Deployments

18.6Zusammenfassung

Fußnoten. 1Einführung

3Ein Kubernetes-Cluster deployen

8HTTP Load Balancing mit Ingress

Index. A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

Y

Z

Отрывок из книги

Brendan Burns begann seine Karriere mit einem kurzen Einsatz in der Software-Branche, bevor er sich mit einem PhD in Robotik auf die Bewegungsplanung für menschenähnliche Roboterarme konzentrierte. Darauf folgte eine kurze Zeit als Informatik-Professor. Schließlich kehrte er nach Seattle zurück und kam zu Google, wo er an der Web-Suchinfrastruktur mit einem Schwerpunkt auf Low-Latency Indexing arbeitete. Dort gründete er auch zusammen mit Joe Beda und Craig McLuckie das Kubernetes-Projekt. Brendan Burns ist aktuell Director of Engineering bei Microsoft Azure.

Joe Beda begann seine Karriere bei Microsoft am Internet Explorer (er war jung und naiv). Während der sieben Jahre bei Microsoft und der zehn Jahre bei Google hat Joe Beda an GUI-Frameworks, Echtzeit-Sprache und Chat, Telefonie, maschinellem Lernen für Anzeigen und Cloud Computing gearbeitet. Vor allem aber hat er bei Google die Google Compute Engine aus der Taufe gehoben und zusammen mit Brendan Burns und Craig McLuckie Kubernetes geschaffen. Zusammen mit McLuckie gründete Beda das Start-up Heptio, das sie an VMware verkauften und bei dem er nun Principal Engineer ist. Auf Seattle als seine Heimat ist er sehr stolz.

.....

9.2.2Container in Quarantäne stecken

9.3Mit ReplicaSets designen

.....

Добавление нового отзыва

Комментарий Поле, отмеченное звёздочкой  — обязательно к заполнению

Отзывы и комментарии читателей

Нет рецензий. Будьте первым, кто напишет рецензию на книгу Kubernetes
Подняться наверх