Kubernetes. Przewodnik po orkiestracji kontenerów i tworzeniu niezawodnych aplikacji - ebook
Kubernetes. Przewodnik po orkiestracji kontenerów i tworzeniu niezawodnych aplikacji - ebook
Kontenery i framework Kubernetes gwarantują niezawodne działanie oprogramowania i przejrzystą kontrolę jego funkcjonowania. Największą zaletą platformy Kubernetes jest ukrywanie za warstwą abstrakcji mechanizmu uruchamiania kontenerów w różnych klastrach. Ułatwia to wdrażanie aplikacji i zarządzanie nimi, ale jednocześnie utrudnia zrozumienie, co naprawdę dzieje się w klastrze.
W tej książce omówiono wewnętrzny sposób działania frameworka Kubernetes i pokazano, jak za jego pomocą budować wydajne, niezawodne i odporne na awarie aplikacje natywnej chmury. Dowiesz się, jak kontenery używają przestrzeni nazw w celu izolowania procesów, a także jak korzystają z funkcjonalności ograniczania zasobów, aby zagwarantować, że proces będzie się opierał jedynie na tych, które zostały mu przydzielone. Nauczysz się instalować klaster Kubernetes, wdrażać kontenery i zrozumiesz, na czym polega przepływ pakietów między kontenerami w sieci hosta. Ponadto poznasz strategie tworzenia i uruchamiania kontenerów, które zapewnią oprogramowaniu optymalną wydajność, jak również sposoby identyfikowania i usuwania potencjalnych problemów.
W książce między innymi:
- zapewnienie większej wydajności działania aplikacji
- automatyczne skalowanie i mechanizm równoważenia obciążenia
- konfigurowanie mechanizmu kontroli dostępu
- wykrywanie problemów i ich usuwanie
- wdrażanie nowych kontenerów i konfigurowanie routingu w sieci
- rozszerzanie klastra Kubernetes przez dodawanie nowych funkcjonalności
Czy na pewno rozumiesz działanie kontenera Kubernetes?
Spis treści
Wprowadzenie
Część I. Tworzenie i używanie kontenerów
- 1. Dlaczego kontenery są ważne?
- Nowoczesna architektura aplikacji
- Atrybut: natywna chmura
- Atrybut: modułowość
- Atrybut: mikrousługi
- Zaleta: skalowalność
- Zaleta: niezawodność
- Zaleta: odporność na awarie
- Dlaczego kontenery?
- Wymagania dotyczące kontenerów
- Wymagania dotyczące koordynacji
- Uruchamianie kontenerów
- Jak wygląda kontener?
- Czym tak naprawdę jest kontener?
- Wdrażanie kontenerów w Kubernetesie
- Komunikacja z klastrem Kubernetesa
- Ogólne omówienie przykładowej aplikacji
- Funkcje Kubernetesa
- Podsumowanie
- Nowoczesna architektura aplikacji
- 2. Izolacja procesu
- Na czym polega izolacja?
- Dlaczego proces wymaga izolacji?
- Uprawnienia pliku i środowisko chroot
- Izolacja kontenera
- Platformy kontenerów i środowiska uruchomieniowe kontenerów
- Instalacja demona containerd
- Stosowanie demona containerd
- Wprowadzenie do przestrzeni nazw Linuksa
- Kontenery i przestrzenie nazw w CRI-O
- Bezpośrednie uruchamianie procesów w przestrzeni nazw
- Podsumowanie
- Na czym polega izolacja?
- 3. Mechanizm ograniczania zasobów
- Priorytet procesora
- Polityki w czasie rzeczywistym i nie w czasie rzeczywistym
- Określenie priorytetu procesu
- Grupy kontrolne systemu Linux
- Przydział zasobów procesora za pomocą grup kontrolnych
- Ograniczanie zasobów procesora za pomocą środowiska uruchomieniowego kontenerów CRI-O i polecenia crictl
- Ograniczanie zasobów pamięci
- Ograniczenia przepustowości sieci
- Podsumowanie
- Priorytet procesora
- 4. Sieciowe przestrzenie nazw
- Izolacja sieci
- Sieciowe przestrzenie nazw
- Analiza sieciowej przestrzeni nazw
- Tworzenie sieciowej przestrzeni nazw
- Interfejs mostu
- Dodawanie interfejsu do mostu
- Śledzenie ruchu sieciowego
- Maskarada sieci
- Podsumowanie
- 5. Obraz kontenera i warstwy środowiska uruchomieniowego
- Izolacja systemu plików
- Zawartość obrazu kontenera
- Wersje i warstwy obrazu kontenera
- Tworzenie obrazu kontenera
- Używanie pliku Dockerfile
- Nadawanie tagów i publikowanie obrazu
- Obraz i pamięć masowa kontenera
- Nakładające się systemy plików
- Warstwy kontenera
- Praktyczna wskazówka dotycząca tworzenia obrazu
- Projekt Open Container Initiative
- Podsumowanie
- Izolacja systemu plików
Część II. Kontenery w Kubernetesie
- 6. Dlaczego Kubernetes ma znaczenie?
- Uruchamianie kontenerów w klastrze
- Zadania przekrojowe
- Koncepcje Kubernetesa
- Wdrożenie klastra
- Wymagane pakiety
- Pakiety Kubernetesa
- Inicjalizacja klastra
- Dołączanie węzłów do klastra
- Instalowanie dodatków dla klastra
- Sterownik sieci
- Instalowanie pamięci masowej
- Instalowanie kontrolera przychodzącego ruchu sieciowego
- Serwer wskaźników działania
- Poznawanie klastra
- Podsumowanie
- Uruchamianie kontenerów w klastrze
- 7. Wdrażanie kontenerów w Kubernetesie
- Pody
- Wdrażanie poda
- Rejestrowanie danych i informacje szczegółowe o podzie
- Wdrożenia
- Tworzenie zasobu Deployment
- Monitorowanie i skalowanie
- Automatyczne skalowanie
- Inne kontrolery
- Job i CronJob
- StatefulSet
- DaemonSet
- Podsumowanie
- Pody
- 8. Sieci nakładkowe
- Sieć w klastrze
- Wtyczki CNI
- Sieć poda
- Sieć między węzłami
- Sieć Calico
- WeaveNet
- Wybór wtyczek sieciowych
- Dostosowanie sieci do własnych potrzeb
- Podsumowanie
- Sieć w klastrze
- 9. Sieci usługi i przychodzącego ruchu sieciowego
- Usługi
- Tworzenie usługi
- Usługa DNS
- Przestrzenie nazw i określanie nazw
- Routing ruchu sieciowego
- Sieć zewnętrzna
- Usługi zewnętrzne
- Usługi przychodzącego ruchu sieciowego
- Zasób Ingress w środowisku produkcyjnym
- Podsumowanie
- Usługi
- 10. Gdy coś pójdzie nie tak
- Szeregowanie
- Brak dostępnych węzłów
- Niewystarczająca ilość zasobów
- Pobieranie obrazu kontenera
- Uruchamianie kontenera
- Debugowanie z użyciem dzienników zdarzeń
- Debugowanie za pomocą polecenia kubectl exec
- Debugowanie z użyciem funkcjonalności przekazywania portu
- Podsumowanie
- Szeregowanie
- 11. Płaszczyzna kontrolna i kontrola dostępu
- Serwer API
- Uwierzytelnianie serwera API
- Certyfikat klienta
- Token bootstrap
- Zasób ServiceAccount
- Kontrola dostępu na podstawie roli
- Role i role klastra
- Powiązanie roli i powiązanie roli klastra
- Przypisanie podów zasobowi ServiceAccount
- Dołączanie ról do użytkowników
- Podsumowanie
- 12. Środowisko uruchomieniowe kontenerów
- Usługa węzła
- Konfiguracja klastra w usłudze kubelet
- Konfiguracja środowiska uruchomieniowego kontenerów w usłudze kubelet
- Konfiguracja sieciowa w usłudze kubelet
- Pody statyczne
- Obsługa techniczna węzła
- Drenaż i korodowanie węzłów
- Problematyczny węzeł
- Węzeł jest niedostępny
- Podsumowanie
- Usługa węzła
- 13. Sprawdzanie stanu aplikacji
- Operacje sprawdzenia poprawności działania
- Sprawdzanie istnienia kontenera
- Sprawdzanie typu Exec
- Sprawdzanie typu HTTP
- Sprawdzanie typu TCP
- Sprawdzanie możliwości uruchamiania kontenera
- Sprawdzanie możliwości odczytywania kontenera
- Podsumowanie
- 14. Limity i przydziały
- Żądania i limity
- Limity procesora i pamięci operacyjnej
- Egzekwowanie limitów za pomocą grupy kontrolnej
- Limity sieciowe
- Przydział
- Podsumowanie
- Żądania i limity
- 15. Trwała pamięć masowa
- Klasy pamięci masowej
- Definicja klasy pamięci masowej
- Wewnętrzne komponenty wtyczki CSI
- Trwałe woluminy
- Zasób StatefulSet
- Woluminy i poświadczenia
- Zasób Deployment
- Tryby dostępu
- Podsumowanie
- Klasy pamięci masowej
- 16. Konfiguracja i klucze tajne użytkownika
- Wstrzykiwanie konfiguracji
- Konfiguracja zewnętrzna
- Zapewnienie ochrony kluczom tajnym użytkownika
- Wstrzykiwanie plików
- Repozytorium konfiguracji klastra
- Używanie polecenia etcdctl
- Deszyfrowanie danych w etcd
- Podsumowanie
- Wstrzykiwanie konfiguracji
- 17. Operatory i zasoby niestandardowe
- Zasoby niestandardowe
- Tworzenie CRD
- Obserwowanie CRD
- Operatory
- Podsumowanie
- Zasoby niestandardowe
Część III. Wydajność działania Kubernetes
- 18. Powiązanie i urządzenia
- Powiązanie i jego brak
- Brak powiązania
- Powiązanie
- Routing ruchu sieciowego usługi
- Zasoby sprzętowe
- Podsumowanie
- Powiązanie i jego brak
- 19. Dostrajanie jakości usługi
- Osiągnięcie przewidywalności
- Klasy jakości usługi
- Klasa BestEffort
- Klasa Burstable
- Klasa Guaranteed
- Usuwanie podów w poszczególnych klasach jakości usługi
- Wybór klasy jakości usługi
- Priorytet poda
- Podsumowanie
- 20. Aplikacje odporne na awarie
- Stos przykładowej aplikacji
- Baza danych
- Wdrożenie aplikacji
- Automatyczne skalowanie poda
- Usługa aplikacji
- Monitorowanie aplikacji i klastra
- Monitorowanie z użyciem narzędzia Prometheus
- Wdrażanie kube-prometheus
- Wskaźniki klastra
- Dodawanie monitorowania dla usług
- Podsumowanie
- Stos przykładowej aplikacji
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-289-1013-3 |
Rozmiar pliku: | 4,2 MB |