Szczegóły ebooka

Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie III

Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie III

Brendan Burns, Joe Beda, Kelsey Hightower, Lachlan Evenson

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!

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

  • Tytuł: Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie III
  • Autor: Brendan Burns, Joe Beda, Kelsey Hightower, Lachlan Evenson
  • Tytuł oryginału: Kubernetes: Up and Running: Dive into the Future of Infrastructure, 3rd Edition
  • Tłumaczenie: Łukasz Piwko, Lech Lachowski
  • ISBN: 978-83-8322-337-7, 9788383223377
  • Data wydania: 2023-05-16
  • Format: Ebook
  • Identyfikator pozycji: kuber3
  • Wydawca: Helion