Kubernetes w środowisku produkcyjnym. Jak budować efektywne platformy aplikacji - ebook
Kubernetes w środowisku produkcyjnym. Jak budować efektywne platformy aplikacji - 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
Spis treści
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
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-8550-4 |
Rozmiar pliku: | 9,1 MB |