Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie II - ebook
Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie II - 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!
Spis treści
- 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
- Prędkość
- 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
- Obrazy kontenerów
- 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
- Instalowanie Kubernetes w usłudze dostawcy publicznej chmury
- 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
- Żądania zasobów: minimalne wymagane zasoby
- 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
- Etykiety
- 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
- Twoje pierwsze wdrożenie
- 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
- Zadania jednorazowe
- 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
- Obiekty ConfigMap
- 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
- Kontrola dostępu oparta na rolach
- 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
- Importowanie usług zewnętrznych
- 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
- Konfigurowanie serwera Ghost
- 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
- Podstawowe zasady
- 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
- Konfigurowanie sieci
- Podsumowanie
- O autorach
- Kolofon
Kategoria: | Hardware |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-6746-3 |
Rozmiar pliku: | 2,5 MB |