Najlepsze praktyki w Kubernetes

Book description

Systemy informatyczne oparte na chmurze stały się atrakcyjną alternatywą dla standardowej infrastruktury. Wymusiły jednak radykalne zmiany w praktykach tworzenia, wdrażania i utrzymywania aplikacji. Dziś uwaga profesjonalistów skupiona jest na Kubernetes, który w ciągu zaledwie kilku lat stał się faktycznym standardem wdrażania natywnej chmury. Aby tworzone aplikacje funkcjonowały wydajnie, bezawaryjnie i niezawodnie, warto wdrożyć i stosować wzorce i najlepsze praktyki. Konieczne jest również przemodelowanie sposobu pracy programistów.

Table of contents

  1. Wprowadzenie
    1. Dla kogo jest przeznaczona ta książka?
    2. Dlaczego napisaliśmy tę książkę?
    3. Poruszanie się po książce
    4. Konwencje zastosowane w książce
    5. Użycie przykładowych kodów
    6. Podziękowania
  2. Rozdział 1. Konfiguracja podstawowej usługi
    1. Ogólne omówienie aplikacji
    2. Zarządzanie plikami konfiguracyjnymi
    3. Tworzenie usługi replikowanej za pomocą wdrożeń
      1. Najlepsze praktyki dotyczące zarządzania obrazami kontenera
      2. Tworzenie replikowanej aplikacji
    4. Konfiguracja zewnętrznego przychodzącego ruchu sieciowego HTTP
    5. Konfigurowanie aplikacji za pomocą zasobu ConfigMap
    6. Zarządzanie uwierzytelnianiem za pomocą danych poufnych
    7. Wdrożenie prostej bezstanowej bazy danych
    8. Utworzenie za pomocą usług mechanizmu równoważenia obciążenia TCP
    9. Przekazanie przychodzącego ruchu sieciowego do serwera pliku statycznego
    10. Parametryzowanie aplikacji za pomocą menedżera pakietów Helm
    11. Najlepsze praktyki dotyczące wdrożenia
    12. Podsumowanie
  3. Rozdział 2. Sposób pracy programisty
    1. Cele
    2. Tworzenie klastra programistycznego
    3. Konfiguracja klastra współdzielonego przez wielu programistów
      1. Przygotowywanie zasobów dla użytkownika
      2. Tworzenie i zabezpieczanie przestrzeni nazw
      3. Zarządzanie przestrzeniami nazw
      4. Usługi na poziomie klastra
    4. Umożliwienie pracy programistom
    5. Konfiguracja początkowa
    6. Umożliwienie aktywnego programowania
    7. Umożliwienie testowania i debugowania
    8. Najlepsze praktyki dotyczące konfiguracji środowiska programistycznego
    9. Podsumowanie
  4. Rozdział 3. Monitorowanie i rejestrowanie danych w Kubernetes
    1. Wskaźniki kontra dzienniki zdarzeń
    2. Techniki monitorowania
    3. Wzorce monitorowania
    4. Ogólne omówienie wskaźników Kubernetes
      1. cAdvisor
      2. Wskaźniki serwera
      3. kube-state-metrics
    5. Które wskaźniki powinny być monitorowane?
    6. Narzędzia do monitorowania
    7. Monitorowanie Kubernetes za pomocą narzędzia Prometheus
    8. Ogólne omówienie rejestrowania danych
    9. Narzędzia przeznaczone do rejestrowania danych
    10. Rejestrowanie danych za pomocą stosu EFK
    11. Ostrzeganie
    12. Najlepsze praktyki dotyczące monitorowania, rejestrowania danych i ostrzegania
      1. Monitorowanie
      2. Rejestrowanie danych
      3. Ostrzeganie
    13. Podsumowanie
  5. Rozdział 4. Konfiguracja, dane poufne i RBAC
    1. Konfiguracja za pomocą zasobu ConfigMap i danych poufnych
      1. ConfigMap
      2. Dane poufne
    2. Najlepsze praktyki dotyczące API zasobu ConfigMap i danych poufnych
      1. Najlepsze praktyki dotyczące danych poufnych
    3. RBAC
      1. Krótkie wprowadzenie do mechanizmu RBAC
        1. Podmiot
        2. Reguła
        3. Rola
        4. Zasób RoleBinding
      2. Najlepsze praktyki dotyczące mechanizmu RBAC
    4. Podsumowanie
  6. Rozdział 5. Ciągła integracja, testowanie i ciągłe wdrażanie
    1. System kontroli wersji
    2. Ciągła integracja
    3. Testowanie
    4. Kompilacja kontenera
    5. Oznaczanie tagiem obrazu kontenera
    6. Ciągłe wdrażanie
    7. Strategie wdrażania
    8. Testowanie w produkcji
    9. Stosowanie inżynierii chaosu i przygotowania
      1. Konfiguracja ciągłej integracji
      2. Konfiguracja ciągłego wdrażania
      3. Przeprowadzanie operacji uaktualnienia
      4. Prosty eksperyment z inżynierią chaosu
    10. Najlepsze praktyki dotyczące technik ciągłej integracji i ciągłego wdrażania
    11. Podsumowanie
  7. Rozdział 6. Wersjonowanie, wydawanie i wdrażanie aplikacji
    1. Wersjonowanie aplikacji
    2. Wydania aplikacji
    3. Wdrożenia aplikacji
    4. Połączenie wszystkiego w całość
      1. Najlepsze praktyki dotyczące wersjonowania, wydawania i wycofywania wdrożeń
    5. Podsumowanie
  8. Rozdział 7. Rozpowszechnianie aplikacji na świecie i jej wersje robocze
    1. Rozpowszechnianie obrazu aplikacji
    2. Parametryzacja wdrożenia
    3. Mechanizm równoważenia obciążenia związanego z ruchem sieciowym w globalnie wdrożonej aplikacji
    4. Niezawodne wydawanie oprogramowania udostępnianego globalnie
      1. Weryfikacja przed wydaniem oprogramowania
      2. Region kanarkowy
      3. Identyfikacja typów regionów
      4. Przygotowywanie wdrożenia globalnego
    5. Gdy coś pójdzie nie tak
    6. Najlepsze praktyki dotyczące globalnego wdrożenia aplikacji
    7. Podsumowanie
  9. Rozdział 8. Zarządzanie zasobami
    1. Zarządca procesów w Kubernetes
      1. Predykaty
      2. Priorytety
    2. Zaawansowane techniki stosowane przez zarządcę procesów
      1. Podobieństwo i brak podobieństwa podów
      2. nodeSelector
      3. Wartość taint i tolerancje
    3. Zarządzanie zasobami poda
      1. Żądanie zasobu
      2. Ograniczenia zasobów i jakość usługi poda
      3. PodDisruptionBudget
        1. Dostępność minimalna
        2. Dostępne maksimum
      4. Zarządzanie zasobami za pomocą przestrzeni nazw
      5. ResourceQuota
      6. LimitRange
      7. Skalowanie klastra
        1. Skalowanie ręczne
        2. Skalowanie automatyczne
      8. Skalowanie aplikacji
      9. Skalowanie za pomocą HPA
      10. HPA ze wskaźnikami niestandardowymi
      11. Vertical Pod Autoscaler
    4. Najlepsze praktyki dotyczące zarządzania zasobami
    5. Podsumowanie
  10. Rozdział 9. Sieć, bezpieczeństwo sieci i architektura Service Mesh
    1. Reguły działania sieci w Kubernetes
    2. Wtyczki sieci
      1. Kubenet
      2. Najlepsze praktyki dotyczące pracy z Kubenet
      3. Wtyczka zgodna ze specyfikacją CNI
      4. Najlepsze praktyki dotyczące pracy z wtyczkami zgodnymi ze specyfikacją CNI
    3. Usługi w Kubernetes
      1. Typ usługi ClusterIP
      2. Typ usługi NodePort
      3. Typ usługi ExternalName
      4. Typ usługi LoadBalancer
      5. Ingress i kontrolery Ingress
      6. Najlepsze praktyki dotyczące usług i kontrolerów Ingress
    4. Polityka zapewnienia bezpieczeństwa sieci
      1. Najlepsze praktyki dotyczące polityki sieci
    5. Architektura Service Mesh
      1. Najlepsze praktyki dotyczące architektury Service Mesh
    6. Podsumowanie
  11. Rozdział 10. Bezpieczeństwo poda i kontenera
    1. API PodSecurityPolicy
      1. Włączenie zasobu PodSecurityPolicy
      2. Anatomia zasobu PodSecurityPolicy
      3. Wyzwania związane z zasobem PodSecurityPolicy
        1. Rozsądne polityki domyślne
        2. Wiele mozolnej pracy
        3. Czy programiści są zainteresowani poznawaniem zasobu PodSecurityPolicy?
        4. Debugowanie jest uciążliwe
        5. Czy opierasz się na komponentach, które są poza Twoją kontrolą?
      4. Najlepsze praktyki dotyczące zasobu PodSecurityPolicy
      5. Następne kroki związane z zasobem PodSecurityPolicy
    2. Izolacja zadania i API RuntimeClass
      1. Używanie API RuntimeClass
      2. Implementacje środowiska uruchomieniowego
      3. Najlepsze praktyki dotyczące izolacji zadań i API RuntimeClass
    3. Pozostałe rozważania dotyczące zapewnienia bezpieczeństwa poda i kontenera
      1. Kontrolery dopuszczenia
      2. Narzędzia do wykrywania włamań i anomalii
    4. Podsumowanie
  12. Rozdział 11. Polityka i zarządzanie klastrem
    1. Dlaczego polityka i zarządzanie są ważne?
    2. Co odróżnia tę politykę od innych?
    3. Silnik polityki natywnej chmury
    4. Wprowadzenie do narzędzia Gatekeeper
      1. Przykładowe polityki
      2. Terminologia stosowana podczas pracy z Gatekeeper
        1. Ograniczenie
        2. Rego
        3. Szablon ograniczenia
      3. Definiowanie szablonu ograniczenia
      4. Definiowanie ograniczenia
      5. Replikacja danych
      6. UX
    5. Audyt
      1. Poznanie narzędzia Gatekeeper
      2. Następne kroki podczas pracy z narzędziem Gatekeeper
    6. Najlepsze praktyki dotyczące polityki i zarządzania
    7. Podsumowanie
  13. Rozdział 12. Zarządzanie wieloma klastrami
    1. Do czego potrzebujesz wielu klastrów?
    2. Kwestie do rozważenia podczas projektowania architektury składającej się z wielu klastrów
    3. Zarządzanie wieloma wdrożeniami klastrów
      1. Wzorce wdrażania i zarządzania
    4. Podejście GitOps w zakresie zarządzania klastrami
    5. Narzędzia przeznaczone do zarządzania wieloma klastrami
    6. Federacja Kubernetes
    7. Najlepsze praktyki dotyczące zarządzania wieloma klastrami
    8. Podsumowanie
  14. Rozdział 13. Integracja usług zewnętrznych z Kubernetes
    1. Importowanie usług do Kubernetes
      1. Pozbawiona selektora usługa dla stabilnego adresu IP
      2. Oparte na rekordzie CNAME usługi dla stabilnych nazw DNS
      3. Podejście oparte na aktywnym kontrolerze
    2. Eksportowanie usług z Kubernetes
      1. Eksportowanie usług za pomocą wewnętrznych mechanizmów równoważenia obciążenia
      2. Eksportowanie usług za pomocą usługi opartej na NodePort
      3. Integracja komputerów zewnętrznych z Kubernetes
    3. Współdzielenie usług między Kubernetes
    4. Narzędzia opracowane przez podmioty zewnętrzne
    5. Najlepsze praktyki dotyczące nawiązywania połączeń między klastrami a usługami zewnętrznymi
    6. Podsumowanie
  15. Rozdział 14. Uczenie maszynowe w Kubernetes
    1. Dlaczego Kubernetes doskonale sprawdza się w połączeniu z uczeniem maszynowym?
    2. Sposób pracy z zadaniami uczenia głębokiego
    3. Uczenie maszynowe dla administratorów klastra Kubernetes
      1. Trenowanie modelu w Kubernetes
        1. Wytrenowanie pierwszego modelu w Kubernetes
      2. Trenowanie rozproszone w Kubernetes
      3. Ograniczenia dotyczące zasobów
      4. Sprzęt specjalizowany
        1. Planowanie zasobów
      5. Biblioteki, sterowniki i moduły jądra
      6. Pamięć masowa
        1. Przechowywanie zbioru danych i jego rozproszenie między węzły robocze podczas trenowania modelu
        2. Punkty kontrolne i zapisywanie modeli
      7. Sieć
      8. Protokoły specjalizowane
    4. Obawy użytkowników zajmujących się analizą danych
    5. Najlepsze praktyki dotyczące wykonywania w Kubernetes zadań związanych z uczeniem maszynowym
    6. Podsumowanie
  16. Rozdział 15. Tworzenie wzorców aplikacji wysokiego poziomu na podstawie Kubernetes
    1. Podejścia w zakresie tworzenia abstrakcji wysokiego poziomu
    2. Rozszerzanie Kubernetes
      1. Rozszerzanie klastrów Kubernetes
      2. Wrażenia użytkownika podczas rozszerzania Kubernetes
    3. Rozważania projektowe podczas budowania platformy
      1. Obsługa eksportowania do obrazu kontenera
      2. Obsługa istniejących mechanizmów dla usług i wykrywania usług
    4. Najlepsze praktyki dotyczące tworzenia platform dla aplikacji
    5. Podsumowanie
  17. Rozdział 16. Zarządzanie informacjami o stanie i aplikacjami wykorzystującymi te dane
    1. Woluminy i punkty montowania
      1. Najlepsze praktyki dotyczące woluminów
    2. Pamięć masowa w Kubernetes
      1. API PersistentVolume
      2. API PersistentVolumeClaims
      3. Klasy pamięci masowej
        1. Interfejs pamięci masowej kontenera i FlexVolume
      4. Najlepsze praktyki dotyczące pamięci masowej w Kubernetes
    3. Aplikacje obsługujące informacje o stanie
      1. Zasób StatefulSet
      2. Operatory
      3. Najlepsze praktyki dotyczące zasobu StatefulSet i operatorów
    4. Podsumowanie
  18. Rozdział 17. Sterowanie dopuszczeniem i autoryzacja
    1. Sterowanie dopuszczeniem
      1. Czym jest kontroler dopuszczenia?
      2. Typy kontrolerów dopuszczenia
      3. Konfiguracja zaczepu sieciowego dopuszczenia
      4. Najlepsze praktyki dotyczące sterowania dopuszczeniem
    2. Autoryzacja
      1. Moduły autoryzacji
        1. ABAC
        2. RBAC
        3. Webhook
      2. Najlepsze praktyki dotyczące autoryzacji
    3. Podsumowanie
  19. Rozdział 18. Zakończenie
    1. O autorze
    2. Kolofon

Product information

  • Title: Najlepsze praktyki w Kubernetes
  • Author(s): Lachlan Evenson Eddie Villalba Brendan Burns Dave Strebel
  • Release date: December 2020
  • Publisher(s): Helion
  • ISBN: 9788328372320