Szczegóły ebooka

Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie II

Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie II

Brendan Burns, Joe Beda, Kelsey Hightower

Ebook

Kubernetes jest czymś więcej niż platformą do orkiestracji kontenerów. W ciągu zaledwie kilku lat stał się najpopularniejszym i najbogatszym narzędziem do tworzenia, wdrażania i utrzymywania aplikacji w chmurze. Tak radykalna zmiana sposobu funkcjonowania systemów informatycznych wymaga przemodelowania podejścia i stylu pracy zespołów programistycznych. Jeśli jednak wypróbujesz Kubernetesa, przekonasz się, że bardzo upraszcza on tworzenie, wdrażanie i utrzymywanie systemów rozproszonych. Jego twórcy, bazując na własnych wieloletnich doświadczeniach, zaprojektowali go od podstaw, aby zapewnić inżynierom wydajną, efektywną i przyjemną pracę.

Ta książka jest przeznaczona dla początkujących i zaawansowanych użytkowników Kubernetesa. Dzięki niej osiągniesz nowe poziomy prędkości, zwinności, niezawodności i wydajności budowanych systemów. Opisano tu, jak działa orkiestrator klastrów Kubernetes oraz jak wykorzystać jego narzędzia i interfejsy API do usprawnienia procesów rozwoju, dostarczania i utrzymywania rozproszonych aplikacji. Wyjaśniono niezbędne szczegóły dotyczące aplikacji kontenerowych, uruchamiania i obsługi klastrów oraz wdrażania aplikacji w Kubernetesie. Przedstawiono sposoby integracji magazynów danych i rozszerzania platformy. Przydatnym podsumowaniem treści zawartych w książce jest kilka praktycznych przykładów tworzenia i wdrażania rzeczywistych aplikacji w Kubernetesie, a także omówienie metod organizowania aplikacji w systemie kontroli źródła.

Najciekawsze zagadnienia:

  • tworzenie i uruchamianie klastrów Kubernetesa
  • projektowanie aplikacji: kapsuły, usługi, narzędzia Ingress i obiekty ReplicaSet
  • integracja magazynów danych z kontenerowymi mikrousługami
  • obiekty specjalne: DaemonSet, Job, ConfigMap i tajne dane
  • praktyczne przykłady tworzenia i wdrażania rzeczywistych aplikacji w Kubernetesie

Kubernetes: systemy rozproszone mogą być skalowalne i niezawodne!

  • Przedmowa
    • Kubernetes: dedykacja
    • Kto powinien przeczytać tę książkę?
    • Dlaczego napisaliśmy tę książkę?
    • Dlaczego zaktualizowaliśmy tę książkę?
    • Kilka słów na temat aktualnego stanu aplikacji natywnych w chmurze
    • Poruszanie się po tej książce
    • Zasoby online
    • Konwencje stosowane w tej książce
    • Korzystanie z przykładów kodu
    • Podziękowania
  • Rozdział 1. Wprowadzenie
    • Prędkość
      • Wartość niemutowalności
      • Deklaratywna konfiguracja
      • Systemy samonaprawiające się
    • Skalowanie usługi i zespołów programistycznych
      • Rozłączność
      • Łatwe skalowanie aplikacji i klastrów
      • Skalowanie zespołów programistycznych za pomocą mikrousług
      • Separacja zagadnień dla zapewnienia spójności i skalowania
    • Zapewnianie abstrakcji infrastruktury
    • Wydajność
    • Podsumowanie
  • Rozdział 2. Tworzenie i uruchamianie kontenerów
    • Obrazy kontenerów
      • Format obrazu Dockera
    • Budowanie obrazów aplikacji za pomocą Dockera
      • Pliki Dockerfile
      • Optymalizacja rozmiarów obrazu
      • Bezpieczeństwo obrazu
    • Wieloetapowe budowanie obrazów
    • Przechowywanie obrazów w zdalnym rejestrze
    • Środowisko wykonawcze kontenera Dockera
      • Uruchamianie kontenerów za pomocą Dockera
      • Odkrywanie aplikacji kuard
      • Ograniczanie wykorzystania zasobów
        • Ograniczanie zasobów pamięci
        • Ograniczanie zasobów procesora
    • Czyszczenie
    • Podsumowanie
  • Rozdział 3. Wdrażanie klastra Kubernetes
    • Instalowanie Kubernetes w usłudze dostawcy publicznej chmury
      • Google Kubernetes Engine
      • Instalowanie Kubernetes w Azure Kubernetes Service
      • Instalowanie Kubernetes w Amazon Web Services
    • Lokalna instalacja Kubernetes za pomocą minikube
    • Uruchamianie Kubernetes w Dockerze
    • Uruchamianie Kubernetes na Raspberry Pi
    • Klient Kubernetes
      • Sprawdzanie statusu klastra
      • Wyświetlanie węzłów roboczych klastra Kubernetes
    • Komponenty klastra
      • Serwer proxy Kubernetes
      • Serwer DNS Kubernetes
      • Interfejs użytkownika Kubernetes
    • Podsumowanie
  • Rozdział 4. Typowe polecenia kubectl
    • Przestrzenie nazw
    • Konteksty
    • Przeglądanie obiektów interfejsu API Kubernetes
    • Tworzenie, aktualizacja i niszczenie obiektów Kubernetes
    • Dodawanie etykiet i adnotacji do obiektów
    • Polecenia debugowania
    • Uzupełnianie poleceń
    • Inne sposoby pracy z klastrami
    • Podsumowanie
  • Rozdział 5. Kapsuły
    • Kapsuły w Kubernetes
    • Myślenie w kategoriach kapsuł
    • Manifest kapsuły
      • Tworzenie kapsuły
      • Tworzenie manifestu kapsuły
    • Uruchamianie kapsuł
      • Wyświetlanie listy kapsuł
      • Szczegółowe informacje o kapsule
      • Usuwanie kapsuły
    • Uzyskiwanie dostępu do kapsuły
      • Korzystanie z przekierowania portów
      • Uzyskiwanie większej ilości informacji za pomocą dzienników
      • Uruchamianie poleceń w kontenerze przy użyciu exec
      • Kopiowanie plików do i z kontenerów
    • Kontrole działania
      • Sonda żywotności
      • Sonda gotowości
      • Rodzaje kontroli działania
    • Zarządzanie zasobami
      • Żądania zasobów: minimalne wymagane zasoby
        • Żądania i limity
      • Ograniczanie wykorzystania zasobów za pomocą limitów
    • Utrwalanie danych za pomocą woluminów
      • Używanie woluminów z kapsułami
      • Różne sposoby używania woluminów z kapsułami
        • Komunikacja/synchronizacja
        • Pamięć podręczna
        • Trwałe dane
        • Montowanie systemu plików hosta
      • Utrwalanie danych przy użyciu dysków zdalnych
    • Wszystko razem
    • Podsumowanie
  • Rozdział 6. Etykiety i adnotacje
    • Etykiety
      • Stosowanie etykiet
      • Modyfikowanie etykiet
      • Selektory etykiet
      • Selektory etykiet w obiektach API
      • Etykiety w architekturze Kubernetes
    • Adnotacje
      • Definiowanie adnotacji
    • Czyszczenie
    • Podsumowanie
  • Rozdział 7. Wykrywanie usług
    • Co to jest wykrywanie usług?
    • Obiekt Service
      • DNS usługi
      • Kontrole gotowości
    • Udostępnianie usługi poza klastrem
    • Integracja z chmurą
    • Szczegóły dla zaawansowanych
      • Punkty końcowe
      • Ręczne wykrywanie usług
      • kube-proxy i adresy IP klastra
      • Zmienne środowiskowe adresu IP klastra
    • Łączenie z innymi środowiskami
    • Czyszczenie
    • Podsumowanie
  • Rozdział 8. Równoważenie obciążenia HTTP przy użyciu Ingress
    • Specyfikacja Ingress i kontrolery Ingress
    • Instalacja Contour
      • Konfiguracja DNS
      • Konfiguracja pliku lokalnych hostów
    • Praca z Ingress
      • Najprostszy sposób użycia
      • Używanie nazw hosta
      • Ścieżki
      • Czyszczenie
    • Techniki zaawansowane i pułapki
      • Uruchamianie kilku kontrolerów Ingress
      • Wiele obiektów Ingress
      • Ingress i przestrzenie nazw
      • Przepisywanie ścieżek
      • Serwowanie przez TLS
    • Inne implementacje Ingress
    • Przyszłość Ingress
    • Podsumowanie
  • Rozdział 9. Obiekt ReplicaSet
    • Pętle uzgadniania
    • Relacje między kapsułami i obiektami ReplicaSet
      • Adaptowanie istniejących kontenerów
      • Poddawanie kontenerów kwarantannie
    • Projektowanie z wykorzystaniem ReplicaSet
    • Specyfikacja ReplicaSet
      • Szablony kapsuł
      • Etykiety
    • Tworzenie obiektu ReplicaSet
    • Inspekcja obiektu ReplicaSet
      • Znajdowanie ReplicaSet z poziomu kapsuły
      • Znajdowanie zestawu kapsuł dla ReplicaSet
    • Skalowanie kontrolerów ReplicaSet
      • Skalowanie imperatywne za pomocą polecenia kubectl scale
      • Skalowanie deklaratywne za pomocą kubectl apply
      • Automatyczne skalowanie kontrolera ReplicaSet
        • Automatyczne skalowanie na podstawie wykorzystania procesora
    • Usuwanie obiektów ReplicaSet
    • Podsumowanie
  • Rozdział 10. Obiekt Deployment
    • Twoje pierwsze wdrożenie
      • Wewnętrzne mechanizmy działania obiektu Deployment
    • Tworzenie obiektów Deployment
    • Zarządzanie obiektami Deployment
    • Aktualizowanie obiektów Deployment
      • Skalowanie obiektu Deployment
      • Aktualizowanie obrazu kontenera
      • Historia wersji
    • Strategie wdrażania
      • Strategia Recreate
      • Strategia RollingUpdate
        • Zarządzanie wieloma wersjami usługi
        • Konfigurowanie ciągłej aktualizacji
      • Spowalnianie wdrażania w celu zapewnienia poprawnego działania usługi
    • Usuwanie wdrożenia
    • Monitorowanie wdrożenia
    • Podsumowanie
  • Rozdział 11. Obiekt DaemonSet
    • Planista DaemonSet
    • Tworzenie obiektów DaemonSet
    • Ograniczanie użycia kontrolerów DaemonSet do określonych węzłów
      • Dodawanie etykiet do węzłów
      • Selektory węzłów
    • Aktualizowanie obiektu DaemonSet
      • Ciągła aktualizacja obiektu DaemonSet
    • Usuwanie obiektu DaemonSet
    • Podsumowanie
  • Rozdział 12. Obiekt Job
    • Obiekt Job
    • Wzorce obiektu Job
      • Zadania jednorazowe
        • Awaria kapsuły
      • Równoległość
      • Kolejki robocze
        • Uruchamianie kolejki roboczej
        • Ładowanie do kolejki
        • Tworzenie zadania konsumenta
        • Czyszczenie
    • Obiekt CronJob
    • Podsumowanie
  • Rozdział 13. Obiekty ConfigMap i tajne dane
    • Obiekty ConfigMap
      • Tworzenie obiektów ConfigMap
      • Używanie obiektów ConfigMap
    • Tajne dane
      • Tworzenie tajnych danych
      • Korzystanie z tajnych danych
        • Woluminy tajnych danych
      • Prywatne rejestry Dockera
    • Ograniczenia dotyczące nazewnictwa
    • Zarządzanie obiektami ConfigMap i tajnymi danymi
      • Wyświetlanie obiektów
      • Tworzenie obiektów
      • Aktualizowanie obiektów
        • Aktualizacja z pliku
        • Odtworzenie i aktualizacja
        • Edytowanie bieżącej wersji
        • Aktualizacje na żywo
    • Podsumowanie
  • Rozdział 14. Model kontroli dostępu oparty na rolach w Kubernetes
    • Kontrola dostępu oparta na rolach
      • Tożsamość w Kubernetes
      • Role i powiązania ról
      • Role i powiązania ról w Kubernetes
        • Czasowniki określające możliwości w Kubernetes
        • Role wbudowane
        • Automatyczne uzgadnianie wbudowanych ról
    • Techniki zarządzania funkcją RBAC
      • Testowanie autoryzacji za pomocą narzędzia can-i
      • Zarządzanie funkcją RBAC w kontroli źródła
    • Tematy zaawansowane
      • Agregowanie ról klastrowych
      • Wykorzystywanie grup do wiązań
    • Podsumowanie
  • Rozdział 15. Integracja rozwiązań do przechowywania danych i Kubernetes
    • Importowanie usług zewnętrznych
      • Usługi bez selektorów
      • Ograniczenia usług zewnętrznych: sprawdzanie poprawności działania
    • Uruchamianie niezawodnych singletonów
      • Uruchamianie singletona MySQL
      • Dynamiczne przydzielanie woluminów
    • Natywne magazyny danych Kubernetes z wykorzystaniem obiektów StatefulSet
      • Właściwości obiektów StatefulSet
      • Ręcznie zreplikowany klaster MongoDB z wykorzystaniem obiektów StatefulSet
      • Automatyzacja tworzenia klastra MongoDB
      • Trwałe woluminy i obiekty StatefulSet
      • Ostatnia rzecz: sondy gotowości
    • Podsumowanie
  • Rozdział 16. Rozszerzanie Kubernetes
    • Co znaczy rozszerzanie Kubernetes
    • Punkty rozszerzalności
    • Wzorce tworzenia zasobów
      • Tylko dane
      • Kompilatory
      • Operatory
      • Jak zacząć
    • Podsumowanie
  • Rozdział 17. Wdrażanie rzeczywistych aplikacji
    • Jupyter
    • Parse
      • Wymagania wstępne
      • Budowanie serwera parse-server
      • Wdrażanie serwera parse-server
      • Testowanie Parse
    • Ghost
      • Konfigurowanie serwera Ghost
        • Ghost + MySQL
    • Redis
      • Konfigurowanie instalacji Redis
      • Tworzenie usługi Redis
      • Wdrażanie klastra Redis
      • Zabawa z klastrem Redis
    • Podsumowanie
  • Rozdział 18. Organizacja aplikacji
    • Podstawowe zasady
      • Systemy plików jako źródło prawdy
      • Rola recenzji kodu
      • Bramy i flagi funkcji
    • Zarządzanie aplikacją w systemie kontroli źródła
      • Układ systemu plików
      • Wersje okresowe
        • Kontrola wersji przy użyciu gałęzi i znaczników
        • Kontrola wersji przy użyciu katalogów
    • Konstruowanie aplikacji w sposób umożliwiający jej rozwój, testowanie i wdrażanie
      • Cele
      • Progresja wydania
        • Znacznik kontrolny
        • Etapy i wersje
    • Parametryzacja aplikacji za pomocą szablonów
      • Parametryzacja przy użyciu narzędzia Helm i szablonów
      • Parametryzacja systemu plików
    • Wdrażanie aplikacji na całym świecie
      • Architektura umożliwiająca wdrażanie aplikacji na całym świecie
      • Implementacja wdrożenia światowego
      • Pulpity i monitorowanie wdrożeń światowych
    • Podsumowanie
  • Dodatek A Budowanie klastra Raspberry Pi Kubernetes
    • Lista części
    • Flashowanie obrazów
    • Pierwsze uruchomienie: węzeł główny
      • Konfigurowanie sieci
        • Dodatkowe zadania
      • Instalowanie Kubernetes
      • Konfigurowanie klastra
        • Konfigurowanie ustawień sieciowych klastra
        • Konfigurowanie GUI
    • Podsumowanie
    • O autorach
    • Kolofon
  • Tytuł: Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie II
  • Autor: Brendan Burns, Joe Beda, Kelsey Hightower
  • Tytuł oryginału: Kubernetes: Up and Running: Dive into the Future of Infrastructure, 2nd Edition
  • Tłumaczenie: Łukasz Piwko, Lech Lachowski
  • ISBN: 978-83-283-6746-3, 9788328367463
  • Data wydania: 2020-09-08
  • Format: Ebook
  • Identyfikator pozycji: kuber2
  • Wydawca: Helion