Muutke küpsiste eelistusi

E-raamat: Cloud Native DevOps with Kubernetes

  • Formaat: 356 pages
  • Ilmumisaeg: 16-Mar-2022
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9781098116798
  • Formaat - PDF+DRM
  • Hind: 56,15 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 356 pages
  • Ilmumisaeg: 16-Mar-2022
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9781098116798

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Kubernetes has become the operating system of today's cloud native world, providing a reliable and scalable platform for running containerized workloads. In this friendly, pragmatic book, cloud experts Justin Domingus and John Arundel show your development and operations staff what Kubernetes can do--and what you can do with it.

This updated second edition guides you through the growing Kubernetes ecosystem and provides practical solutions to everyday problems using tools currently in use in the software industry. You'll walk through an example containerized application running in Kubernetes step-by-step, from the development environment through the continuous deployment pipeline, with patterns you can use for your own applications. Make your development teams lean, fast, and effective by adopting Kubernetes and DevOps principles.

  • Understand containers and Kubernetes--no experience necessary
  • Run your own applications on managed cloud Kubernetes services or on-premises environments
  • Design your own cloud native services and infrastructure
  • Use Kubernetes to manage resource usage and the container lifecycle
  • Optimize clusters for cost, performance, resilience, capacity, and scalability
  • Learn the best tools for developing, testing, and deploying your applications
  • Apply the latest industry practices for observability and monitoring
  • Secure your containers and clusters in production
Foreword to the Second Edition xvii
Foreword to the First Edition xix
Preface xxi
1 Revolution in the Cloud 1(20)
The Creation of the Cloud
2(1)
Buying Time
3(1)
Infrastructure as a Service
3(1)
The Dawn of DevOps
3(4)
Improving Feedback Loops
4(1)
What Does DevOps Mean?
4(2)
Infrastructure as Code
6(1)
Learning Together
6(1)
The Coming of Containers
7(3)
The State of the Art
7(1)
Thinking Inside the Box
7(1)
Putting Software in Containers
8(1)
Plug and Play Applications
9(1)
Conducting the Container Orchestra
10(1)
Kubernetes
11(4)
From Borg to Kubernetes
11(1)
Why Kubernetes?
11(2)
Will Kubernetes Disappear?
13(1)
Kubernetes Is Not a Panacea
14(1)
Cloud Native
15(2)
The Future of Operations
17(2)
Distributed DevOps
18(1)
Some Things Will Remain Centralized
18(1)
Developer Productivity Engineering
18(1)
You Are the Future
19(1)
Summary
19(2)
2 First Steps with Kubernetes 21(12)
Running Your First Container
21(2)
Installing Docker Desktop
22(1)
What Is Docker?
22(1)
Running a Container Image
23(1)
The Demo Application
23(2)
Looking at the Source Code
24(1)
Introducing Go
24(1)
How the Demo App Works
25(1)
Building a Container
25(3)
Understanding Dockerfiles
26(1)
Minimal Container Images
26(1)
Running Docker Image Build
27(1)
Naming Your Images
27(1)
Port Forwarding
28(1)
Container Registries
28(1)
Authenticating to the Registry
29(1)
Naming and Pushing Your Image
29(1)
Running Your Image
29(1)
Hello, Kubernetes
29(2)
Running the Demo App
30(1)
If the Container Doesn't Start
31(1)
Minikube
31(1)
Summary
31(2)
3 Getting Kubernetes 33(20)
Cluster Architecture
33(4)
The Control Plane
34(1)
Node Components
35(1)
High Availability
35(2)
The Costs of Self-Hosting Kubernetes
37(4)
It's More Work Than You Think
37(1)
It's Not Just About the Initial Setup
38(1)
Tools Don't Do All the Work for You
39(1)
Kubernetes the Hard Way
39(1)
Kubernetes Is Hard
39(1)
Administration Overhead
39(1)
Start with Managed Services
40(1)
Managed Kubernetes Services
41(2)
Google Kubernetes Engine (GKE)
41(1)
Cluster Autoscaling
41(1)
Autopilot
41(1)
Amazon Elastic Kubernetes Service (EKS)
42(1)
Azure Kubernetes Service (AKS)
42(1)
IBM Cloud Kubernetes Service
43(1)
DigitalOcean Kubernetes
43(1)
Kubernetes Installers
43(2)
kops
43(1)
Kubespray
44(1)
kubeadm
44(1)
Rancher Kubernetes Engine (RKE)
44(1)
Puppet Kubernetes Module
44(1)
Buy or Build: Our Recommendations
45(4)
Run Less Software
45(1)
Use Managed Kubernetes if You Can
45(1)
But What About Vendor Lock-in?
46(1)
Bare-Metal and On-Prem
46(1)
Multicloud Kubernetes Clusters
47(1)
OpenShift
48(1)
Anthos
48(1)
Use Standard Kubernetes Self-Hosting Tools if You Must
48(1)
Clusterless Container Services
49(1)
AWS Fargate
49(1)
Azure Container Instances (ACI)
49(1)
Google Cloud Run
50(1)
Summary
50(3)
4 Working with Kubernetes Objects 53(16)
Deployments
53(2)
Supervising and Scheduling
54(1)
Restarting Containers
54(1)
Creating Deployments
55(1)
Pods
55(1)
ReplicaSets
56(1)
Maintaining Desired State
57(1)
The Kubernetes Scheduler
58(1)
Resource Manifests in YAML Format
59(5)
Resources Are Data
59(1)
Deployment Manifests
59(1)
Using kubectl apply
60(1)
Service Resources
61(2)
Querying the Cluster with kubectl
63(1)
Taking Resources to the Next Level
64(1)
Helm: A Kubernetes Package Manager
64(3)
Installing Helm
65(1)
Installing a Helm Chart
65(1)
Charts, Repositories, and Releases
66(1)
Listing Helm Releases
67(1)
Summary
67(2)
5 Managing Resources 69(28)
Understanding Resources
69(3)
Resource Units
70(1)
Resource Requests
70(1)
Resource Limits
71(1)
Quality of Service
71(1)
Managing the Container Life Cycle
72(6)
Liveness Probes
72(1)
Probe Delay and Frequency
73(1)
Other Types of Probes
73(1)
Readiness Probes
74(1)
Startup Probes
75(1)
gRPC Probes
75(1)
File-Based Readiness Probes
76(1)
minReadySeconds
76(1)
Pod Disruption Budgets
77(1)
Using Namespaces
78(5)
Working with Namespaces
79(1)
What Namespaces Should I Use?
79(1)
Service Addresses
80(1)
Resource Quotas
80(2)
Default Resource Requests and Limits
82(1)
Optimizing Cluster Costs
83(11)
Kubecost
83(1)
Optimizing Deployments
83(1)
Optimizing Pods
84(1)
Vertical Pod Autoscaler
85(1)
Optimizing Nodes
85(2)
Optimizing Storage
87(1)
Cleaning Up Unused Resources
87(3)
Checking Spare Capacity
90(1)
Using Reserved Instances
90(1)
Using Preemptible (Spot) Instances
91(2)
Keeping Your Workloads Balanced
93(1)
Summary
94(3)
6 Operating Clusters 97(16)
Cluster Sizing and Scaling
97(7)
Capacity Planning
98(3)
Nodes and Instances
101(2)
Scaling the Cluster
103(1)
Conformance Checking
104(4)
CNCF Certification
105(1)
Conformance Testing with Sonobuoy
106(2)
Kubernetes Audit Logging
108(1)
Chaos Testing
108(3)
Only Production Is Production
109(1)
chaoskube
109(1)
kube-monkey
110(1)
PowerfulSeal
110(1)
Summary
111(2)
7 Kubernetes Power Tools 113(22)
Mastering kubectl
113(5)
Shell Aliases
113(1)
Using Short Flags
114(1)
Abbreviating Resource Types
114(1)
Auto-Completing kubectl Commands
115(1)
Getting Help
115(1)
Getting Help on Kubernetes Resources
116(1)
Showing More Detailed Output
116(1)
Working with JSON Data and jq
116(1)
Watching Objects
117(1)
Describing Objects
118(1)
Working with Resources
118(3)
Imperative kubectl Commands
118(1)
When Not to Use Imperative Commands
119(1)
Generating Resource Manifests
120(1)
Exporting Resources
120(1)
Diffing Resources
120(1)
Working with Containers
121(6)
Viewing a Container's Logs
121(1)
Attaching to a Container
122(1)
Watching Kubernetes Resources with kubespy
123(1)
Forwarding a Container Port
123(1)
Executing Commands on Containers
123(1)
Running Containers for Troubleshooting
124(1)
Using BusyBox Commands
125(1)
Adding BusyBox to Your Containers
126(1)
Installing Programs on a Container
127(1)
Contexts and Namespaces
127(3)
kubeconfig files
128(1)
kubectx and kubens
129(1)
kube-psl
130(1)
Kubernetes Shells and Tools
130(1)
kube-shell
130(1)
Click
130(1)
kubed-sh
131(1)
Stern
131(1)
Kubernetes IDES
131(1)
Lens
132(1)
VS Code Kubernetes Extension
132(1)
Building Your Own Kubernetes Tools
132(1)
Summary
133(2)
8 Running Containers 135(20)
Containers and Pods
135(4)
What Is a Container?
136(1)
Container Runtimes in Kubernetes
137(1)
What Belongs in a Container?
137(1)
What Belongs in a Pod?
138(1)
Container Manifests
139(5)
Image Identifiers
139(1)
The latest Tag
140(1)
Container Digests
141(1)
Base Image Tags
141(1)
Ports
142(1)
Resource Requests and Limits
142(1)
Image Pull Policy
143(1)
Environment Variables
143(1)
Container Security
144(4)
Running Containers as a Non-Root User
144(1)
Blocking Root Containers
145(1)
Setting a Read-Only Filesystem
146(1)
Disabling Privilege Escalation
146(1)
Capabilities
146(2)
Pod Security Contexts
148(1)
Pod Service Accounts
148(1)
Volumes
148(3)
emptyDir Volumes
149(1)
Persistent Volumes
150(1)
Restart Policies
151(1)
Image Pull Secrets
151(1)
Init Containers
152(1)
Summary
152(3)
9 Managing Pods 155(26)
Labels
155(4)
What Are Labels?
155(1)
Selectors
156(1)
More Advanced Selectors
157(1)
Other Uses for Labels
158(1)
Labels and Annotations
159(1)
Node Affinities
159(2)
Hard Affinities
160(1)
Soft Affinities
160(1)
Pod Affinities and Anti-Affinities
161(3)
Keeping Pods Together
161(1)
Keeping Pods Apart
162(1)
Soft Anti-Affinities
163(1)
When to Use Pod Affinities
163(1)
Taints and Tolerations
164(1)
Pod Controllers
165(8)
DaemonSets
166(1)
StatefulSets
167(1)
Jobs
168(1)
CronJobs
169(1)
Horizontal Pod Autoscalers
170(2)
Operators and Custom Resource Definitions (CRDs)
172(1)
Ingress
173(3)
Ingress Controllers
174(1)
Ingress Rules
175(1)
Terminating TLS with Ingress
176(1)
Service Mesh
176(2)
Istio
177(1)
Linkerd
177(1)
Consul Connect
177(1)
NGINX Service Mesh
177(1)
Summary
178(3)
10 Configuration and Secrets 181(18)
ConfigMaps
181(8)
Creating ConfigMaps
182(1)
Setting Environment Variables from ConfigMaps
183(2)
Setting the Whole Environment from a ConfigMap
185(1)
Using Environment Variables in Command Arguments
186(1)
Creating Config Files from ConfigMaps
187(1)
Updating Pods on a Config Change
188(1)
Kubernetes Secrets
189(4)
Using Secrets as Environment Variables
189(1)
Writing Secrets to Files
190(1)
Reading Secrets
191(1)
Access to Secrets
192(1)
Encryption at Rest
192(1)
Keeping Secrets and ConfigMaps
192(1)
Secrets Management Strategies
193(2)
Encrypt Secrets in Version Control
193(1)
Use a Dedicated Secrets Management Tool
194(1)
Encrypting Secrets with Sops
195(2)
Encrypting a File with Sops
195(2)
Using a KMS Backend
197(1)
Sealed Secrets
197(1)
Summary
198(1)
11 Security, Backups, and Cluster Health 199(22)
Access Control and Permissions
199(6)
Managing Access by Cluster
199(1)
Introducing Role-Based Access Control (RBAC)
200(1)
Understanding Roles
201(1)
Binding Roles to Users
201(1)
What Roles Do I Need?
202(1)
Guard Access to cluster-admin
202(1)
Applications and Deployment
203(1)
RBAC Troubleshooting
204(1)
Cluster Security Scanning
205(1)
Gatekeeper/OPA
205(1)
kube-bench
205(1)
Kubescape
206(1)
Container Security Scanning
206(2)
Clair
206(1)
Aqua
207(1)
Anchore Engine
207(1)
Synk
207(1)
Backups
208(6)
Do I Need to Back Up Kubernetes?
209(1)
Backing Up etcd
209(1)
Backing Up Resource State
210(1)
Backing Up Cluster State
210(1)
Large and Small Disasters
211(1)
Velero
211(3)
Monitoring Cluster Status
214(4)
kubectl
214(2)
CPU and Memory Utilization
216(1)
Cloud Provider Console
216(1)
Kubernetes Dashboard
217(1)
Weave Scope
218(1)
kube-ops-view
218(1)
node-problem-detector
218(1)
Further Reading
218(1)
Summary
219(2)
12 Deploying Kubernetes Applications 221(18)
Building Manifests with Helm
221(5)
What's Inside a Helm Chart?
222(1)
Helm Templates
223(1)
Interpolating Variables
224(1)
Quoting Values in Templates
225(1)
Specifying Dependencies
225(1)
Deploying Helm Charts
226(5)
Setting Variables
226(1)
Specifying Values in a Helm Release
227(1)
Updating an App with Helm
227(1)
Rolling Back to Previous Versions
228(1)
Creating a Helm Chart Repo
228(1)
Managing Helm Chart Secrets with Sops
229(2)
Managing Multiple Charts with Helmfile
231(3)
What's in a Helmfile?
231(1)
Chart Metadata
232(1)
Applying the Helmfile
233(1)
Advanced Manifest Management Tools
234(4)
kustomize
234(1)
Tanka
235(1)
Kapitan
236(1)
kompose
236(1)
Ansible
236(1)
kubeval
237(1)
Summary
238(1)
13 Development Workflow 239(14)
Development Tools
239(5)
Skaffold
239(2)
Telepresence
241(1)
Waypoint
241(1)
Knative
242(1)
OpenFaaS
242(1)
Crossplane
242(2)
Deployment Strategies
244(4)
Rolling Updates
244(1)
Recreate
245(1)
maxSurge and maxUnavailable
245(1)
Blue/Green Deployments
246(1)
Rainbow Deployments
247(1)
Canary Deployments
247(1)
Handling Migrations with Helm
248(2)
Helm Hooks
248(1)
Handling Failed Hooks
249(1)
Other Hooks
249(1)
Chaining Hooks
250(1)
Summary
250(3)
14 Continuous Deployment in Kubernetes 253(18)
What Is Continuous Deployment?
253(1)
Which CD Tool Should I Use?
254(1)
Hosted Cl/CD Tools
254(2)
Azure Pipelines
255(1)
Google Cloud Build
255(1)
Codefresh
255(1)
GitHub Actions
255(1)
GitLab CI
256(1)
Self-Hosted Cl/CD Tools
256(1)
Jenkins
256(1)
Drone
256(1)
Tekton
256(1)
Concourse
256(1)
Spinnaker
257(1)
Argo
257(1)
Keel
257(1)
A CI/CD Pipeline with Cloud Build
257(9)
Setting Up Google Cloud and GKE
258(1)
Forking the Demo Repository
258(1)
Create Artifact Registry Container Repository
258(1)
Configuring Cloud Build
259(1)
Building the Test Container
259(1)
Running the Tests
260(1)
Building the Application Container
260(1)
Substitution Variables
261(1)
Git SHA Tags
261(1)
Validating the Kubernetes Manifests
261(1)
Publishing the Image
262(1)
Creating the First Build Trigger
262(1)
Testing the Trigger
263(1)
Deploying from a Cl/CD Pipeline
263(2)
Creating a Deploy Trigger
265(1)
Adapting the Example Pipeline
266(1)
GitOps
266(3)
Flux
266(3)
Summary
269(2)
15 Observability and Monitoring 271(14)
What Is Observability?
271(8)
What Is Monitoring?
271(1)
Closed-Box Monitoring
271(2)
What Does "Up" Mean?
273(1)
Logging
274(2)
Introducing Metrics
276(1)
Tracing
277(1)
Observability
278(1)
The Observability Pipeline
279(1)
Monitoring in Kubernetes
280(4)
External Closed-Box Checks
280(2)
Internal Health Checks
282(2)
Summary
284(1)
16 Metrics in Kubernetes 285(28)
What Are Metrics, Really?
285(2)
Time-Series Data
285(1)
Counters and Gauges
286(1)
What Can Metrics Tell Us?
287(1)
Choosing Good Metrics
287(7)
Services: The RED Pattern
288(1)
Resources: The USE Pattern
289(1)
Business Metrics
290(1)
Kubernetes Metrics
291(3)
Analyzing Metrics
294(5)
What's Wrong with a Simple Average?
295(1)
Means, Medians, and Outliers
295(1)
Discovering Percentiles
296(1)
Applying Percentiles to Metrics Data
296(2)
We Usually Want to Know the Worst
298(1)
Beyond Percentiles
298(1)
Graphing Metrics with Dashboards
299(4)
Use a Standard Layout for All Services
299(1)
Build an Information Radiator with Primary Dashboards
300(1)
Dashboard Things That Break
301(2)
Alerting on Metrics
303(3)
What's Wrong with Alerts?
303(1)
On-Call Should Not Be Hell
304(1)
Urgent, Important, and Actionable Alerts
304(1)
Track Your Alerts, Out-of-Hours Pages, and Wake-Ups
305(1)
Metrics Tools and Services
306(5)
Prometheus
306(2)
Google Operations Suite
308(1)
AWS CloudWatch
309(1)
Azure Monitor
309(1)
Datadog
309(1)
New Relic
310(1)
Summary
311(2)
Afterword 313(4)
Index 317