Kubernetes w akcji - Helion
ebook
Autor: Marko LukT艂umaczenie: Marek W
ISBN: 9788301217396
stron: 656, Format: ebook
Data wydania: 2021-03-25
Ksi臋garnia: Helion
Cena ksi膮偶ki: 77,40 z艂 (poprzednio: 129,00 z艂)
Oszcz臋dzasz: 40% (-51,60 z艂)
Tagi: Inne
Osoby kt贸re kupowa艂y "Kubernetes w akcji", wybiera艂y tak偶e:
- Windows Media Center. Domowe centrum rozrywki 66,67 z艂, (8,00 z艂 -88%)
- Przyw贸dztwo w 艣wiecie VUCA. Jak by膰 skutecznym liderem w niepewnym 艣rodowisku 58,64 z艂, (12,90 z艂 -78%)
- Mapa Agile & Scrum. Jak si 57,69 z艂, (15,00 z艂 -74%)
- Lean dla bystrzak贸w. Wydanie II 49,62 z艂, (12,90 z艂 -74%)
- Gra bez ko艅ca 47,78 z艂, (12,90 z艂 -73%)
Spis tre艣ci
Kubernetes w akcji eBook -- spis tre艣ci
- Ok艂adka
- Strona tytu艂owa
- Strona redakcyjna
- Spis tre艣ci
- przedmowa
- podzi臋kowania
- o聽ksi膮偶ce
- o聽autorze
- o聽ilustracji na ok艂adce
- Cz臋艣膰 I.聽Przegl膮d
- 1. Wprowadzenie do Kubernetes
- 1.1 Zapotrzebowanie na system taki jak Kubernetes
- 1.1.1 Przechodzenie od aplikacji monolitycznych do mikroserwis贸w
- 1.1.2 Zapewnianie sp贸jnego 艣rodowiska dla aplikacji
- 1.1.3 Przechodzenie do ci膮g艂ego dostarczania: DevOps oraz NoOps
- 1.2 Przedstawiamy technologie kontenerowe
- 1.2.1 Czym s膮 kontenery
- 1.2.2 Platforma kontener贸w Docker
- 1.3 Wprowadzenie do Kubernetes
- 1.3.1 Pochodzenie
- 1.3.2 Og贸lny obraz Kubernetes
- 1.3.3 Architektura klastra Kubernetes
- 1.3.4 Uruchamianie aplikacji w聽Kubernetes
- 1.3.5 Korzy艣ci z聽u偶ywania Kubernetes
- 1.4 Podsumowanie
- 1.1 Zapotrzebowanie na system taki jak Kubernetes
- 2. Pierwsze kroki z聽Dockerem i聽Kubernetes
- 2.1 Tworzenie, uruchamianie i聽udost臋pnianie obrazu kontenera
- 2.1.1 Instalowanie Dockera i聽uruchamianie powitalnego kontenera
- 2.1.2 Tworzenie trywialnej aplikacji Node.js
- 2.1.3 Tworzenie Dockerfile dla obrazu
- 2.1.4 Budowanie obrazu kontenera
- 2.1.5 Uruchamianie obrazu kontenera
- 2.1.6 Badanie wn臋trza uruchomionego kontenera
- 2.1.7 Zatrzymywanie i聽usuwanie kontenera
- 2.1.8 Wypychanie obrazu do rejestru obraz贸w
- 2.2 Konfigurowanie klastra Kubernetes
- 2.2.1 Uruchamianie lokalnego jednow臋z艂owego klastra Kubernetes przy u偶yciu Minikube
- 2.2.2 Korzystanie z聽hostowanego klastra Kubernetes przy u偶yciu Google Kubernetes Engine
- 2.2.3 Konfigurowanie aliasu i聽dope艂niania polece艅 dla kubectl
- 2.3 Uruchamianie naszej pierwszej aplikacji w聽Kubernetes
- 2.3.1 Wdra偶anie naszej aplikacji Node.js
- 2.3.2 Uzyskiwanie dost臋pu do aplikacji
- 2.3.3 Logiczne cz臋艣ci naszego systemu
- 2.3.4 Skalowanie aplikacji w聽poziomie
- 2.3.5 Badanie, na kt贸rych w臋z艂ach dzia艂a aplikacja
- 2.3.6 Przedstawiamy tablic臋 kontroln膮 Kubernetes
- 2.4 Podsumowanie
- 2.1 Tworzenie, uruchamianie i聽udost臋pnianie obrazu kontenera
- 1. Wprowadzenie do Kubernetes
- Cz臋艣膰 II. Podstawowe koncepcje
- 3. Pody: uruchamianie kontener贸w w聽Kubernetes
- 3.1 Przedstawiamy pody
- 3.1.1 Dlaczego potrzebujemy pod贸w
- 3.1.2 Istota pod贸w
- 3.1.3 W艂a艣ciwe porz膮dkowanie kontener贸w mi臋dzy pody
- 3.2 Tworzenie pod贸w na podstawie deskryptor贸w YAML lub JSON
- 3.2.1 Badanie deskryptora YAML istniej膮cego podu
- 3.2.2 Tworzenie prostego deskryptora YAML dla podu
- 3.2.3 Wykorzystanie kubectl create do utworzenia podu
- 3.2.4 Przegl膮danie dziennik贸w aplikacji
- 3.2.5 Wysy艂anie 偶膮da艅 do podu
- 3.3 Porz膮dkowanie pod贸w przy u偶yciu etykiet
- 3.3.1 Przedstawiamy etykiety
- 3.3.2 Specyfikowanie etykiet przy tworzeniu podu
- 3.3.3 Modyfikowanie etykiet istniej膮cych pod贸w
- 3.4 Wyliczanie podzbior贸w pod贸w przy u偶yciu selektor贸w etykiet
- 3.4.1 Wyliczanie pod贸w przy u偶yciu selektora etykiet
- 3.4.2 Stosowanie wielu warunk贸w w聽selektorze etykiet
- 3.5 U偶ywanie etykiet i聽selektor贸w do ograniczania rozmieszczania pod贸w
- 3.5.1 U偶ywanie etykiet do kategoryzowania w臋z艂贸w roboczych
- 3.5.2 Przypisywanie pod贸w do okre艣lonych w臋z艂贸w
- 3.5.3 Umieszczanie podu na jednym, okre艣lonym w臋藕le
- 3.6 Opisywanie pod贸w
- 3.6.1 Wyszukiwanie adnotacji obiekt贸w
- 3.6.2 Dodawanie i聽modyfikowanie adnotacji
- 3.7 Wykorzystanie przestrzeni nazw do grupowania zasob贸w
- 3.7.1 Dlaczego przestrzenie nazw s膮 potrzebne
- 3.7.2 Odkrywanie innych przestrzeni nazw i聽ich pod贸w
- 3.7.3 Tworzenie przestrzeni nazw
- 3.7.4 Zarz膮dzanie obiektami w聽innych przestrzeniach nazw
- 3.7.5 Izolacja zapewniana przez przestrzenie nazw
- 3.8 Zatrzymywanie i聽usuwanie pod贸w
- 3.8.1 Usuwanie podu wed艂ug nazwy
- 3.8.2 Usuwanie pod贸w przy u偶yciu selektor贸w etykiet
- 3.8.3 Usuwanie pod贸w przez usuni臋cie ca艂ej przestrzeni nazw
- 3.8.4 Usuwanie wszystkich pod贸w w聽przestrzeni nazw, ale z聽zachowaniem tej przestrzeni nazw
- 3.8.5 Usuwanie (niemal) wszystkich zasob贸w w聽przestrzeni nazw
- 3.9 Podsumowanie
- 3.1 Przedstawiamy pody
- 4. Replikacja i聽inne kontrolery: wdra偶anie zarz膮dzanych pod贸w
- 4.1 Utrzymywanie dobrej kondycji pod贸w
- 4.1.1 Wprowadzenie do sond 偶ywotno艣ci
- 4.1.2 Tworzenie sondy 偶ywotno艣ci opartej na HTTP
- 4.1.3 Obserwowanie sondy 偶ywotno艣ci w聽dzia艂aniu
- 4.1.4 Konfigurowanie dodatkowych w艂a艣ciwo艣ci sondy 偶ywotno艣ci
- 4.1.5 Tworzenie skutecznych sond 偶ywotno艣ci
- 4.2 Przedstawiamy kontrolery replikacji
- 4.2.1 Dzia艂anie kontrolera replikacji
- 4.2.2 Tworzenie kontrolera replikacji
- 4.2.3 Obserwowanie kontrolera replikacji w聽dzia艂aniu
- 4.2.4 Przenoszenie pod贸w do zakresu i聽poza zakres kontrolera replikacji
- 4.2.5 Zmienianie szablonu podu
- 4.2.6 Skalowanie pod贸w w聽poziomie
- 4.2.7 Usuwanie kontrolera replikacji
- 4.3 U偶ywanie obiekt贸w ReplicaSet zamiast ReplicationController
- 4.3.1 Por贸wnanie ReplicaSet z聽ReplicationController
- 4.3.2 Definiowanie ReplicaSet
- 4.3.3 Tworzenie i聽badanie obiektu ReplicaSet
- 4.3.4 Korzystanie z聽bardziej ekspresyjnych selektor贸w etykiet w聽ReplicaSet
- 4.3.5 Podsumowanie ReplicaSet
- 4.4 Uruchamianie dok艂adnie jednego podu w聽ka偶dym w臋藕le przy u偶yciu DaemonSet
- 4.4.1 Wykorzystanie DaemonSet do uruchomienia podu w聽ka偶dym w臋藕le
- 4.4.2 U偶ywanie DaemonSet do uruchamiania pod贸w tylko na wybranych w臋z艂ach
- 4.5 Uruchamianie pod贸w, kt贸re wykonuj膮 pojedyncze, kompletne zadanie
- 4.5.1 Przedstawiamy zas贸b Job
- 4.5.2 Definiowanie zasobu Job
- 4.5.3 Obserwowanie uruchamiania podu przez obiekt Job
- 4.5.4 Uruchamianie wielu wyst膮pie艅 podu w聽zasobie Job
- 4.5.5 Ograniczanie czasu, w聽kt贸rym pod obiektu Job musi uko艅czy膰 prac臋
- 4.6 Planowanie okresowego wykonywania zadania lub jeden raz w聽przysz艂o艣ci
- 4.6.1 Tworzenie obiektu CronJob
- 4.6.2 Jak uruchamiane s膮 zaplanowane zadania
- 4.7 Podsumowanie
- 4.1 Utrzymywanie dobrej kondycji pod贸w
- 5. Us艂ugi: umo偶liwianie odkrywania i聽komunikowania si臋 klient贸w z聽podami
- 5.1 Wprowadzenie do us艂ug
- 5.1.1 Tworzenie us艂ug
- 5.1.2 Odkrywanie us艂ug
- 5.2 艁膮czenie si臋 z聽us艂ugami dzia艂aj膮cymi poza klastrem
- 5.2.1 Wprowadzenie do punkt贸w ko艅cowych us艂ug
- 5.2.2 R臋czne konfigurowanie punkt贸w ko艅cowych us艂ugi
- 5.2.3 Tworzenie aliasu dla zewn臋trznej us艂ugi
- 5.3 Eksponowanie us艂ug klientom zewn臋trznym
- 5.3.1 Korzystanie z聽us艂ugi typu NodePort
- 5.3.2 Eksponowanie us艂ugi przez zewn臋trzny modu艂 r贸wnowa偶enia obci膮偶e艅
- 5.3.3 Osobliwo艣ci po艂膮cze艅 zewn臋trznych
- 5.4 Zewn臋trzne eksponowanie us艂ug przy u偶yciu zasobu Ingress
- 5.4.1 Tworzenie zasobu Ingress
- 5.4.2 Uzyskiwanie dost臋pu do us艂ugi za po艣rednictwem Ingress
- 5.4.3 Eksponowanie wielu us艂ug przez ten sam obiekt Ingress
- 5.4.4 Konfigurowanie obs艂ugi ruchu TLS przez Ingress
- 5.5 Sygnalizowanie, kiedy pod jest gotowy do akceptowania po艂膮cze艅
- 5.5.1 Przedstawiamy sondy gotowo艣ci
- 5.5.2 Dodawanie sondy gotowo艣ci do podu
- 5.5.3 Co powinny robi膰 rzeczywiste sondy gotowo艣ci
- 5.6 U偶ywanie us艂ugi headless w聽celu odkrywania indywidualnych pod贸w
- 5.6.1 Tworzenie us艂ugi headless
- 5.6.2 Odkrywanie pod贸w przy u偶yciu DNS
- 5.6.3 Odkrywanie wszystkich pod贸w 艂膮cznie z聽tymi, kt贸re nie s膮 gotowe
- 5.7 Rozwi膮zywanie problem贸w z聽us艂ugami
- 5.8 Podsumowanie
- 5.1 Wprowadzenie do us艂ug
- 6. Woluminy: do艂膮czanie do kontener贸w dyskowej pami臋ci masowej
- 6.1 Przedstawiamy woluminy
- 6.1.1 Obja艣nianie wolumin贸w na przyk艂adzie
- 6.1.2 Przedstawiamy dost臋pne typy wolumin贸w
- 6.2 U偶ywanie wolumin贸w do wsp贸艂u偶ytkowania danych mi臋dzy kontenerami
- 6.2.1 Korzystanie z聽woluminu emptyDir
- 6.2.2 Wykorzystanie repozytorium Git jako punktu wyj艣cia dla naszego woluminu
- 6.3 Uzyskiwanie dost臋pu do plik贸w w聽systemie plik贸w w臋z艂a roboczego
- 6.3.1 Przedstawiamy wolumin hostPath
- 6.3.2 Badanie pod贸w systemowych u偶ywaj膮cych wolumin贸w hostPath
- 6.4 Korzystanie z聽trwa艂ej pami臋ci masowej
- 6.4.1 Korzystanie z聽GCE Persistent Disk w聽woluminie podu
- 6.4.2 Korzystanie z聽innych typ贸w wolumin贸w z聽le偶膮c膮 w聽tle trwa艂膮 pami臋ci膮 masow膮
- 6.5 Oddzielanie pod贸w od le偶膮cej w聽tle technologii pami臋ci masowej
- 6.5.1 Wprowadzenie do obiekt贸w PersistentVolume i聽PersistentVolumeClaim
- 6.5.2 Tworzenie zasobu PersistentVolume
- 6.5.3 呕膮danie PersistentVolume przez utworzenie PersistentVolumeClaim
- 6.5.4 U偶ywanie obiektu PersistentVolumeClaim w聽podzie
- 6.5.5 Zalety korzystania z聽obiekt贸w PersistentVolume i聽偶膮da艅
- 6.5.6 Recykling obiekt贸w PersistentVolume
- 6.6 Dynamiczne wyposa偶anie obiekt贸w PersistentVolume
- 6.6.1 Definiowanie dost臋pnych typ贸w pami臋ci masowej przez zasoby StorageClass
- 6.6.2 呕膮danie klasy magazynowej w聽PersistentVolumeClaim
- 6.6.3 Dynamiczne wyposa偶anie bez specyfikowania klasy magazynowej
- 6.7 Podsumowanie
- 6.1 Przedstawiamy woluminy
- 7. Obiekty ConfigMap oraz Secret: konfigurowanie aplikacji
- 7.1 Konfigurowanie skontenerowanych aplikacji
- 7.2 Przekazywanie do kontener贸w argument贸w wiersza polecenia
- 7.2.1 Definiowanie polecenia i聽argument贸w w聽Dockerze
- 7.2.2 Nadpisywanie polecenia i聽argument贸w w聽Kubernetes
- 7.3 Ustawianie zmiennych 艣rodowiskowych dla kontenera
- 7.3.1 Specyfikowanie zmiennych 艣rodowiskowych w聽definicji kontenera
- 7.3.2 Odwo艂ywanie si臋 do innych zmiennych 艣rodowiskowych w聽warto艣ci zmiennej
- 7.3.3 Wady kodowania zmiennych 艣rodowiskowych na sztywno
- 7.4 Oddzielanie konfiguracji przy u偶yciu ConfigMap
- 7.4.1 Przedstawiamy obiekty ConfigMap
- 7.4.2 Tworzenie ConfigMap
- 7.4.3 Przekazywanie wpisu ConfigMap do kontenera jako zmiennej 艣rodowiskowej
- 7.4.4 Przekazywanie naraz wszystkich wpis贸w w聽obiekcie ConfigMap jako zmiennych 艣rodowiskowych
- 7.4.5 Przekazywanie wpisu ConfigMap jako argumentu wiersza polecenia
- 7.4.6 U偶ywanie woluminu configMap do eksponowania wpis贸w ConfigMap jako plik贸w
- 7.4.7 Aktualizowanie konfiguracji aplikacji bez konieczno艣ci jej restartowania
- 7.5 Wykorzystanie obiekt贸w Secret do przekazywania poufnych danych do kontener贸w
- 7.5.1 Przedstawiamy obiekty Secret
- 7.5.2 Przedstawiamy sekret domy艣lnego tokenu
- 7.5.3 Tworzenie sekretu
- 7.5.4 Por贸wnanie obiekt贸w ConfigMap i聽Secret
- 7.5.5 Korzystanie z聽sekretu w聽podzie
- 7.5.6 Jak obrazy pobieraj膮 sekrety
- 7.6 Podsumowanie
- 8. Dost臋p z聽aplikacji do metadanych podu i聽innych zasob贸w
- 8.1 Przekazywanie metadanych za po艣rednictwem Downward API
- 8.1.1 Dost臋pne metadane
- 8.1.2 Eksponowanie metadanych za po艣rednictwem zmiennych 艣rodowiskowych
- 8.1.3 Przekazywanie metadanych przez pliki w聽woluminie downwardAPI
- 8.2 Komunikowanie si臋 z聽serwerem API Kubernetes
- 8.2.1 Poznawanie API typu REST w聽Kubernetes
- 8.2.2 Komunikowanie si臋 z聽serwerem API z聽wn臋trza podu
- 8.2.3 Upraszczanie komunikacji z聽serwerem API za pomoc膮 kontener贸w ambasador贸w
- 8.2.4 Wykorzystanie bibliotek klienckich w聽celu komunikacji z聽serwerem API
- 8.3 Podsumowanie
- 8.1 Przekazywanie metadanych za po艣rednictwem Downward API
- 9. Obiekty Deployment: deklaratywne aktualizowanie aplikacji
- 9.1 Aktualizowanie aplikacji dzia艂aj膮cych w聽podach
- 9.1.1 Usuwanie starych pod贸w i聽zast臋powanie ich nowymi
- 9.1.2 Wystartowanie nowych pod贸w, a聽nast臋pnie usuwanie starych
- 9.2 Wykonywanie automatycznej aktualizacji krocz膮cej przy u偶yciu kontrolera replikacji
- 9.2.1 Uruchamianie wst臋pnej wersji aplikacji
- 9.2.2 Wykonywanie aktualizacji krocz膮cej przy u偶yciu kubectl
- 9.2.3 Dlaczego kubectl rolling-update jest ju偶 przestarza艂e
- 9.3 Korzystanie z聽obiekt贸w Deployment w聽celu deklaratywnego aktualizowania aplikacji
- 9.3.1 Tworzenie zasobu Deployment
- 9.3.2 Aktualizowanie zasobu Deployment
- 9.3.3 Wycofywanie wdro偶enia
- 9.3.4 Kontrolowanie tempa aktualizacji
- 9.3.5 Wstrzymywanie procesu aktualizacji
- 9.3.6 Blokowanie rozpowszechniania wadliwych wersji
- 9.4 Podsumowanie
- 9.1 Aktualizowanie aplikacji dzia艂aj膮cych w聽podach
- 10. Zasoby StatefulSet: wdra偶anie replikowanych aplikacji stanowych
- 10.1 Replikowanie pod贸w stanowych
- 10.1.1 Uruchamianie wielu replik, ka偶dej z聽oddzieln膮 pami臋ci膮 masow膮
- 10.1.2 Zapewnianie stabilnej to偶samo艣ci ka偶dego podu
- 10.2 Istota obiekt贸w StatefulSet
- 10.2.1 Por贸wnanie obiekt贸w StatefulSet i聽ReplicaSet
- 10.2.2 Zapewnianie stabilnej to偶samo艣ci sieciowej
- 10.2.3 Zapewnianie stabilnej dedykowanej pami臋ci masowej dla ka偶dego wyst膮pienia z聽pami臋ci膮 stanu
- 10.2.4 Gwarancje StatefulSet
- 10.3 Korzystanie ze StatefulSet
- 10.3.1 Tworzenie aplikacji i聽obrazu kontenera
- 10.3.2 Wdra偶anie aplikacji przy u偶yciu StatefulSet
- 10.3.3 Testowanie naszych pod贸w
- 10.4 Odkrywanie partner贸w w聽StatefulSet
- 10.4.1 Implementowanie odkrywania partner贸w przy u偶yciu DNS
- 10.4.2 Aktualizowanie StatefulSet
- 10.4.3 Testowanie klastrowanego magazynu danych
- 10.5 Jak zasoby StatefulSet radz膮 sobie z聽awariami w臋z艂贸w
- 10.5.1 Symulowanie od艂膮czenia w臋z艂a od sieci
- 10.5.2 R臋czne usuwanie podu
- 10.6 Podsumowanie
- 10.1 Replikowanie pod贸w stanowych
- 3. Pody: uruchamianie kontener贸w w聽Kubernetes
- Cz臋艣膰 III. Poza podstawami
- 11. Poznawanie wewn臋trznych mechanizm贸w Kubernetes
- 11.1 Poznajemy architektur臋
- 11.1.1 Rozproszona natura komponent贸w Kubernetes
- 11.1.2 Jak Kubernetes u偶ywa etcd
- 11.1.3 Co robi serwer API
- 11.1.4 Jak serwer API powiadamia klient贸w o聽zmianach zasob贸w
- 11.1.5 Poznajemy Scheduler
- 11.1.6 Przedstawiamy kontrolery dzia艂aj膮ce w聽komponencie Controller Manager
- 11.1.7 Co robi Kubelet
- 11.1.8 Rola komponentu Kubernetes Service Proxy
- 11.1.9 Przedstawiamy dodatki Kubernetes
- 11.1.10 Zbieranie wszystkiego razem
- 11.2 Jak wsp贸艂pracuj膮 kontrolery
- 11.2.1 Jakie komponenty s膮 zaanga偶owane
- 11.2.2 艁a艅cuch zdarze艅
- 11.2.3 Obserwowanie zdarze艅 klastra
- 11.3 Czym jest uruchomiony pod
- 11.4 艁膮czno艣膰 sieciowa wewn膮trz podu
- 11.4.1 Jaka musi by膰 ta sie膰
- 11.4.2 Zag艂臋bianie si臋 w聽dzia艂anie sieci
- 11.4.3 Przedstawiamy Container Network Interface
- 11.5 Jak s膮 implementowane us艂ugi
- 11.5.1 Przedstawiamy kube-proxy
- 11.5.2 Jak proces kube-proxy u偶ywa iptables
- 11.6 Uruchamianie klastr贸w wysokiej dost臋pno艣ci
- 11.6.1 Zapewnianie wysokiej dost臋pno艣ci naszych aplikacji
- 11.6.2 Zapewnianie wysokiej dost臋pno艣ci komponent贸w warstwy sterowania Kubernetes
- 11.7 Podsumowanie
- 11.1 Poznajemy architektur臋
- 12. Zabezpieczanie serwera API Kubernetes
- 12.1 Istota uwierzytelniania
- 12.1.1 U偶ytkownicy i聽grupy
- 12.1.2 Przedstawiamy zasoby ServiceAccount
- 12.1.3 Tworzenie zasob贸w ServiceAccount
- 12.1.4 Przypisywanie konta us艂ugowego do podu
- 12.2 Zabezpieczanie klastra przy u偶yciu kontroli dost臋pu opartej na rolach
- 12.2.1 Przedstawiamy wtyczk臋 autoryzuj膮c膮 RBAC
- 12.2.2 Przedstawiamy zasoby RBAC
- 12.2.3 U偶ywanie zasob贸w Role i聽RoleBinding
- 12.2.4 U偶ywanie r贸l klastra i聽wi膮za艅 r贸l klastra
- 12.2.5 Domy艣lne role klastra i聽wi膮zania r贸l klastra
- 12.2.6 Rozwa偶ne przyznawanie uprawnie艅 autoryzacyjnych
- 12.3 Podsumowanie
- 12.1 Istota uwierzytelniania
- 13. Zabezpieczanie w臋z艂贸w i聽sieci klastra
- 13.1 U偶ywanie w聽podzie przestrzeni nazw hostuj膮cego w臋z艂a
- 13.1.1 U偶ywanie w聽podzie przestrzeni nazw sieciowych w臋z艂a
- 13.1.2 Dowi膮zywanie do portu hosta bez u偶ywania przestrzeni nazw sieciowych hosta
- 13.1.3 U偶ywanie przestrzeni nazw PID i聽IPC w臋z艂a
- 13.2 Konfigurowanie kontekstu zabezpiecze艅 kontenera
- 13.2.1 Uruchamianie kontenera jako okre艣lony u偶ytkownik
- 13.2.2 Powstrzymywanie kontenera przed dzia艂aniem jako root
- 13.2.3 Uruchamianie pod贸w w聽trybie uprzywilejowanym
- 13.2.4 Do艂膮czanie do kontenera indywidualnych mo偶liwo艣ci j膮dra
- 13.2.5 Odrzucanie mo偶liwo艣ci z聽kontenera
- 13.2.6 Powstrzymywanie proces贸w przed zapisywaniem w聽systemie plik贸w kontenera
- 13.2.7 Wsp贸艂u偶ytkowanie wolumin贸w, gdy kontenery dzia艂aj膮 jako r贸偶ni u偶ytkownicy
- 13.3 Ograniczanie stosowania w聽podach funkcji zwi膮zanych z聽zabezpieczeniami
- 13.3.1 Przedstawiamy zas贸b PodSecurityPolicy
- 13.3.2 Zasady runAsUser, fsGroup oraz supplementalGroups
- 13.3.3 Konfigurowanie dozwolonych, domy艣lnych i聽zabronionych mo偶liwo艣ci
- 13.3.4 Ograniczanie typ贸w wolumin贸w u偶ywanych przez pody
- 13.3.5 Przypisywanie r贸偶nych zasob贸w PodSecurityPolicy do r贸偶nych u偶ytkownik贸w i聽grup
- 13.4 Izolowanie sieci pod贸w
- 13.4.1 W艂膮czanie izolacji sieciowej w聽przestrzeni nazw
- 13.4.2 Zezwalanie tylko niekt贸rym podom z聽przestrzeni nazw na 艂膮czenie si臋 z聽podem serwera
- 13.4.3 Izolacja sieci mi臋dzy przestrzeniami nazw Kubernetes
- 13.4.4 Izolowanie sieci przy u偶yciu notacji CIDR
- 13.4.5 Ograniczanie ruchu wychodz膮cego dla zbioru pod贸w
- 13.5 Podsumowanie
- 13.1 U偶ywanie w聽podzie przestrzeni nazw hostuj膮cego w臋z艂a
- 14. Zarz膮dzanie zasobami obliczeniowymi pod贸w
- 14.1 呕膮danie zasob贸w dla kontener贸w podu
- 14.1.1 Tworzenie pod贸w z聽偶膮daniami zasob贸w
- 14.1.2 Jak 偶膮dania zasob贸w wp艂ywaj膮 na rozmieszczanie pod贸w
- 14.1.3 Jak 偶膮dania procesora wp艂ywaj膮 na wsp贸艂dzielenie czasu procesora
- 14.1.4 Definiowanie i聽偶膮danie niestandardowych zasob贸w
- 14.2 Ograniczanie zasob贸w dost臋pnych dla kontenera
- 14.2.1 Ustawienie sztywnego limitu ilo艣ci zasob贸w, kt贸rych mo偶e u偶ywa膰 kontener
- 14.2.2 Przekraczanie limit贸w
- 14.2.3 Jak aplikacje w聽kontenerach postrzegaj膮 limity
- 14.3 Klasy QoS dla pod贸w
- 14.3.1 Definiowanie klasy QoS dla podu
- 14.3.2 Kt贸ry proces zostanie zabity, gdy brakuje pami臋ci
- 14.4 Ustawianie domy艣lnych 偶膮da艅 i聽limit贸w dla pod贸w w聽przestrzeni nazw
- 14.4.1 Przedstawiamy zas贸b LimitRange
- 14.4.2 Tworzenie obiektu LimitRange
- 14.4.3 Wymuszanie limit贸w
- 14.4.4 Stosowanie domy艣lnych 偶膮da艅 i聽limit贸w zasob贸w
- 14.5 Ograniczanie 艂膮cznych zasob贸w dost臋pnych w聽przestrzeni nazw
- 14.5.1 Przedstawiamy obiekt ResourceQuota
- 14.5.2 Specyfikowanie przydzia艂贸w trwa艂ej pami臋ci masowej
- 14.5.3 Ograniczenie liczby dozwolonych obiekt贸w
- 14.5.4 Specyfikowanie przydzia艂贸w dla okre艣lonych stan贸w pod贸w i/lub klas QoS
- 14.6 Monitorowanie u偶ycia zasob贸w przez pody
- 14.6.1 Gromadzenie i聽odczytywanie rzeczywistego u偶ycia zasob贸w
- 14.6.2 Zapisywanie i聽analizowanie historycznych statystyk zu偶ycia zasob贸w
- 14.7 Podsumowanie
- 14.1 呕膮danie zasob贸w dla kontener贸w podu
- 15. Automatyczne skalowanie pod贸w i聽w臋z艂贸w klastra
- 15.1 Automatyczne skalowanie pod贸w w聽poziomie
- 15.1.1 Proces skalowania automatycznego
- 15.1.2 Skalowanie oparte na u偶yciu procesora
- 15.1.3 Skalowanie oparte na u偶yciu pami臋ci
- 15.1.4 Skalowanie oparte na innych i聽niestandardowych miarach
- 15.1.5 Ustalanie, jakie miary s膮 odpowiednie dla automatycznego skalowania
- 15.1.6 Skalowanie w聽d贸艂 do zera replik
- 15.2 Automatyczne skalowanie pod贸w w聽pionie
- 15.2.1 Automatyczne konfigurowanie 偶膮da艅 zasob贸w
- 15.2.2 Modyfikowanie 偶膮da艅 zasob贸w w聽czasie dzia艂ania podu
- 15.3 Horyzontalne skalowanie w臋z艂贸w klastra
- 15.3.1 Przedstawiamy Cluster Autoscaler
- 15.3.2 W艂膮czanie funkcjonalno艣ci Cluster Autoscaler
- 15.3.3 Ograniczanie przerw w聽dzia艂aniu us艂ugi w聽trakcie skalowania klastra w聽d贸艂
- 15.4 Podsumowanie
- 15.1 Automatyczne skalowanie pod贸w w聽poziomie
- 16. Zaawansowane rozmieszczanie
- 16.1 U偶ywanie skaz i聽tolerancji w聽celu odpychania pod贸w od pewnych w臋z艂贸w
- 16.1.1 Skazy i聽tolerancje
- 16.1.2 Dodawanie niestandardowych skaz do w臋z艂a
- 16.1.3 Dodawanie tolerancji do pod贸w
- 16.1.4 Do czego mo偶na u偶ywa膰 skaz i聽tolerancji
- 16.2 U偶ywanie koligacji w臋z艂a w聽celu przyci膮gania pod贸w do okre艣lonych w臋z艂贸w
- 16.2.1 Specyfikowanie sztywnych regu艂 koligacji w臋z艂a
- 16.2.2 Priorytetyzowanie w臋z艂贸w podczas rozmieszczania pod贸w
- 16.3 Kolokacja pod贸w przy u偶yciu koligacji i聽anty-koligacji
- 16.3.1 U偶ywanie koligacji mi臋dzy podami w聽celu wdra偶ania pod贸w w聽tym samym w臋藕le
- 16.3.2 Wdra偶anie pod贸w w聽tej samej szafie, strefie dost臋pno艣ci lub regionie geograficznym
- 16.3.3 Formu艂owanie preferencji koligacji zamiast sztywnych wymaga艅
- 16.3.4 Rozmieszczanie pod贸w z聽dala od siebie nawzajem przy u偶yciu anty-koligacji
- 16.4 Podsumowanie
- 16.1 U偶ywanie skaz i聽tolerancji w聽celu odpychania pod贸w od pewnych w臋z艂贸w
- 17. Zalecenia dla tworzenia aplikacji
- 17.1 Zbieranie wszystkiego razem
- 17.2 Cykl 偶ycia podu
- 17.2.1 Aplikacje musz膮 si臋 spodziewa膰, 偶e zostan膮 zabite i聽relokowane
- 17.2.2 Ponowne rozmieszczanie martwych lub cz臋艣ciowo martwych pod贸w
- 17.2.3 Uruchamianie pod贸w w聽okre艣lonej kolejno艣ci
- 17.2.4 Dodawanie hook贸w cyklu 偶ycia
- 17.2.5 Wy艂膮czanie
- 17.3 Zapewnianie, 偶e wszystkie 偶膮dania klient贸w s膮 w艂a艣ciwie obs艂u偶one
- 17.3.1 Unikanie zrywania po艂膮cze艅 klienckich podczas uruchamiania podu
- 17.3.2 Unikanie zrywania po艂膮cze艅 klienckich w聽trakcie wy艂膮czania
- 17.4 Tworzenie aplikacji 艂atwych do zarz膮dzania w聽Kubernetes
- 17.4.1 Tworzenie zarz膮dzalnych obraz贸w kontener贸w
- 17.4.2 W艂a艣ciwe oznakowanie obraz贸w i聽rozwa偶ne u偶ywanie imagePullPolicy
- 17.4.3 U偶ywanie etykiet wielowymiarowych zamiast jednowymiarowych
- 17.4.4 Opisywanie zasob贸w za pomoc膮 adnotacji
- 17.4.5 Udost臋pnianie informacji o聽przyczynach zako艅czenia procesu
- 17.4.6 Obs艂uga dziennik贸w aplikacji
- 17.5 Najlepsze praktyki programowania i聽testowania
- 17.5.1 Uruchamianie aplikacji poza Kubernetes w聽trakcie programowania
- 17.5.2 Korzystanie z聽Minikube w聽wytwarzaniu
- 17.5.3 Wersjonowanie i聽automatyczne wdra偶anie manifest贸w zasob贸w
- 17.5.4 Ksonnet jako alternatywa dla pisania manifest贸w YAML/JSON
- 17.5.5 Stosowanie ci膮g艂ej integracji i聽ci膮g艂ego dostarczania (Continuous Integration i聽Continuous Delivery CI/CD)
- 17.6 Podsumowanie
- 18. Rozszerzanie Kubernetes
- 18.1 Definiowanie niestandardowych obiekt贸w API
- 18.1.1 Przedstawiamy CustomResourceDefinition
- 18.1.2 Automatyzowanie niestandardowych zasob贸w przy u偶yciu niestandardowych kontroler贸w
- 18.1.3 Walidacja niestandardowych obiekt贸w
- 18.1.4 Udost臋pnianie niestandardowego serwera API dla niestandardowych obiekt贸w
- 18.2 Rozszerzanie Kubernetes przez Service Catalog
- 18.2.1 Przedstawiamy Service Catalog
- 18.2.2 Przedstawiamy serwer API Service Catalog oraz Controller Manager
- 18.2.3 Brokery us艂ug i聽OpenServiceBroker API
- 18.2.4 Przygotowywanie i聽u偶ywanie us艂ugi
- 18.2.5 Odwi膮zanie i聽wyrejestrowanie
- 18.2.6 Co przynosi Service Catalog
- 18.3 Platformy zbudowane na bazie Kubernetes
- 18.3.1 Platforma kontener贸w Red Hat OpenShift
- 18.3.2 Deis Workflow oraz Helm
- 18.4 Podsumowanie
- 18.1 Definiowanie niestandardowych obiekt贸w API
- 11. Poznawanie wewn臋trznych mechanizm贸w Kubernetes
- dodatek A.聽U偶ywanie kubectl z聽wieloma klastrami
- A.1 Prze艂膮czanie mi臋dzy Minikube a聽Google Kubernetes Engine
- A.2 U偶ywanie kubectl wobec wielu klastr贸w lub przestrzeni nazw
- A.2.1 Konfigurowanie lokalizacji pliku kubeconfig
- A.2.2 Zawarto艣ci pliku kubeconfig
- A.2.3 Listowanie, dodawanie i聽modyfikowanie wpis贸w pliku kubeconfig
- A.2.4 U偶ywanie kubectl wobec r贸偶nych klastr贸w, u偶ytkownik贸w i聽kontekst贸w
- A.2.5 Prze艂膮czanie si臋 mi臋dzy kontekstami
- A.2.6 Listowanie kontekst贸w i聽klastr贸w
- A.2.7 Usuwanie kontekst贸w i聽klastr贸w
- dodatek B.聽Tworzenie wielow臋z艂owego klastra przy u偶yciu kubeadm
- B.1 Konfigurowanie systemu operacyjnego i聽wymaganych pakiet贸w
- B.1.1 Tworzenie maszyny wirtualnej
- B.1.2 Konfigurowanie karty sieciowej maszyny wirtualnej
- B.1.3 Instalowanie systemu operacyjnego
- B.1.4 Instalowanie Dockera i聽Kubernetes
- B.1.5 Klonowanie maszyny wirtualnej
- B.2 Konfigurowanie w臋z艂a master przy u偶yciu kubeadm
- B.2.1 Jak kubeadm uruchamia komponenty
- B.3 Konfigurowanie w臋z艂贸w roboczych przy u偶yciu kubeadm
- B.3.1 Konfigurowanie sieci kontener贸w
- B.4 Korzystanie z聽klastra z聽maszyny lokalnej
- B.1 Konfigurowanie systemu operacyjnego i聽wymaganych pakiet贸w
- dodatek C.聽Korzystanie z聽innych 艣rodowisk wykonawczych kontener贸w
- C.1 U偶ywanie innych 艣rodowisk kontener贸w za po艣rednictwem CRI
- C.1.1 艢rodowisko wykonawcze kontener贸w CRI-O
- C.1.2 Uruchamianie aplikacji w聽maszynach wirtualnych zamiast w聽kontenerach
- C.1 U偶ywanie innych 艣rodowisk kontener贸w za po艣rednictwem CRI
- dodatek D.聽Cluster Federation
- D.1 Przedstawiamy Kubernetes Cluster Federation
- D.2 Architektura
- D.3 Sfederowane obiekty API
- D.3.1 Sfederowane wersje zasob贸w Kubernetes
- D.3.2 Co robi膮 sfederowane zasoby
- Przypisy