Kubernetes

Book description

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.

Table of contents

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

Product information

  • Title: Kubernetes
  • Author(s): Joe Beda Brendan Burns Kelsey Hightower
  • Release date: September 2020
  • Publisher(s): Helion
  • ISBN: 9788328367456