Kubernetes. Tworzenie natywnych aplikacji działających w chmurze - Helion
Tytuł oryginału: Programming Kubernetes: Developing Cloud-Native Applications
TÅ‚umaczenie: Tomasz Walczak
ISBN: 978-83-283-6405-9
stron: 256, Format: 168x237, okładka: miękka
Data wydania: 2020-05-26
Księgarnia: Helion
Cena książki: 54,90 zł
Mimo że w 2018 roku Kubernetes zyskaÅ‚ reputacjÄ™ standardowego narzÄ™dzia do zarzÄ…dzania kontenerami, wciąż należy traktować tÄ™ technologiÄ™ jako znajdujÄ…cÄ… siÄ™ w dość wczesnej fazie rozwoju. MożliwoÅ›ci tej platformy z czasem rosnÄ… i stajÄ… siÄ™ coraz ciekawsze. Standardowym dziaÅ‚aniem jest uruchamianie klastrów w Kubernetesie, jednak o wiele bardziej interesujÄ…ce wydaje siÄ™ samodzielne rozszerzanie tej platformy o wÅ‚asne kontrolery i rozbudowa API Kubernetesa w celu dostosowania do swoich wymagaÅ„. W przypadku niektórych zÅ‚ożonych projektów programowanie potrzebnych komponentów jest jedynym racjonalnym rozwiÄ…zaniem.
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.
W tej książce między innymi:
- zasady programowania dla Kubernetesa
- API Kubernetesa i client-go
- korzystanie z niestandardowych zasobów
- pisanie i udostÄ™pnianie operatorów
- tworzenie niestandardowych serwerów API
Kubernetes: wykorzystaj w pełni jego potencjał!
Osoby które kupowały "Kubernetes. Tworzenie natywnych aplikacji działających w chmurze", wybierały także:
- Superinteligencja. Scenariusze, strategie, zagro 66,67 zł, (14,00 zł -79%)
- Poradnik design thinking - czyli jak wykorzysta 48,28 zł, (14,00 zł -71%)
- Kosymulacja. Elastyczne projektowanie i symulacja wielodomenowa 38,39 zł, (11,90 zł -69%)
- F# 4.0 dla zaawansowanych. Wydanie IV 96,45 zł, (29,90 zł -69%)
- Systemy reaktywne. Wzorce projektowe i ich stosowanie 65,31 zł, (20,90 zł -68%)
Spis treści
Kubernetes. Tworzenie natywnych aplikacji działających w chmurze -- spis treści
Przedmowa 11
1. Wprowadzenie 15
- Czym jest programowanie dla Kubernetesa? 15
- Przykład wprowadzający 17
- Wzorce rozszerzania 18
- Kontrolery i operatory 19
- Pętla sterowania 19
- Zdarzenia 20
- Wyzwalacze sterowane zmianami i sterowane poziomem 22
- Modyfikowanie Å›wiata zewnÄ™trznego lub obiektów w klastrze 24
- WspóÅ‚bieżność optymistyczna 27
- Operatory 29
- Podsumowanie 30
2. Podstawy API Kubernetesa 33
- Serwer API 33
- Interfejs HTTP serwera API 34
- Terminologia zwiÄ…zana z API 35
- Wersjonowanie API w Kubernetesie 38
- Deklaratywne zarzÄ…dzanie stanem 39
- Używanie API w wierszu poleceń 39
- W jaki sposób serwer API przetwarza żądania? 43
- Podsumowanie 46
3. Podstawy klienta client-go 47
- Repozytoria 47
- Biblioteka klienta 47
- Typy w API Kubernetesa 49
- Repozytorium API Machinery 50
- Tworzenie i używanie klientów 50
- Wersjonowanie i kompatybilność 52
- Wersje API i gwarancje kompatybilności 55
- Obiekty Kubernetesa w Go 56
- TypeMeta 57
- ObjectMeta 60
- Sekcje spec i status 60
- Zbiory klientów 61
- Podzasoby status - UpdateStatus 63
- WyÅ›wietlanie i usuwanie obiektów 63
- Czujki 63
- Rozszerzanie klientów 64
- Opcje klientów 65
- Informatory i buforowanie 66
- Kolejka zadań 70
- Repozytorium API Machinery - szczegóÅ‚y 72
- Rodzaje 72
- Zasoby 72
- Odwzorowania REST 73
- Schemat 74
- Vendoring 75
- glide 76
- dep 76
- Moduły języka Go 77
- Podsumowanie 78
4. Używanie niestandardowych zasobów 79
- Wykrywanie informacji 81
- Definicje typów 82
- Zaawansowane mechanizmy niestandardowych zasobów 84
- Sprawdzanie poprawnoÅ›ci niestandardowych zasobów 84
- Kategorie i krótkie nazwy 86
- Wyświetlane kolumny 88
- Podzasoby 89
- Niestandardowe zasoby z perspektywy programisty 93
- Klient dynamiczny 93
- Klienty typizowane 95
- Klient controller-runtime z narzędzi Operator SDK i Kubebuilder 99
- Podsumowanie 101
5. Automatyzowanie generowania kodu 103
- Po co stosować generatory kodu? 103
- WywoÅ‚ywanie generatorów 103
- Kontrolowanie generatorów za pomocÄ… znaczników 105
- Znaczniki globalne 106
- Znaczniki lokalne 107
- Znaczniki dla generatora deepcopy-gen 108
- runtime.Object i DeepCopyObject 108
- Znaczniki dla generatora client-gen 109
- Generatory informer-gen i lister-gen 111
- Podsumowanie 111
6. NarzÄ™dzia sÅ‚użące do tworzenia operatorów 113
- Czynności wstępne 113
- Wzorowanie siÄ™ na projekcie sample-controller 114
- Przygotowania 114
- Logika biznesowa 115
- Kubebuilder 121
- Przygotowania 122
- Logika biznesowa 126
- Operator SDK 130
- Przygotowania 131
- Logika biznesowa 132
- Inne podejścia 135
- Wnioski i przyszłe kierunki rozwoju 136
- Podsumowanie 136
7. UdostÄ™pnianie kontrolerów i operatorów 137
- Zarządzanie cyklem życia i pakowanie 137
- Pakowanie - trudności 137
- Helm 138
- Kustomize 140
- Inne techniki pakowania kodu 142
- Najlepsze praktyki z obszaru pakowania kodu 143
- Zarządzanie cyklem życia 143
- Instalacje gotowe do użytku w środowisku produkcyjnym 144
- Odpowiednie uprawnienia 144
- Zautomatyzowany proces budowania i testowania 147
- Niestandardowe kontrolery i obserwowalność 148
- Podsumowanie 151
8. Niestandardowe serwery API 153
- Scenariusze stosowania niestandardowych serwerów API 153
- Przykład - pizzeria 155
- Architektura - agregowanie 156
- Usługi API 157
- Wewnętrzna struktura niestandardowego serwera API 160
- Delegowane uwierzytelnianie i obsługa zaufania 161
- Delegowana autoryzacja 162
- Pisanie niestandardowych serwerów API 164
- Wzorzec opcji i konfiguracji oraz szablonowy kod potrzebny do uruchomienia serwera 165
- Pierwsze uruchomienie 171
- Typy wewnętrzne i konwersja 172
- Pisanie typów API 175
- Konwersje 176
- Ustawianie wartości domyślnych 179
- Testowanie konwersji powrotnych 181
- Sprawdzanie poprawności 183
- Rejestr i strategia 185
- Instalowanie API 189
- Kontrola dostępu 192
- Instalowanie niestandardowych serwerów API 201
- Manifesty instalacji 202
- Konfigurowanie systemu RBAC 204
- Uruchamianie niestandardowego serwera API bez zabezpieczeń 205
- Certyfikaty i zaufanie 207
- WspóÅ‚dzielenie systemu etcd 209
- Podsumowanie 211
9. Zaawansowane zasoby niestandardowe 213
- Wersjonowanie niestandardowych zasobów 213
- Poprawianie kodu do obsługi pizzerii 214
- Architektura webhooków konwersji 216
- Implementacja webhooka konwersji 220
- Przygotowywanie serwera HTTPS 220
- Instalowanie webhooka konwersji 226
- Konwersja w praktyce 227
- Webhooki kontroli dostępu 229
- Wymogi związane z kontrolą dostępu w przykładzie 230
- Architektura webhooków kontroli dostÄ™pu 231
- Rejestrowanie webhooków kontroli dostÄ™pu 233
- Implementowanie webhooka kontroli dostępu 234
- Webhook kontroli dostępu w praktyce 239
- Schematy strukturalne i przyszłość definicji CRD 240
- Schematy strukturalne 240
- Okrajanie a zachowywanie nieznanych pól 242
- Sterowanie okrajaniem 243
- IntOrString i RawExtension 244
- Wartości domyślne 244
- Podsumowanie 246
A. Materiały 247