The way developers design, build, and run software has changed significantly with the evolution of microservices and con
750 136 4MB
English Pages 390 Year 2023
Table of contents :
Foreword
Preface
Kubernetes
Design Patterns
How This Book Is Structured
Who This Book Is For
What You Will Learn
What’s New in the Second Edition
Conventions Used in This Book
Using Code Examples
O’Reilly Online Learning
How to Contact Us
Acknowledgments
1. Introduction
The Path to Cloud Native
Distributed Primitives
Containers
Pods
Services
Labels
Namespaces
Discussion
More Information
I. Foundational Patterns
2. Predictable Demands
Problem
Solution
Runtime Dependencies
Resource Profiles
Pod Priority
Project Resources
Capacity Planning
Discussion
More Information
3. Declarative Deployment
Problem
Solution
Rolling Deployment
Fixed Deployment
Blue-Green Release
Canary Release
Discussion
More Information
4. Health Probe
Problem
Solution
Process Health Checks
Liveness Probes
Readiness Probes
Startup Probes
Discussion
More Information
5. Managed Lifecycle
Problem
Solution
SIGTERM Signal
SIGKILL Signal
PostStart Hook
PreStop Hook
Other Lifecycle Controls
Discussion
More Information
6. Automated Placement
Problem
Solution
Available Node Resources
Container Resource Demands
Scheduler Configurations
Scheduling Process
Node Affinity
Pod Affinity and Anti-Affinity
Topology Spread Constraints
Taints and Tolerations
Discussion
More Information
II. Behavioral Patterns
7. Batch Job
Problem
Solution
Discussion
More Information
8. Periodic Job
Problem
Solution
Discussion
More Information
9. Daemon Service
Problem
Solution
Discussion
More Information
10. Singleton Service
Problem
Solution
Out-of-Application Locking
In-Application Locking
Pod Disruption Budget
Discussion
More Information
11. Stateless Service
Problem
Solution
Instances
Networking
Storage
Discussion
More Information
12. Stateful Service
Problem
Storage
Networking
Identity
Ordinality
Other Requirements
Solution
Storage
Networking
Identity
Ordinality
Other Features
Discussion
More Information
13. Service Discovery
Problem
Solution
Internal Service Discovery
Manual Service Discovery
Service Discovery from Outside the Cluster
Application Layer Service Discovery
Discussion
More Information
14. Self Awareness
Problem
Solution
Discussion
More Information
III. Structural Patterns
15. Init Container
Problem
Solution
Discussion
More Information
16. Sidecar
Problem
Solution
Discussion
More Information
17. Adapter
Problem
Solution
Discussion
More Information
18. Ambassador
Problem
Solution
Discussion
More Information
IV. Configuration Patterns
19. EnvVar Configuration
Problem
Solution
Discussion
More Information
20. Configuration Resource
Problem
Solution
Discussion
More Information
21. Immutable Configuration
Problem
Solution
Docker Volumes
Kubernetes Init Containers
OpenShift Templates
Discussion
More Information
22. Configuration Template
Problem
Solution
Discussion
More Information
V. Security Patterns
23. Process Containment
Problem
Solution
Running Containers with a Non-Root User
Restricting Container Capabilities
Avoiding a Mutable Container Filesystem
Enforcing Security Policies
Discussion
More Information
24. Network Segmentation
Problem
Solution
Network Policies
Network segment definition with labels
Deny-all as default policy
Ingress
Egress
Tooling
Authentication Policies
Discussion
More Information
25. Secure Configuration
Problem
Solution
Out-of-Cluster Encryption
Sealed Secrets
External Secrets
Sops
Centralized Secret Management
Secrets Store CSI Driver
Pod injection
Discussion
More Information
26. Access Control
Problem
Solution
Authentication
Authorization
Admission Controllers
Subject
Users
Service accounts
Groups
Role-Based Access Control
Role
RoleBinding
ClusterRole
ClusterRoleBinding
Discussion
More Information
VI. Advanced Patterns
27. Controller
Problem
Solution
Discussion
More Information
28. Operator
Problem
Solution
Custom Resource Definitions
Controller and Operator Classification
Operator Development and Deployment
Kubebuilder
Operator framework
Metacontroller
Example
Discussion
More Information
29. Elastic Scale
Problem
Solution
Manual Horizontal Scaling
Imperative scaling
Declarative scaling
Horizontal Pod Autoscaling
Kubernetes HorizontalPodAutoscaler
Knative
KEDA
Vertical Pod Autoscaling
Cluster Autoscaling
Scaling Levels
Application tuning
Vertical Pod autoscaling
Horizontal Pod autoscaling
Cluster autoscaling
Discussion
More Information
30. Image Builder
Problem
Solution
Container Image Builder
Dockerfile-Based builders
Multilanguage builders
Specialized builders
Build Orchestrators
Build Pod
OpenShift Build
Source-to-Image
Docker builds
Chained builds
Discussion
More Information
Afterword
What We Covered
Final Words
Index