ksiazki24h.pl
wprowadź własne kryteria wyszukiwania książek: (jak szukać?)
Twój koszyk:   1 egz. / 69.00 65,55   zamówienie wysyłkowe >>>
Strona główna > opis książki

KUBERNETES ROZWIĄZANIA CHMUROWE W ŚWIECIE DEVOPS TWORZENIE WDRAŻANIE I SKALOWANIE NOWOCZESNYCH APLIKACJI CHMUROWYCH


ARUNDEL J. DOMINGUS J.

wydawnictwo: HELION , rok wydania 2020, wydanie I

cena netto: 69.00 Twoja cena  65,55 zł + 5% vat - dodaj do koszyka

Kubernetes - rozwiązania chmurowe w świecie DevOps


Tworzenie, wdrażanie i skalowanie nowoczesnych aplikacji chmurowych

Kubernetes jest standardową platformą rozproszonych aplikacji chmurowych. Pozwala na budowanie i wdrażanie niezawodnych, wydajnych i skalowalnych aplikacji. Jednak przebudowa klasycznej infrastruktury IT na rozwiązania chmurowe, aby mogła być przeprowadzona bez dużych utrudnień pracy firmy, wymaga przygotowania i odpowiedzi na kilka ważnych pytań.

W tym wyczerpującym i praktycznym przewodniku opisano, jak działają kontenery Kubernetes, jak je budować i nimi zarządzać oraz jak projektować usługi i infrastrukturę cloud native. Wyjaśniono różnice między budowaniem swoich klastrów a korzystaniem z usług zarządzanych takich firm jak Amazon, Google i Microsoft. Dokładnie przedstawiono - od strony praktycznej - rozwijanie aplikacji, konfigurowanie i obsługę klastrów oraz automatyzację infrastruktury. Wiedza ta pozwoli na sprawne zbudowanie skalowalnej, odpornej na awarie i opłacalnej infrastruktury Kubernetes - w zgodzie z metodyką DevOps.

W tej książce:

  • solidne podstawy działania kontenerów i systemu Kubernetes
  • uruchamianie własnych klastrów
  • zarządzane usługi Kubernetes od Amazon, Google i innych dostawców
  • cykl życia kontenera i optymalizacja klastrów
  • najlepsze narzędzia i najnowsze praktyki branżowe
  • zasady DevOps w praktyce

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

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

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
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

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

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

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
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
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

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

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

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

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

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
Dalsza lektura
Podsumowanie

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
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
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

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

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
Podsumowanie

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
Posłowie
Co dalej?
Witamy na pokładzie

O Autorach
Kolofon

304 strony, oprawa miękka

Po otrzymaniu zamówienia poinformujemy,
czy wybrany tytuł polskojęzyczny lub anglojęzyczny jest aktualnie na półce księgarni.

 
Wszelkie prawa zastrzeżone PROPRESS sp. z o.o. 2012-2022