Kubernetes. Tworzenie niezawodnych systemów rozproszonych - ebook
Kubernetes. Tworzenie niezawodnych systemów rozproszonych - ebook
Kubernetes jest ważnym narzędziem do tworzenia, wdrażania i utrzymywania aplikacji w chmurze. Obecnie pozwala na uzyskiwanie prędkości, zwinności, niezawodności i wydajności na wysokim poziomie, a samo tworzenie i utrzymywanie systemów rozproszonych jest proste, efektywne i satysfakcjonujące. Trzeba tylko zrozumieć, na czym polega abstrakcja kontenerów i interfejsów API orkiestracji kontenerów i poświęcić trochę czasu na zapoznanie się z samym Kubernetesem.
Oto podstawowe źródło wiedzy na temat systemu Kubernetes, okraszone przykładami, które umożliwiają samodzielne poznawanie tego produktu!
Liz Rice
To trzecie wydanie przewodnika autorstwa twórców Kubernetesa. Zostało starannie zaktualizowane i wzbogacone o tak ważne zagadnienia jak bezpieczeństwo, dostęp do Kubernetesa za pomocą kodu napisanego w różnych językach programowania czy tworzenie aplikacji wieloklastrowych. Dzięki książce poznasz podstawy funkcjonowania Kubernetesa, a naukę rozpoczniesz od budowy prostej aplikacji. Później dowiesz się, jak używać narzędzi i interfejsów API do automatyzacji skalowalnych systemów rozproszonych, w tym usług internetowych, aplikacji do uczenia maszynowego czy klastrów komputerów Raspberry Pi. Omówiono tu również zaawansowane zagadnienia, takie jak obiekty specjalne czy siatki usług i system kontroli źródła.
Najciekawsze zagadnienia:
- budowa i działanie Kubernetesa na podstawie prostego przykładu
- specjalne obiekty, takie jak DaemonSet, Job, ConfigMap i tajne dane
- cykl życia kompletnej aplikacji rozproszonej
- zabezpieczanie wdrażanych aplikacji
- aplikacje wieloklastrowe i dostęp do Kubernetesa za pomocą własnego kodu
Poznaj przyszłość infrastruktury!
Spis treści
Przedmowa
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ść
- Ekosystem o pochodzeniu chmurowym
- Podsumowanie
2. Tworzenie i uruchamianie kontenerów
- Obrazy kontenerów
- 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
- Czyszczenie
- Podsumowanie
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
- 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
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
- Zarządzanie klastrem
- Uzupełnianie poleceń
- Inne sposoby pracy z klastrami
- Podsumowanie
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
- 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
- Sonda rozruchu
- Zaawansowana konfiguracja sondy
- Rodzaje kontroli działania
- Zarządzanie zasobami
- Żądania zasobów: minimalne wymagane zasoby
- 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
- Wszystko razem
- Podsumowanie
6. Etykiety i adnotacje
- Etykiety
- Stosowanie etykiet
- Modyfikowanie etykiet
- Selektory etykiet
- Selektory etykiet w obiektach API
- Etykiety w architekturze Kubernetes
- Adnotacje
- Czyszczenie
- Podsumowanie
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 usługą równoważenia obciążenia
- 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
- Łączenie z zasobami poza klastrem
- Łączenie zasobów zewnętrznych z usługami w klastrze
- Czyszczenie
- Podsumowanie
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
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
- Usuwanie obiektów ReplicaSet
- Podsumowanie
10. Obiekt Deployment
- Twoje pierwsze wdrożenie
- 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
- Spowalnianie wdrażania w celu zapewnienia poprawnego działania usługi
- Usuwanie wdrożenia
- Monitorowanie wdrożenia
- Podsumowanie
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
- Usuwanie obiektu DaemonSet
- Podsumowanie
12. Obiekt Job
- Obiekt Job
- Wzorce obiektu Job
- Zadania jednorazowe
- Równoległość
- Kolejki robocze
- Obiekt CronJob
- Podsumowanie
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
- Prywatne rejestry kontenera
- Ograniczenia dotyczące nazewnictwa
- Zarządzanie obiektami ConfigMap i tajnymi danymi
- Wyświetlanie obiektów
- Tworzenie obiektów
- Aktualizowanie obiektów
- Podsumowanie
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
- 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
15. Siatki usług
- Szyfrowanie i uwierzytelnianie przy użyciu Mutual TLS
- Kształtowanie ruchu
- Introspekcja
- Czy naprawdę potrzebujesz siatki usług
- Introspekcja implementacji siatki usług
- Krajobraz siatek usług
- Podsumowanie
16. 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
17. Rozszerzanie Kubernetes
- Co znaczy rozszerzanie Kubernetes
- Punkty rozszerzalności
- Wzorce tworzenia zasobów
- Tylko dane
- Kompilatory
- Operatory
- Jak zacząć
- Podsumowanie
18. Dostęp do Kubernetes z poziomu popularnych języków programowania
- API Kubernetes - perspektywa klienta
- OpenAPI i generowane biblioteki klientów
- Kwestia kubectl x
- Programowanie API Kubernetes
- Instalacja bibliotek klienckich
- Uwierzytelnianie w API Kubernetes
- Dostęp do API Kubernetes
- Generowanie list i tworzenie kapsuł w Pythonie, Javie i .NET
- Tworzenie i łatanie nowych obiektów
- Obserwowanie zmian w API Kubernetes
- Interakcja z kapsułami
- Podsumowanie
19. Zabezpieczanie aplikacji w Kubernetes
- Kontekst zabezpieczeń
- Wyzwania związane z kontekstem zabezpieczeń
- Pod Security
- Czym jest Pod Security
- Stosowanie standardów Pod Security
- Zarządzanie kontami usług
- Kontrola dostępu oparta na rolach
- RuntimeClass
- Network Policy
- Siatka usług
- Narzędzia do weryfikacji zabezpieczeń
- Bezpieczeństwo obrazów
- Podsumowanie
20. Polityki i zarządzanie klastrami Kubernetes
- Dlaczego polityka i zarządzanie są ważne
- Przepływ wstępu
- Polityka i zarządzanie z narzędziem Gatekeeper
- Czym jest Open Policy Agent
- Instalacja Gatekeepera
- Konfigurowanie polityk
- Szablony ograniczeń
- Tworzenie ograniczeń
- Audyt
- Modyfikacja
- Replikacja danych
- Metryki
- Biblioteka polityk
- Podsumowanie
21. Wdrożenia aplikacji w wielu klastrach
- Zanim zaczniesz
- Podejście od góry z równoważeniem obciążenia
- Budowa aplikacji dla wielu klastrów
- Replikowane silosy - najprostszy model międzyregionalny
- Fragmentowanie - dane regionalne
- Większa elastyczność - routing mikrousług
- Podsumowanie
22. 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
- Konstruowanie aplikacji w sposób umożliwiający jej rozwój, testowanie i wdrażanie
- Cele
- Progresja wydania
- 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
A. Budowanie własnego klastra Kubernetes
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-8322-337-7 |
Rozmiar pliku: | 4,0 MB |