Kubernetes

Book description

To książka przeznaczona dla programistów, którzy chcą maksymalnie wykorzystać możliwości Kubernetesa, również poprzez pisanie własnych zasobów. W praktyczny sposób pokazuje, jak rozwijać natywne, działające w chmurze aplikacje dla Kubernetesa. Wyjaśnia, w jaki sposób działa biblioteka API client-go i jak należy budować zasoby niestandardowe. Znalazło się tu obszerne i szczegółowe omówienie interfejsu programowania i działania platformy Kubernetes, a także pisania stabilnego oprogramowania w języku Go. Nie zabrakło szeregu wskazówek dotyczących samego pisania kodu oraz przeprowadzania testów. Dużo uwagi poświęcono niestandardowym zasobom, kontrolerom, webhookom i niestandardowym serwerom API oraz wzorcom rozszerzania Kubernetesa.

Table of contents

  1. Opinie na temat książki Kubernetes. Tworzenie natywnych aplikacji działających w chmurze
  2. Przedmowa
    1. Dla kogo przeznaczona jest ta książka?
    2. Po co napisaliśmy tę książkę?
    3. Ekosystem
    4. Technologie, które powinieneś znać
    5. Konwencje stosowane w tej książce
    6. Korzystanie z przykładowego kodu
    7. Podziękowania
  3. Rozdział 1. Wprowadzenie
    1. Czym jest programowanie dla Kubernetesa?
    2. Przykład wprowadzający
    3. Wzorce rozszerzania
    4. Kontrolery i operatory
      1. Pętla sterowania
      2. Zdarzenia
      3. Wyzwalacze sterowane zmianami i sterowane poziomem
      4. Modyfikowanie świata zewnętrznego lub obiektów w klastrze
      5. Współbieżność optymistyczna
      6. Operatory
    5. Podsumowanie
  4. Rozdział 2. Podstawy API Kubernetesa
    1. Serwer API
      1. Interfejs HTTP serwera API
      2. Terminologia związana z API
      3. Wersjonowanie API w Kubernetesie
      4. Deklaratywne zarządzanie stanem
    2. Używanie API w wierszu poleceń
    3. W jaki sposób serwer API przetwarza żądania?
    4. Podsumowanie
  5. Rozdział 3. Podstawy klienta client-go
    1. Repozytoria
      1. Biblioteka klienta
      2. Typy w API Kubernetesa
      3. Repozytorium API Machinery
      4. Tworzenie i używanie klientów
      5. Wersjonowanie i kompatybilność
      6. Wersje API i gwarancje kompatybilności
    2. Obiekty Kubernetesa w Go
      1. TypeMeta
      2. ObjectMeta
      3. Sekcje spec i status
    3. Zbiory klientów
      1. Podzasoby status — UpdateStatus
      2. Wyświetlanie i usuwanie obiektów
      3. Czujki
      4. Rozszerzanie klientów
      5. Opcje klientów
    4. Informatory i buforowanie
      1. Kolejka zadań
    5. Repozytorium API Machinery — szczegóły
      1. Rodzaje
      2. Zasoby
      3. Odwzorowania REST
      4. Schemat
    6. Vendoring
      1. glide
      2. dep
      3. Moduły języka Go
    7. Podsumowanie
  6. Rozdział 4. Używanie niestandardowych zasobów
    1. Wykrywanie informacji
    2. Definicje typów
    3. Zaawansowane mechanizmy niestandardowych zasobów
      1. Sprawdzanie poprawności niestandardowych zasobów
      2. Kategorie i krótkie nazwy
      3. Wyświetlane kolumny
      4. Podzasoby
        1. Podzasób status
        2. Podzasób scale
    4. Niestandardowe zasoby z perspektywy programisty
      1. Klient dynamiczny
      2. Klienty typizowane
        1. Budowa typu
        2. Struktura pakietów języka Go
        3. Klienty typizowane tworzone za pomocą generatora client-gen
      3. Klient controller-runtime z narzędzi Operator SDK i Kubebuilder
    5. Podsumowanie
  7. Rozdział 5. Automatyzowanie generowania kodu
    1. Po co stosować generatory kodu?
    2. Wywoływanie generatorów
    3. Kontrolowanie generatorów za pomocą znaczników
      1. Znaczniki globalne
      2. Znaczniki lokalne
      3. Znaczniki dla generatora deepcopy-gen
      4. runtime.Object i DeepCopyObject
      5. Znaczniki dla generatora client-gen
      6. Generatory informer-gen i lister-gen
    4. Podsumowanie
  8. Rozdział 6. Narzędzia służące do tworzenia operatorów
    1. Czynności wstępne
    2. Wzorowanie się na projekcie sample-controller
      1. Przygotowania
      2. Logika biznesowa
    3. Kubebuilder
      1. Przygotowania
      2. Logika biznesowa
    4. Operator SDK
      1. Przygotowania
      2. Logika biznesowa
    5. Inne podejścia
    6. Wnioski i przyszłe kierunki rozwoju
    7. Podsumowanie
  9. Rozdział 7. Udostępnianie kontrolerów i operatorów
    1. Zarządzanie cyklem życia i pakowanie
      1. Pakowanie — trudności
      2. Helm
      3. Kustomize
      4. Inne techniki pakowania kodu
      5. Najlepsze praktyki z obszaru pakowania kodu
      6. Zarządzanie cyklem życia
    2. Instalacje gotowe do użytku w środowisku produkcyjnym
      1. Odpowiednie uprawnienia
      2. Zautomatyzowany proces budowania i testowania
      3. Niestandardowe kontrolery i obserwowalność
        1. Rejestrowanie zdarzeń
        2. Monitorowanie, instrumentacja i audyty
    3. Podsumowanie
  10. Rozdział 8. Niestandardowe serwery API
    1. Scenariusze stosowania niestandardowych serwerów API
    2. Przykład — pizzeria
    3. Architektura — agregowanie
      1. Usługi API
      2. Wewnętrzna struktura niestandardowego serwera API
      3. Delegowane uwierzytelnianie i obsługa zaufania
      4. Delegowana autoryzacja
    4. Pisanie niestandardowych serwerów API
      1. Wzorzec opcji i konfiguracji oraz szablonowy kod potrzebny do uruchomienia serwera
      2. Pierwsze uruchomienie
      3. Typy wewnętrzne i konwersja
      4. Pisanie typów API
      5. Konwersje
      6. Ustawianie wartości domyślnych
      7. Testowanie konwersji powrotnych
      8. Sprawdzanie poprawności
      9. Rejestr i strategia
        1. Rejestr generyczny
        2. Strategia
        3. Podłączanie strategii do rejestru generycznego
      10. Instalowanie API
      11. Kontrola dostępu
        1. Implementacja
        2. Rejestrowanie
        3. Podłączanie zasobów
    5. Instalowanie niestandardowych serwerów API
      1. Manifesty instalacji
      2. Konfigurowanie systemu RBAC
      3. Uruchamianie niestandardowego serwera API bez zabezpieczeń
      4. Certyfikaty i zaufanie
      5. Współdzielenie systemu etcd
    6. Podsumowanie
  11. Rozdział 9. Zaawansowane zasoby niestandardowe
    1. Wersjonowanie niestandardowych zasobów
      1. Poprawianie kodu do obsługi pizzerii
      2. Architektura webhooków konwersji
      3. Implementacja webhooka konwersji
      4. Przygotowywanie serwera HTTPS
      5. Instalowanie webhooka konwersji
      6. Konwersja w praktyce
    2. Webhooki kontroli dostępu
      1. Wymogi związane z kontrolą dostępu w przykładzie
      2. Architektura webhooków kontroli dostępu
      3. Rejestrowanie webhooków kontroli dostępu
      4. Implementowanie webhooka kontroli dostępu
      5. Webhook kontroli dostępu w praktyce
    3. Schematy strukturalne i przyszłość definicji CRD
      1. Schematy strukturalne
      2. Okrajanie a zachowywanie nieznanych pól
      3. Sterowanie okrajaniem
      4. IntOrString i RawExtension
      5. Wartości domyślne
    4. Podsumowanie
  12. Dodatek A. Materiały
    1. Ogólne
    2. Książki
    3. Samouczki i przykłady
    4. Artykuły
    5. Repozytoria
    6. O autorach
    7. Kolofon

Product information

  • Title: Kubernetes
  • Author(s): Stefan Schimanski
  • Release date: May 2020
  • Publisher(s): Helion
  • ISBN: 9788328364059