Michael Hausenblas, Stefan Schimanski kubernetes. tworzenie natywnych aplikacji działających w chmurze ebook.pdf

(30388 KB) Pobierz
Spis treści
Przedmowa .............................................................................................................. 11
1. Wprowadzenie .......................................................................................................... 15
Czym jest programowanie dla Kubernetesa?
Przykład wprowadzający
Wzorce rozszerzania
Kontrolery i operatory
Pętla sterowania
Zdarzenia
Wyzwalacze sterowane zmianami i sterowane poziomem
Modyfikowanie świata zewnętrznego lub obiektów w klastrze
Współbieżność optymistyczna
Operatory
Podsumowanie
15
17
18
19
19
20
22
24
27
29
30
2. Podstawy API Kubernetesa ........................................................................................ 33
Serwer API
Interfejs HTTP serwera API
Terminologia związana z API
Wersjonowanie API w Kubernetesie
Deklaratywne zarządzanie stanem
Używanie API w wierszu poleceń
W jaki sposób serwer API przetwarza żądania?
Podsumowanie
33
34
35
38
39
39
43
46
3. Podstawy klienta client-go ........................................................................................ 47
Repozytoria
Biblioteka klienta
Typy w API Kubernetesa
Repozytorium API Machinery
47
47
49
50
5
Kup książkę
Poleć książkę
Tworzenie i używanie klientów
Wersjonowanie i kompatybilność
Wersje API i gwarancje kompatybilności
Obiekty Kubernetesa w Go
TypeMeta
ObjectMeta
Sekcje spec i status
Zbiory klientów
Podzasoby status — UpdateStatus
Wyświetlanie i usuwanie obiektów
Czujki
Rozszerzanie klientów
Opcje klientów
Informatory i buforowanie
Kolejka zadań
Repozytorium API Machinery — szczegóły
Rodzaje
Zasoby
Odwzorowania REST
Schemat
Vendoring
glide
dep
Moduły języka Go
Podsumowanie
50
52
55
56
57
60
60
61
63
63
63
64
65
66
70
72
72
72
73
74
75
76
76
77
78
4. Używanie niestandardowych zasobów ....................................................................... 79
Wykrywanie informacji
Definicje typów
Zaawansowane mechanizmy niestandardowych zasobów
Sprawdzanie poprawności niestandardowych zasobów
Kategorie i krótkie nazwy
Wyświetlane kolumny
Podzasoby
Niestandardowe zasoby z perspektywy programisty
Klient dynamiczny
Klienty typizowane
Klient controller-runtime z narzędzi Operator SDK i Kubebuilder
Podsumowanie
81
82
84
84
86
88
89
93
93
95
99
101
6
Spis treści
Poleć książkę
Kup książkę
5. Automatyzowanie generowania kodu ......................................................................103
Po co stosować generatory kodu?
Wywoływanie generatorów
Kontrolowanie generatorów za pomocą znaczników
Znaczniki globalne
Znaczniki lokalne
Znaczniki dla generatora deepcopy-gen
runtime.Object i DeepCopyObject
Znaczniki dla generatora client-gen
Generatory informer-gen i lister-gen
Podsumowanie
103
103
105
106
107
108
108
109
111
111
6. Narzędzia służące do tworzenia operatorów .............................................................113
Czynności wstępne
Wzorowanie się na projekcie sample-controller
Przygotowania
Logika biznesowa
Kubebuilder
Przygotowania
Logika biznesowa
Operator SDK
Przygotowania
Logika biznesowa
Inne podejścia
Wnioski i przyszłe kierunki rozwoju
Podsumowanie
113
114
114
115
121
122
126
130
131
132
135
136
136
7. Udostępnianie kontrolerów i operatorów .................................................................137
Zarządzanie cyklem życia i pakowanie
Pakowanie — trudności
Helm
Kustomize
Inne techniki pakowania kodu
Najlepsze praktyki z obszaru pakowania kodu
Zarządzanie cyklem życia
Instalacje gotowe do użytku w środowisku produkcyjnym
Odpowiednie uprawnienia
Zautomatyzowany proces budowania i testowania
Niestandardowe kontrolery i obserwowalność
Podsumowanie
137
137
138
140
142
143
143
144
144
147
148
151
Spis treści
Kup książkę
7
Poleć książkę
8. Niestandardowe serwery API ................................................................................... 153
Scenariusze stosowania niestandardowych serwerów API
Przykład — pizzeria
Architektura — agregowanie
Usługi API
Wewnętrzna struktura niestandardowego serwera API
Delegowane uwierzytelnianie i obsługa zaufania
Delegowana autoryzacja
Pisanie niestandardowych serwerów API
Wzorzec opcji i konfiguracji oraz szablonowy kod
potrzebny do uruchomienia serwera
Pierwsze uruchomienie
Typy wewnętrzne i konwersja
Pisanie typów API
Konwersje
Ustawianie wartości domyślnych
Testowanie konwersji powrotnych
Sprawdzanie poprawności
Rejestr i strategia
Instalowanie API
Kontrola dostępu
Instalowanie niestandardowych serwerów API
Manifesty instalacji
Konfigurowanie systemu RBAC
Uruchamianie niestandardowego serwera API bez zabezpieczeń
Certyfikaty i zaufanie
Współdzielenie systemu etcd
Podsumowanie
153
155
156
157
160
161
162
164
165
171
172
175
176
179
181
183
185
189
192
201
202
204
205
207
209
211
9. Zaawansowane zasoby niestandardowe .................................................................. 213
Wersjonowanie niestandardowych zasobów
Poprawianie kodu do obsługi pizzerii
Architektura webhooków konwersji
Implementacja webhooka konwersji
Przygotowywanie serwera HTTPS
Instalowanie webhooka konwersji
Konwersja w praktyce
Webhooki kontroli dostępu
Wymogi związane z kontrolą dostępu w przykładzie
Architektura webhooków kontroli dostępu
Rejestrowanie webhooków kontroli dostępu
213
214
216
220
220
226
227
229
230
231
233
8
Spis treści
Poleć książkę
Kup książkę
Zgłoś jeśli naruszono regulamin