Szczegóły ebooka

Kubernetes w środowisku produkcyjnym. Jak budować efektywne platformy aplikacji

Kubernetes w środowisku produkcyjnym. Jak budować efektywne platformy aplikacji

Josh Rosso, Rich Lander, Alex Brand, John Harris

Ebook

Kubernetes zmienił podejście do budowy i wdrażania oprogramowania korporacyjnego. Przedsiębiorstwa szybko zrozumiały, że dzięki tej potężnej technologii mogą korzystać z zalet wysoce dostępnych, samonaprawiających się i autoskalujących wdrożeń oprogramowania. Systemy są zdolne do automatycznego zapewniania pożądanych reakcji na podstawie zadanych warunków, a przy tym są szybsze i bardziej niezawodne od jakichkolwiek operacji wykonywanych ręcznie. Jednak ceną za ten postęp jest konieczność poradzenia sobie z większą złożonością.

To książka przeznaczona dla osób, które chcą z powodzeniem uruchomić Kubernetes w środowisku produkcyjnym jako platformę dla aplikacji przedsiębiorstwa. Zawiera wiele wniosków płynących z praktycznych doświadczeń autorów, omawia też kluczowe wyzwania i najlepsze praktyki. Pokazuje, w jaki sposób można sobie poradzić z różnymi kwestiami związanymi z technologiami, abstrakcjami i ze wzorcami, aby bez zbędnych problemów osiągnąć sukces w swoim wdrożeniu. Proces projektowy i wdrożeniowy potraktowano tu z dużą dozą pragmatyzmu i zwrócono uwagę na jego wczesne etapy. Omówiono także wiele punktów decyzyjnych i potencjalne przyczyny problemów, a poszczególne zagadnienia zostały poparte praktycznymi przykładami.

W książce między innymi:

  • podstawy projektowania platform opartych na Kubernetesie
  • praktyczne aspekty rozwiązywania problemów podczas budowania platformy
  • wykorzystywanie architektury Kubernetesa w rozwijaniu platformy
  • prowadzenie analiz przedprojektowych
  • zasady wyboru stosowanych narzędzi i abstrakcji podczas pracy z Kubernetesem
  • typowe opcje narzędziowe i kompromisy projektowe

Kubernetes: zbuduj najlepsze środowisko dla aplikacji w swojej firmie

Przedmowa

Wstęp

Rozdział 1. Droga do środowiska produkcyjnego

  • Jak zdefiniować Kubernetes?
    • Komponenty podstawowe
    • Więcej niż orkiestracja - rozszerzona funkcjonalność
    • Interfejsy Kubernetesa
    • Podsumowanie tematu Kubernetesa
  • Definiowanie platform aplikacji
    • Spektrum podejść
    • Zaspokajanie potrzeb organizacyjnych
    • Podsumowanie tematu platform aplikacji
  • Budowanie platform aplikacji opartych na Kubernetesie
    • Zacznijmy od dołu
    • Spektrum abstrakcji
    • Określanie usług platformy
    • Elementy konstrukcyjne
  • Podsumowanie

Rozdział 2. Modele wdrażania

  • Usługa zarządzana czy własne wdrożenie?
    • Usługi zarządzane
    • Własne wdrożenie
    • Podejmowanie decyzji
  • Automatyzacja
    • Gotowy instalator
    • Automatyzacja niestandardowa
  • Architektura i topologia
    • Modele wdrażania magazynu danych etcd
    • Warstwy klastra
    • Pule węzłów
    • Federacja klastrów
  • Infrastruktura
    • Porównanie maszyn fizycznych i wirtualnych
    • Rozmiary klastrów
    • Infrastruktura obliczeniowa
    • Infrastruktura sieciowa
    • Strategie automatyzacji
  • Instalowanie maszyn
    • Zarządzanie konfiguracją
    • Obrazy maszyn
    • Jakie oprogramowanie zainstalować?
  • Komponenty uruchamiane w kontenerach
  • Dodatki
  • Uaktualnienia
    • Numerowanie wersji platformy
    • Plan na wypadek awarii
    • Testy integracyjne
    • Strategie
  • Mechanizmy wyzwalania
  • Podsumowanie

Rozdział 3. Środowisko uruchomieniowe kontenerów

  • Pojawienie się kontenerów
  • Otwarta inicjatywa technologii kontenerowych
    • Specyfikacja środowiska uruchomieniowego OCI
    • Specyfikacja obrazu OCI
  • Interfejs środowiska uruchomieniowego kontenerów
    • Uruchamianie kapsuły
  • Wybór środowiska uruchomieniowego
    • Docker
    • containerd
    • CRI-O
    • Kata Containers
    • Virtual Kubelet
  • Podsumowanie

Rozdział 4. Pamięć masowa kontenerów

  • Kwestie związane z pamięcią masową
    • Tryby dostępu
    • Zwiększanie pojemności woluminu
    • Alokowanie woluminów
    • Kopia zapasowa i odzyskiwanie sprawności po awarii
    • Urządzenia blokowe oraz plikowa i obiektowa pamięć masowa
    • Dane efemeryczne
    • Wybór dostawcy pamięci masowej
  • Podstawowe funkcjonalności pamięci masowej Kubernetesa
    • Woluminy trwałe i żądania woluminów trwałych
    • Klasy pamięci
  • Interfejs pamięci masowej kontenerów
    • Kontroler CSI
    • Węzeł CSI
  • Implementowanie pamięci masowej jako usługi
    • Instalacja
    • Udostępnianie opcji pamięci masowej
    • Korzystanie z pamięci masowej
    • Zmiana rozmiaru woluminu
    • Migawki
  • Podsumowanie

Rozdział 5. Sieci kapsuł

  • Kwestie związane z konfiguracją sieci
    • Zarządzanie adresami IP
    • Protokoły routingu
    • Enkapsulacja i tunelowanie
    • Routowalność obciążeń roboczych
    • IPv4 i IPv6
    • Szyfrowany ruch obciążeń roboczych
    • Reguły sieciowe
    • Podsumowanie kwestii związanych z konfiguracją sieci
  • Interfejs sieciowy kontenerów
    • Instalowanie CNI
  • Wtyczki CNI
    • Calico
    • Cilium
    • CNI VPC
    • Multus
    • Wtyczki dodatkowe
  • Podsumowanie

Rozdział 6. Routing usług

  • Usługi Kubernetesa
    • Abstrakcja Service
    • Endpoints
    • Szczegóły implementacji usługi
    • Wykrywanie usług
    • Wydajność usług DNS
  • Ingress
    • Przypadek użycia dla konfiguracji Ingress
    • Interfejs API Ingress
    • Kontrolery ruchu przychodzącego i sposób ich działania
    • Wzorce ruchu przychodzącego
    • Wybór kontrolera ruchu przychodzącego
    • Kwestie związane z wdrażaniem kontrolera ruchu przychodzącego
    • DNS i jego rola w konfiguracji Ingress
    • Obsługa certyfikatów TLS
  • Siatka usług
    • Kiedy (nie) używać siatki usług
    • Interfejs siatki usług
    • Proxy płaszczyzny danych
    • Siatka usług w Kubernetesie
    • Architektura płaszczyzny danych
    • Przyjęcie siatki usług
  • Podsumowanie

Rozdział 7. Zarządzanie sekretami

  • Obrona w głąb
    • Szyfrowanie dysków
    • Bezpieczeństwo w warstwie transportowej
    • Szyfrowanie aplikacji
  • Interfejs API Secret Kubernetesa
    • Modele konsumpcji sekretów
    • Dane obiektów Secret w etcd
    • Szyfrowanie kluczem statycznym
    • Szyfrowanie techniką kopertową
  • Dostawcy zewnętrzni
    • Vault
    • Cyberark
    • Integracja wstrzykiwania
    • Integracja CSI
  • Sekrety w świecie deklaratywnym
    • Pieczętowanie sekretów
    • Kontroler zapieczętowanych sekretów
    • Odnawianie klucza
    • Modele wieloklastrowe
  • Najlepsze praktyki dotyczące sekretów
    • Zawsze kontroluj interakcje sekretów
    • Nie wyjawiaj sekretów
    • Preferuj woluminy zamiast zmiennych środowiskowych
    • Aplikacje nie powinny mieć informacji o dostawcach magazynów sekretów
  • Podsumowanie

Rozdział 8. Sterowanie dostępem

  • Łańcuch sterowania dostępem w Kubernetesie
  • Kontrolery sterowania dostępem z drzewa projektu
  • Zaczepy internetowe
    • Konfigurowanie zaczepów internetowych kontrolerów sterowania dostępem
    • Uwagi dotyczące projektowania zaczepów internetowych
  • Pisanie mutującego zaczepu internetowego
    • Zwykła procedura obsługi HTTPS
    • Środowisko uruchomieniowe kontrolerów
  • Scentralizowane systemy reguł
  • Podsumowanie

Rozdział 9. Obserwowalność

  • Mechanizmy rejestrowania
    • Przetwarzanie dzienników kontenerów
    • Dzienniki inspekcji Kubernetesa
    • Zdarzenia Kubernetesa
    • Uruchamianie alertów na podstawie dzienników
    • Implikacje dotyczące bezpieczeństwa
  • Wskaźniki
    • Prometheus
    • Przechowywanie długookresowe
    • Wysyłanie wskaźników
    • Wskaźniki niestandardowe
    • Organizacja i federacja
    • Alerty
    • Showback i chargeback
    • Komponenty wskaźników
  • Śledzenie rozproszone
    • OpenTracing i OpenTelemetry
    • Śledzenie komponentów
    • Instrumentacja aplikacji
    • Siatki usług
  • Podsumowanie

Rozdział 10. Tożsamość

  • Tożsamość użytkownika
    • Metody uwierzytelniania
    • Implementowanie uprawnień najniższego poziomu dla użytkowników
  • Tożsamość aplikacji lub obciążenia roboczego
    • Współdzielone sekrety
    • Tożsamość sieciowa
    • Tokeny konta usługi
    • Rzutowane tokeny konta usługi
    • Tożsamość węzła ustalana przez platformę
  • Podsumowanie

Rozdział 11. Budowanie usług platformy

  • Punkty rozszerzeń
    • Rozszerzenia oparte na wtyczkach
    • Rozszerzenia oparte na zaczepach internetowych
    • Rozszerzenia oparte na operatorach
  • Wzorzec Operator
    • Kontrolery Kubernetesa
    • Zasoby niestandardowe
  • Przypadki użycia wzorca Operator
    • Narzędzia platformy
    • Ogólnego przeznaczenia operatory obciążeń roboczych
    • Operatory charakterystyczne dla aplikacji
  • Tworzenie operatorów
    • Narzędzia do tworzenia operatorów
    • Projektowanie modelu danych
    • Implementacja logiki
  • Rozszerzanie dyspozytora
    • Predykaty i priorytety
    • Reguły rozplanowywania
    • Profile rozplanowywania
    • Wiele dyspozytorów
    • Dyspozytor niestandardowy
  • Podsumowanie

Rozdział 12. Wielodostępność

  • Stopnie izolacji
    • Klastry jednodostępne
    • Klastry wielodostępne
  • Granica przestrzeni nazw
  • Wielodostępność w Kubernetesie
    • Kontrola dostępu oparta na rolach (RBAC)
    • Kwoty zasobów
    • Zaczepy internetowe sterowania dostępem
    • Żądania i limity zasobów
    • Reguły sieciowe
    • Reguły bezpieczeństwa kapsuł
    • Usługi platformy wielodostępnej
  • Podsumowanie

Rozdział 13. Autoskalowanie

  • Rodzaje skalowania
  • Architektura aplikacji
  • Autoskalowanie obciążeń roboczych
    • Poziomy autoskaler kapsuł
    • Pionowy autoskaler kapsuł
    • Autoskalowanie z wykorzystaniem wskaźników niestandardowych
    • Autoskaler proporcjonalny do klastra
    • Autoskalowanie niestandardowe
  • Autoskalowanie klastra
    • Nadalokacja klastra
  • Podsumowanie

Rozdział 14. Wskazówki dotyczące aplikacji

  • Wdrażanie aplikacji w Kubernetesie
    • Tworzenie szablonów dla manifestów wdrożeń
    • Pakowanie aplikacji dla Kubernetesa
  • Stosowanie konfiguracji i sekretów
    • Zasoby ConfigMap i Secret Kubernetesa
    • Uzyskiwanie konfiguracji z systemów zewnętrznych
  • Obsługa zdarzeń ponownego rozplanowywania
    • Przedzatrzymaniowy zaczep cyklu życia kontenerów
    • Bezpieczne zamykanie kontenerów
    • Spełnienie wymagań dostępności
  • Sondy stanu
    • Sondy żywotności
    • Sondy gotowości
    • Sondy uruchamiania
    • Implementowanie sond
  • Żądania i limity zasobów kapsuły
    • Żądania zasobów
    • Limity zasobów
  • Dzienniki aplikacji
    • Co rejestrować?
    • Dzienniki nieuporządkowane i uporządkowane
    • Informacje kontekstowe w dziennikach
  • Udostępnianie wskaźników
    • Instrumentowanie aplikacji
    • Metoda USE
    • Metoda RED
    • Cztery złote sygnały
    • Wskaźniki charakterystyczne dla aplikacji
  • Instrumentowanie usług do śledzenia rozproszonego
    • Inicjowanie procesu śledzenia
    • Tworzenie zakresów
    • Propagowanie kontekstu
  • Podsumowanie

Rozdział 15. Łańcuch dostarczania oprogramowania

  • Kompilowanie obrazów kontenerów
    • Antywzorzec Złote Obrazy Bazowe
    • Wybór obrazu bazowego
    • Użytkownik uruchomieniowy
    • Załączenie wersji pakietów
    • Obraz kompilacji i obraz uruchomieniowy
    • Cloud Native Buildpacks
  • Rejestry obrazów
    • Skanowanie luk w zabezpieczeniach
    • Przepływ pracy kwarantanny
    • Podpisywanie obrazów
  • Ciągłe dostarczanie
    • Integrowanie kompilacji w potoku
    • Wdrożenia oparte na wysyłaniu zmian do klastra
    • Wzorce przeprowadzania rolloutów
    • GitOps
  • Podsumowanie

Rozdział 16. Abstrakcje platformy

  • Udostępnianie bazowej platformy
  • Onboarding samoobsługowy
  • Spektrum abstrakcji
    • Narzędzia wiersza poleceń
    • Warstwa abstrakcji oparta na tworzeniu szablonów
    • Tworzenie warstwy abstrakcji dla podstawowych mechanizmów Kubernetesa
    • Uczynienie Kubernetesa niewidzialnym
  • Podsumowanie
  • Tytuł: Kubernetes w środowisku produkcyjnym. Jak budować efektywne platformy aplikacji
  • Autor: Josh Rosso, Rich Lander, Alex Brand, John Harris
  • Tytuł oryginału: Production Kubernetes: Building Successful Application Platforms
  • Tłumaczenie: Lech Lachowski
  • ISBN: 978-83-283-8550-4, 9788328385504
  • Data wydania: 2022-05-10
  • Format: Ebook
  • Identyfikator pozycji: kubwsr
  • Wydawca: Helion