SPIS TREŚCI
- Kubernetes rozwiązania chmurowe w świecie DevOps
- Przedmowa
- Wstęp
- Czego się nauczysz?
- Dla kogo jest ta książka?
- Na jakie pytania odpowiada ta książka?
- Konwencje użyte w tej książce
- Korzystanie z przykładów
- Podziękowania
- Rozdział 1. Rewolucja chmurowa
- Tworzenie chmury
- Czas kupowania
- Infrastruktura jako usługa
- Początki DevOps
- Nikt nie rozumie DevOps
- Przewaga biznesowa
- Infrastruktura w postaci kodu
- Wspólna nauka
- Nadejście kontenerów
- Stan aktualny
- Myślenie pudełkowe
- Umieszczanie oprogramowania w kontenerach
- Aplikacje Plug and Play
- Uruchomienie orkiestratora
- Kubernetes
- Od Borga do Kubernetes
- Co sprawia, że Kubernetes jest tak cenny?
- Kubernetes ułatwia wdrażanie
- Czy Kubernetes zniknie?
- Kubernetes nie załatwia wszystkiego
- Funkcje chmurowe i funtainery
- Model Cloud Native
- Nie chodzi tylko o mikrousługi
- Przyszłość operacji
- Rozproszone DevOps
- Niektóre rzeczy pozostaną scentralizowane
- Produktywni programiści
- Jesteś przyszłością
- Podsumowanie
- Tworzenie chmury
- Rozdział 2. Pierwsze kroki z Kubernetes
- Uruchamianie pierwszego kontenera
- Instalowanie Docker Desktop
- Co to jest Docker?
- Uruchamianie obrazu kontenera
- Aplikacja demonstracyjna
- Oglądamy kod źródłowy
- Wprowadzenie do języka Go
- Jak działa aplikacja demonstracyjna?
- Budowanie kontenera
- Opis plików Dockerfile
- Minimalne obrazy kontenerów
- Uruchamianie skompilowanego obrazu Docker
- Nazywanie obrazów
- Przekierowanie portów (ang. port forwarding)
- Rejestry kontenerowe
- Uwierzytelnianie w rejestrze
- Przydzielanie nazwy i dodawanie obrazu
- Uruchamianie obrazu
- Cześć, Kubernetes
- Uruchamianie aplikacji demonstracyjnej
- Jeśli kontener się nie uruchamia
- Minikube
- Podsumowanie
- Uruchamianie pierwszego kontenera
- Rozdział 3. Opis Kubernetes
- Architektura klastrowa
- Warstwa sterowania
- Elementy węzła
- System wysokiej niezawodności (ang. high availability)
- Awaria warstwy sterowania
- Awaria węzła worker
- Ufaj, ale sprawdzaj
- Koszty samodzielnego hostingu Kubernetes
- To więcej pracy niż myślisz
- Nie chodzi tylko o początkową konfigurację
- Narzędzia nie wykonają za Ciebie całej pracy
- Kubernetes jest trudny
- Koszty administracyjne
- Zacznij od usług zarządzanych
- Zarządzane usługi Kubernetes
- Google Kubernetes Engine (GKE)
- Wysoka niezawodność
- Automatyczne skalowanie klastra
- GKE jest najlepsza w swojej klasie
- Usługa Amazon Elastic Container Service dla Kubernetes (EKS)
- Usługa Azure Kubernetes Service (AKS)
- OpenShift
- Usługa IBM Cloud Kubernetes Service
- Google Kubernetes Engine (GKE)
- Rozwiązania Kubernetes pod klucz
- Containership Kubernetes Engine (CKE)
- Instalatory Kubernetes
- kops
- Kubespray
- TK8
- Kubernetes The Hard Way
- kubeadm
- Tarmak
- Rancher Kubernetes Engine (RKE)
- Moduł Puppet dla Kubernetes
- Kubeformation
- Kup lub zbuduj: nasze rekomendacje
- Uruchom mniej oprogramowania
- Skorzystaj z zarządzanych usług Kubernetes, jeśli możesz
- A co z uzależnieniem od jednego dostawcy?
- Jeśli trzeba, użyj standardowych narzędzi do samodzielnego hostingu Kubernetes
- Gdy Twoje wybory są ograniczone
- Bare-metal i on-premise
- Bezklastrowe usługi kontenerowe
- Amazon Fargate
- Azure Container Instances (ACI)
- Podsumowanie
- Architektura klastrowa
- Rozdział 4. Praca z obiektami Kubernetes
- Zasoby Deployment
- Nadzór i planowanie
- Restart kontenerów
- Zapytania obiektów Deployment
- Pody
- ReplicaSet
- Utrzymanie pożądanego stanu
- Scheduler
- Manifesty zasobów w formacie YAML
- Zasoby są danymi
- Manifesty obiektu Deployment
- Polecenie kubectl apply
- Serwis
- Odpytywanie klastra za pomocą polecenia kubectl
- Przenoszenie zasobów na wyższy poziom
- Helm: menadżer pakietów Kubernetes
- Instalacja Helm
- Instalacja wykresu Helm
- Wykresy, repozytoria i wydania
- Wyświetlanie listy wydań Helm
- Podsumowanie
- Zasoby Deployment
- Rozdział 5. Zarządzanie zasobami
- Zrozumienie działania zasobów
- Jednostki zasobów
- Żądania zasobów
- Limity zasobów
- Utrzymuj małe kontenery
- Zarządzanie cyklem życia kontenera
- Sondy żywotności
- Opóźnienie i częstotliwość sondy
- Inne typy sond
- Sondy gRPC
- Sondy gotowości
- Sondy gotowości na podstawie pliku
- minReadySeconds
- Budżety zakłóceń Poda
- minAvailable
- maxUnavailable
- Korzystanie z przestrzeni nazw
- Praca z przestrzeniami nazw
- Jakich przestrzeni nazw powinieneś używać?
- Adresy serwisów
- Przydziały zasobów (ang. Resource Quotas)
- Domyślne żądania zasobów i limity
- Optymalizacja kosztów klastra
- Optymalizacja obiektów Deployment
- Optymalizacja Podów
- Vertical Pod Autoscaler
- Optymalizacja węzłów
- Optymalizacja przestrzeni dyskowej
- Czyszczenie nieużywanych zasobów
- Korzystanie z metadanych właściciela
- Znajdowanie niewykorzystanych zasobów
- Czyszczenie zakończonych obiektów Job
- Sprawdzanie wolnej pojemności
- Korzystanie z instancji zastrzeżonych
- Korzystanie z instancji w trybie wywłaszczeniowym
- Zmienna cena lub zmienne wywłaszczenie
- Węzły z wywłaszczeniem mogą zmniejszyć o połowę Twoje koszty
- Używanie koligacji węzłów do kontroli uruchomień
- Utrzymywanie równowagi obciążeń
- Podsumowanie
- Zrozumienie działania zasobów
- Rozdział 6. Operacje na klastrach
- Rozmiar i skalowanie klastra
- Planowanie pojemności
- Najmniejszy klaster
- Największy klaster
- Klastry sfederowane
- Czy potrzebuję wielu klastrów?
- Węzły i instancje
- Wybór odpowiedniego rozmiaru węzła
- Typy instancji chmurowych
- Węzły heterogeniczne
- Serwery bare-metal
- Skalowanie klastra
- Grupy instancji
- Skalowanie w dół
- Automatyczne skalowanie
- Planowanie pojemności
- Sprawdzanie zgodności
- Certyfikat CNCF
- Zgodne z Kubernetes
- Certyfikowany administrator Kubernetes (CKA ang. Certified Kubernetes Administrator)
- Certyfikowany dostawca usług Kubernetes (KCSP ang. Kubernetes Certified Service Provider)
- Testy zgodności z Sonobuoy
- Certyfikat CNCF
- Walidacja i audyt
- K8Guard
- Copper
- kube-bench
- Dziennik kontroli Kubernetes (ang. Kubernetes audit log)
- Testowanie chaosu
- Tylko produkcja jest produkcją
- chaoskube
- kube-monkey
- PowerfulSeal
- Podsumowanie
- Rozmiar i skalowanie klastra
- Rozdział 7. Narzędzia Kubernetes
- Znowu o kubectl
- Aliasy powłoki
- Używanie przełączników
- Skracanie typów zasobów
- Automatyczne uzupełnianie poleceń kubectl
- Uzyskiwanie pomocy
- Uzyskiwanie pomocy na temat zasobów Kubernetes
- Bardziej szczegółowe wyniki
- Praca z JSON Data i jq
- Oglądanie obiektów
- Opisywanie obiektów
- Praca z zasobami
- Imperatywne polecenia kubectl
- Kiedy nie należy używać poleceń imperatywnych?
- Generowanie manifestów zasobów
- Eksportowanie zasobów
- Śledzenie różnic w zasobach
- Praca z kontenerami
- Przeglądanie dzienników kontenera
- Przyłączanie do kontenera
- Oglądanie zasobów Kubernetes za pomocą kubespy
- Przekierowanie portu kontenera
- Wykonywanie poleceń w kontenerach
- Rozwiązywanie problemów w kontenerach
- Korzystanie z poleceń BusyBox
- Dodawanie BusyBox do kontenerów
- Instalowanie programów w kontenerze
- Debugowanie w czasie rzeczywistym za pomocą kubesquash
- Konteksty i przestrzenie nazw
- kubectx i kubens
- kube-ps1
- Powłoki i narzędzia Kubernetes
- kube-shell
- Click
- kubed-sh
- Stern
- Budowanie własnych narzędzi Kubernetes
- Podsumowanie
- Znowu o kubectl
- Rozdział 8. Uruchamianie kontenerów
- Kontenery i Pody
- Co to jest kontener?
- Co należy do kontenera?
- Co należy do Poda?
- Manifesty kontenera
- Identyfikatory obrazu
- Tag latest
- Skróty kontenerów
- Podstawowe tagi obrazu
- Porty
- Żądania i limity dotyczące zasobów
- Polityka pobierania obrazu
- Zmienne środowiskowe
- Bezpieczeństwo kontenerów
- Uruchamianie kontenerów jako użytkownik inny niż root
- Blokowanie kontenerów z uprawnieniami root
- Ustawianie systemu plików tylko do odczytu
- Wyłączanie eskalacji uprawnień
- Mechanizm właściwości
- Konteksty bezpieczeństwa Poda
- Polityka bezpieczeństwa Poda
- Konta usług Poda
- Woluminy
- Woluminy emptyDir
- Woluminy trwałe
- Restart polityk
- Uwierzytelnianie przy pobieraniu obrazu
- Podsumowanie
- Kontenery i Pody
- Rozdział 9. Zarządzanie Podami
- Etykiety
- Co to są etykiety?
- Selektory
- Bardziej zaawansowane selektory
- Inne zastosowania etykiet
- Etykiety i adnotacje
- Koligacje węzłów
- Koligacje twarde
- Koligacje miękkie
- Koligacje Podów i antykoligacje
- Trzymanie Podów razem
- Trzymanie Podów oddzielnie
- Antykoligacje miękkie
- Kiedy korzystać z koligacji Podów?
- Skazy i tolerancje
- Kontrolery Podów
- DaemonSet
- StatefulSet
- Kontroler Job
- CronJob
- Horizontal Pod Autoscaler
- PodPreset
- Operatory i niestandardowe definicje zasobów (CRD)
- Zasoby Ingress
- Reguły Ingress
- Zarządzanie połączeniami TLS za pomocą Ingress
- Korzystanie z istniejących certyfikatów TLS
- Automatyzacja certyfikatów LetsEncrypt za pomocą cert-manager
- Kontroler Ingress
- Istio
- Envoy
- Podsumowanie
- Etykiety
- Rozdział 10. Konfiguracja i obiekty Secret
- ConfigMap
- Tworzenie ConfigMap
- Ustawianie zmiennych środowiskowych z obiektu ConfigMap
- Ustawianie środowiska za pomocą ConfigMap
- Używanie zmiennych środowiskowych w argumentach poleceń
- Tworzenie plików konfiguracji z ConfigMaps
- Aktualizacja Podów po zmianie konfiguracji
- Obiekty Secret aplikacji Kubernetes
- Używanie obiektów Secret jako zmiennych środowiskowych
- Zapisywanie obiektów Secret do plików
- Odczyt obiektów Secret
- base64
- Dostęp do obiektów Secret
- Szyfrowanie w stanie spoczynku
- Przechowywanie obiektów Secret
- Strategie zarządzania obiektami Secret
- Szyfrowanie Secret w systemach kontroli wersji
- Zdalne przechowywanie Secret
- Dedykowane narzędzie do zarządzania obiektami Secret
- Rekomendacje
- Szyfrowanie obiektów Secret za pomocą Sops
- Przedstawiamy Sops
- Szyfrowanie pliku za pomocą Sops
- Korzystanie z zaplecza KMS
- Podsumowanie
- ConfigMap
- Rozdział 11. Bezpieczeństwo i kopia zapasowa
- Kontrola dostępu i uprawnienia
- Zarządzanie dostępem przez klaster
- Kontrola dostępu oparta na rolach (RBAC)
- Role
- Wiązanie ról z użytkownikami
- Jakich ról potrzebuję?
- Ochrona dostępu do Cluster-Admin
- Aplikacje i wdrażanie
- Rozwiązywanie problemów z RBAC
- Skanowanie bezpieczeństwa
- Clair
- Aqua
- Anchore Engine
- Kopie zapasowe
- Czy muszę wykonać kopię zapasową?
- Tworzenie kopii zapasowej etcd
- Kopia zapasowa stanu zasobów
- Tworzenie kopii zapasowej stanu klastra
- Duże i małe katastrofy
- Velero
- Konfigurowanie Velero
- Tworzenie kopii zapasowej Velero
- Przywracanie danych
- Procedury przywracania i testy
- Planowanie wykonywania kopii zapasowych Velero
- Inne zastosowania Velero
- Monitorowanie statusu klastra
- kubectl
- Status płaszczyzny sterowania
- Status węzła
- Obciążenia
- Wykorzystanie procesora i pamięci
- Konsola dostawcy chmury
- Pulpit Kubernetes (ang. Kubernetes Dashboard)
- Weave Scope
- kube-ops-view
- node-problem-detector
- kubectl
- Dalsza lektura
- Podsumowanie
- Kontrola dostępu i uprawnienia
- Rozdział 12. Wdrażanie aplikacji Kubernetes
- Budowanie manifestów za pomocą wykresu Helm
- Co znajduje się w wykresie narzędzia Helm?
- Plik Chart.yaml
- Plik values.yaml
- Szablony Helm
- Zmienne interpolacyjne
- Wartości tekstowe w szablonach
- Określanie zależności
- Co znajduje się w wykresie narzędzia Helm?
- Wdrażanie wykresów Helm
- Ustawianie zmiennych
- Tworzenie zmiennej środowiskowej
- Określanie opcji podczas instalacji Helm
- Aktualizowanie aplikacji za pomocą Helm
- Powrót do poprzednich wersji
- Automatyczny powrót za pomocą helm-monitor
- Tworzenie repozytorium wykresów Helm
- Zarządzanie obiektami Secret wykresów Helm za pomocą Sops
- Ustawianie zmiennych
- Zarządzanie wieloma wykresami za pomocą Helmfile
- Co znajduje się w pliku Helmfile?
- Metadane wykresu
- Stosowanie pliku Helmfile
- Zaawansowane narzędzia do zarządzania manifestami
- Tanka
- kapitan
- kustomize
- kompose
- Ansible
- kubeval
- Podsumowanie
- Budowanie manifestów za pomocą wykresu Helm
- Rozdział 13. Proces tworzenia oprogramowania
- Narzędzia programistyczne
- Skaffold
- Draft
- Telepresence
- Knative
- Strategie wdrażania
- Rolling Updates
- Recreate
- maxSurge i maxUnavailable
- Wdrożenia niebiesko-zielone
- Wdrożenia rainbow
- Wdrożenia kanarkowe
- Obsługa migracji za pomocą Helm
- Funkcja hook wykresu Helm
- Obsługa nieudanych funkcji hook
- Inne funkcje hook
- Kolejność wykonywania funkcji hook
- Podsumowanie
- Narzędzia programistyczne
- Rozdział 14. Ciągłe wdrażanie w Kubernetes
- Co to jest ciągłe wdrażanie?
- Z którego narzędzia CD powinienem skorzystać?
- Jenkins
- Drone
- Google Cloud Build
- Concourse
- Spinaker
- GitLab CI
- Codefresh
- Azure Pipelines
- Komponenty CD
- Docker Hub
- Gitkube
- Flux
- Keel
- Potok CD z wykorzystaniem Google Cloud Build
- Konfigurowanie Google Cloud i GKE
- Kopiowanie repozytorium demo
- Wprowadzenie do Cloud Build
- Budowanie kontenera testowego
- Uruchamianie testów
- Budowanie kontenera aplikacji
- Walidacja manifestów Kubernetes
- Publikowanie obrazu
- Tagi Git SHA
- Tworzenie pierwszego triggera kompilacji
- Testowanie triggera
- Wdrożenie z potoku CD
- Uzyskiwanie poświadczeń dla klastra Kubernetes
- Dodanie tagu środowiska
- Wdrażanie w klastrze
- Tworzenie triggera wdrażania
- Optymalizacja potoku kompilacji
- Dostosowanie przykładowego potoku
- Podsumowanie
- Rozdział 15. Obserwowalność i monitorowanie
- Co to jest obserwowalność?
- Co to jest monitorowanie?
- Monitorowanie typu czarna skrzynka
- Strony dynamiczne
- Ograniczenia monitorowania typu czarna skrzynka
- Co oznacza określenie działa?
- Dziewiątki nie mają znaczenia, jeśli użytkownicy nie są zadowoleni
- Aplikacje cloud native zawsze nie działają
- Zapisywanie logów
- Limity logowania
- Dzienniki są trudne do skalowania
- Czy logowanie jest przydatne w Kubernetes?
- Przedstawiamy metryki
- Metryki pomagają odpowiedzieć na pytanie dlaczego?
- Metryki pomagają przewidywać problemy
- Metryki monitorują aplikacje od wewnątrz
- Śledzenie
- Obserwowalność
- Obserwowalność polega na zrozumieniu
- Oprogramowanie jest nieprzezroczyste
- Budowanie kultury obserwowalności
- Potok obserwowalności
- Monitorowanie w Kubernetes
- Zewnętrzny monitoring typu czarna skrzynka
- Monitorowanie naśladuje zachowanie użytkownika
- Nie buduj własnej infrastruktury monitorowania
- Wewnętrzna kontrola aplikacji
- Czy użytkownicy są zadowoleni?
- Usługi i wyłączniki
- Wdzięczna degradacja
- Zewnętrzny monitoring typu czarna skrzynka
- Podsumowanie
- Co to jest obserwowalność?
- Rozdział 16. Metryki w Kubernetes
- Czym są metryki?
- Seria danych w czasie
- Liczniki i mierniki
- Co mogą powiedzieć metryki?
- Wybór dobrych metryk
- Usługi: wzorzec RED
- Zasoby: wzorzec USE
- Metryki biznesowe
- Metryki Kubernetes
- Wskaźniki kondycji klastra
- Metryki obiektu Deployment
- Metryki kontenera
- Metryki aplikacji
- Metryki czasu wykonywania
- Analizowanie metryk
- Dlaczego nie korzystać z wartości średniej?
- Średnie arytmetyczne, mediany i wartości odstające
- Odkrywanie percentyli
- Stosowanie percentyli do danych metryk
- Zwykle chcemy zobaczyć to, co najgorsze
- Co zamiast percentylów?
- Tworzenie wykresów metryk w pulpicie
- Użyj standardowego układu graficznego dla wszystkich serwisów
- Zbuduj radiator informacji za pomocą pulpitu
- Umieszczanie na pulpicie rzeczy, które ulegają awarii
- Alarmy na podstawie metryk
- Jakie są problemy związane z alarmami?
- Bezbolesna reakcja na żądanie
- Pilne, ważne i przydatne alarmy
- Śledź swoje alarmy, powiadomienia poza godzinami pracy i pobudki
- Narzędzia i usługi metryczne
- Prometheus
- Google Stackdriver
- AWS Cloudwatch
- Azure Monitor
- Datadog
- New Relic
- Podsumowanie
- Czym są metryki?
- Posłowie
- Co dalej?
- Witamy na pokładzie
- O Autorach
- Kolofon
Opinie
Na razie nie ma opinii o produkcie.