Muutke küpsiste eelistusi

Book of Kubernetes: A Complete Guide to Container Orchestration [Pehme köide]

  • Formaat: Paperback / softback, 384 pages, kõrgus x laius: 235x177 mm
  • Ilmumisaeg: 06-Sep-2022
  • Kirjastus: No Starch Press,US
  • ISBN-10: 1718502648
  • ISBN-13: 9781718502642
Teised raamatud teemal:
  • Formaat: Paperback / softback, 384 pages, kõrgus x laius: 235x177 mm
  • Ilmumisaeg: 06-Sep-2022
  • Kirjastus: No Starch Press,US
  • ISBN-10: 1718502648
  • ISBN-13: 9781718502642
Teised raamatud teemal:
This hands-on guidebook to the inner workings of containers peels back the layers to provide a deep understanding of what a container is, how containerization changes the way programs run, and how Kubernetes provides computing, networking, and storage.

Containers ensure that software runs reliably no matter where it’s deployed, and Kubernetes lets you manage all of your containers from a single control plane. In this comprehensive tour of the open-source platform, each chapter includes a set of example scripts with just enough automation to start your container exploration with ease. Beginning with an overview of modern architecture and the benefits of orchestration, you'll quickly learn how to create containers; how to deploy, administer and debug Kubernetes clusters all the way down to the OS; and how container networking works at the packet level across multiple nodes in a cluster.

Arvustused

"Looks great." Xander Soldaat, @XanderSoldaat, OpenShift Cloud Success Architect at Red Hat, Software Engineer

"Suggested read." Chris Short, @ChrisShort, Senior Developer Advocate at AWS, Kubernetes Contributor

A hands-on guidebook to the inner workings of containers. Alan Hohn peels back the layers to provide a deep explanation of what a container is, how containerization changes the way programs run, and how Kubernetes provides computing, networking, and storage. iProgrammer

This book is a deep insight into the containers running in a Kubernetes cluster. I think it's essential for anyone who is interested in deeper learning into the containers orchestration. I appreciate the author's hard work and his depth of knowledge shared in this book. RA, Amazon Reviewer

Acknowledgments xvii
Introduction xix
The Approach xix
Running Examples xx
What You Will Need xx
Run in the Cloud or Local xxi
Terminal Windows xxi
PART I MAKING AND USING CONTAINERS
1(86)
1 Why Containers Matter
3(16)
Modern Application Architecture
4(3)
Attribute: Cloud Native
4(1)
Attribute: Modular
5(1)
Attribute: Microservice-Based
5(1)
Benefit: Scalability
6(1)
Benefit: Reliability
6(1)
Benefit: Resilience
7(1)
Why Containers
7(2)
Requirements for Containers
8(1)
Requirements for Orchestration
8(1)
Running Containers
9(5)
What Containers Look Like
9(3)
What Containers Really Are
12(2)
Deploying Containers to Kubernetes
14(3)
Talking to the Kubernetes Cluster
14(1)
Application Overview
15(1)
Kubernetes Features
16(1)
Final Thoughts
17(2)
2 Process Isolation
19(14)
Understanding Isolation
20(3)
Why Processes Need Isolation
20(1)
File Permissions and Change Root
20(2)
Container Isolation
22(1)
Container Platforms and Container Runtimes
23(7)
Installing containerd
23(1)
Using containerd
24(1)
Introducing Linux Namespaces
25(1)
Containers and Namespaces in CRI-O
26(4)
Running Processes in Namespaces Directly
30(2)
Final Thoughts
32(1)
3 Resource Limiting
33(18)
CPU Priorities
34(3)
Real-Time and Non-Real-Time Policies
34(1)
Setting Process Priorities
35(2)
Linux Control Groups
37(6)
CPU Quotas with cgroups
39(2)
CPU Quota with CRI-O and crictl
41(2)
Memory Limits
43(4)
Network Bandwidth Limits
47(2)
Final Thoughts
49(2)
4 Network Namespaces
51(18)
Network Isolation
52(3)
Network Namespaces
55(5)
Inspecting Network Namespaces
55(2)
Creating Network Namespaces
57(3)
Bridge Interfaces
60(4)
Adding Interfaces to a Bridge
61(1)
Tracing Traffic
62(2)
Masquerade
64(3)
Final Thoughts
67(2)
5 Container Images And Runtime Layers
69(18)
Filesystem Isolation
70(4)
Container Image Contents
70(2)
Image Versions and Layers
72(2)
Building Container Images
74(4)
Using a Dockerfile
74(2)
Tagging and Publishing Images
76(2)
Image and Container Storage
78(4)
Overlay Filesystems
78(2)
Understanding Container Layers
80(1)
Practical Image Building Advice
81(1)
Open Container Initiative
82(2)
Final Thoughts
84(3)
PART II CONTAINERS IN KUBERNETES
6 Why Kubernetes Matters
87(24)
Running Containers in a Cluster
88(2)
Cross-Cutting Concerns
88(1)
Kubernetes Concepts
89(1)
Cluster Deployment
90(10)
Prerequisite Packages
91(1)
Kubernetes Packages
92(2)
Cluster Initialization
94(3)
Joining Nodes to the Cluster
97(3)
Installing Cluster Add-ons
100(5)
Network Driver
100(2)
Installing Storage
102(1)
Ingress Controller
103(1)
Metrics Server
104(1)
Exploring a Cluster
105(4)
Final Thoughts
109(2)
7 Deploying Containers To Kubernetes
111(18)
Pods
111(4)
Deploying a Pod
112(2)
Pod Details and Logging
114(1)
Deployments
115(7)
Creating a Deployment
115(4)
Monitoring and Scaling
119(1)
Autoscaling
120(2)
Other Controllers
122(6)
Jobs and Cronjobs
122(2)
StatefulSets
124(3)
Daemon Sets
127(1)
Final Thoughts
128(1)
8 Overlay Networks
129(22)
Cluster Networking
130(4)
CNI Plug-ins
130(1)
Pod Networking
131(3)
Cross-Node Networking
134(10)
Calico Networking
135(4)
WeaveNet
139(5)
Choosing a Network Plug-in
144(1)
Network Customization
144(5)
Final Thoughts
149(2)
9 Service And Ingress Networks
151(16)
Services
152(8)
Creating a Service
153(2)
Service DNS
155(1)
Name Resolution and Namespaces
156(2)
Traffic Routing
158(2)
External Networking
160(6)
External Services
161(1)
Ingress Services
162(3)
Ingress in Production
165(1)
Final Thoughts
166(1)
10 When Things Go Wrong
167(20)
Scheduling
167(6)
No Available Nodes
168(2)
Insufficient Resources
170(3)
Pulling Images
173(3)
Running Containers
176(9)
Debugging Using Logs
177(2)
Debugging Using Exec
179(4)
Debugging Using Port Forwarding
183(2)
Final Thoughts
185(2)
11 Control Plane And Access Control
187(18)
API Server
188(2)
API Server Authentication
190(5)
Client Certificates
190(2)
Bootstrap Tokens
192(2)
Service Accounts
194(1)
Role-Based Access Controls
195(8)
Roles and Cluster Roles
195(2)
Role Bindings and Cluster Role Bindings
197(1)
Assigning a Service Account to Pods
198(3)
Binding Roles to Users
201(2)
Final Thoughts
203(2)
12 Container Runtime
205(14)
Node Service
205(5)
Kubelet Cluster Configuration
207(1)
Kubelet Container Runtime Configuration
208(1)
Kubelet Network Configuration
209(1)
Static Pods
210(2)
Node Maintenance
212(6)
Node Draining and Cordoning
212(2)
Unhealthy Nodes
214(2)
Node Unreachable
216(2)
Final Thoughts
218(1)
13 Health Probes
219(14)
About Probes
220(1)
Liveness Probes
220(6)
Exec Probes
220(3)
HTTP Probes
223(2)
TCP Probes
225(1)
Startup Probes
226(2)
Readiness Probes
228(4)
Final Thoughts
232(1)
14 Limits And Quotas
233(16)
Requests and Limits
234(9)
Processing and Memory Limits
234(2)
Cgroup Enforcement
236(2)
Network Limits
238(5)
Quotas
243(5)
Final Thoughts
248(1)
15 Persistent Storage
249(16)
Storage Classes
249(3)
Storage Class Definition
250(1)
CSI Plug-in Internals
251(1)
Persistent Volumes
252(12)
Stateful Sets
252(4)
Volumes and Claims
256(3)
Deployments
259(3)
Access Modes
262(2)
Final Thoughts
264(1)
16 Configuration And Secrets
265(14)
Injecting Configuration
265(7)
Externalizing Configuration
267(2)
Protecting Secrets
269(3)
Injecting Files
272(2)
Cluster Configuration Repository
274(4)
Using etcdctl
275(1)
Deciphering Data in etcd
276(2)
Final Thoughts
278(1)
17 Custom Resources And Operators
279(16)
Custom Resources
280(8)
Creating CRDs
281(3)
Watching CRDs
284(4)
Operators
288(4)
Final Thoughts
292(3)
PART III PERFORMANT KUBERNETES
18 Affinity And Devices
295(14)
Affinity and Anti-affinity
296(5)
Anti-affinity
297(2)
Affinity
299(2)
Service Traffic Routing
301(2)
Hardware Resources
303(3)
Final Thoughts
306(3)
19 Tuning Quality Of Service
309(14)
Achieving Predictability
310(1)
Quality of Service Classes
310(7)
BestEffort
311(1)
Burstable
312(2)
Guaranteed
314(1)
QoS Class Eviction
315(1)
Choosing a QoS Class
316(1)
Pod Priority
317(4)
Final Thoughts
321(2)
20 Application Resiliency
323(22)
Example Application Stack
324(8)
Database
324(2)
Application Deployment
326(3)
Pod Autoscaling
329(1)
Application Service
330(2)
Application and Cluster Monitoring
332(11)
Prometheus Monitoring
333(1)
Deploying kube-prometheus
334(3)
Cluster Metrics
337(2)
Adding Monitoring for Services
339(4)
Final Thoughts
343(2)
Index 345
Alan Hohn is the Director for Software Strategy for Lockheed Martin. He has 25 years of experience as a Lockheed Martin Fellow, software developer, architect, lead, and manager. He has delivered real applications to production in Ada, Java, Python, and Go, amongst others, and has worked with Linux since the early 1990s. He has led multiple software teams in modernization efforts, incorporating cloud, microservice architecture, and containerization on complex programs. He is an Agile and DevSecOps coach and is an experienced trainer for Java, Ansible, containers, software architecture, and Kubernetes. Hohn has a degree in Computer Science from Embry-Riddle Aeronautical University, a Master's in Business Administration from the University of Minnesota, and a Master's in Industrial Engineering from the Georgia Institute of Technology.