Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Preface
Kubernetes: A Dedication
Who Should Read This Book
Why We Wrote This Book
A Word on Cloud-Native Applications Today
Navigating This Book
Online Resources
Conventions Used in This Book
Using Code Examples
O’Reilly Safari
How to Contact Us
1. Introduction
Velocity
The Value of Immutability
Declarative Configuration
Self-Healing Systems
Scaling Your Service and Your Teams
Decoupling
Easy Scaling for Applications and Clusters
Scaling Development Teams with Microservices
Separation of Concerns for Consistency and Scaling
Abstracting Your Infrastructure
Efficiency
Summary
2. Creating and Running Containers
Container Images
The Docker Image Format
Building Application Images with Docker
Dockerfiles
Image Security
Optimizing Image Sizes
Storing Images in a Remote Registry
The Docker Container Runtime
Running Containers with Docker
Exploring the kuard Application
Limiting Resource Usage
Cleanup
Summary
3. Deploying a Kubernetes Cluster
Installing Kubernetes on a Public Cloud Provider
Google Container Service
Installing Kubernetes with Azure Container Service
Installing Kubernetes on Amazon Web Services
Installing Kubernetes Locally Using minikube
Running Kubernetes on Raspberry Pi
The Kubernetes Client
Checking Cluster Status
Listing Kubernetes Worker Nodes
Cluster Components
Kubernetes Proxy
Kubernetes DNS
Kubernetes UI
Summary
4. Common kubectl Commands
Namespaces
Contexts
Viewing Kubernetes API Objects
Creating, Updating, and Destroying Kubernetes Objects
Labeling and Annotating Objects
Debugging Commands
Summary
5. Pods
Pods in Kubernetes
Thinking with Pods
The Pod Manifest
Creating a Pod
Creating a Pod Manifest
Running Pods
Listing Pods
Pod Details
Deleting a Pod
Accessing Your Pod
Using Port Forwarding
Getting More Info with Logs
Running Commands in Your Container with exec
Copying Files to and from Containers
Health Checks
Liveness Probe
Readiness Probe
Types of Health Checks
Resource Management
Resource Requests: Minimum Required Resources
Capping Resource Usage with Limits
Persisting Data with Volumes
Using Volumes with Pods
Different Ways of Using Volumes with Pods
Persisting Data Using Remote Disks
Putting It All Together
Summary
6. Labels and Annotations
Labels
Applying Labels
Modifying Labels
Label Selectors
Label Selectors in API Objects
Annotations
Defining Annotations
Cleanup
Summary
7. Service Discovery
What Is Service Discovery?
The Service Object
Service DNS
Readiness Checks
Looking Beyond the Cluster
Cloud Integration
Advanced Details
Endpoints
Manual Service Discovery
kube-proxy and Cluster IPs
Cluster IP Environment Variables
Cleanup
Summary
8. ReplicaSets
Reconciliation Loops
Relating Pods and ReplicaSets
Adopting Existing Containers
Quarantining Containers
Designing with ReplicaSets
ReplicaSet Spec
Pod Templates
Labels
Creating a ReplicaSet
Inspecting a ReplicaSet
Finding a ReplicaSet from a Pod
Finding a Set of Pods for a ReplicaSet
Scaling ReplicaSets
Imperative Scaling with kubectl Scale
Declaratively Scaling with kubectl apply
Autoscaling a ReplicaSet
Deleting ReplicaSets
Summary
9. DaemonSets
DaemonSet Scheduler
Creating DaemonSets
Limiting DaemonSets to Specific Nodes
Adding Labels to Nodes
Node Selectors
Updating a DaemonSet
Updating a DaemonSet by Deleting Individual Pods
Rolling Update of a DaemonSet
Deleting a DaemonSet
Summary
10. Jobs
The Job Object
Job Patterns
One Shot
Parallelism
Work Queues
Summary
11. ConfigMaps and Secrets
ConfigMaps
Creating ConfigMaps
Using a ConfigMap
Secrets
Creating Secrets
Consuming Secrets
Private Docker Registries
Naming Constraints
Managing ConfigMaps and Secrets
Listing
Creating
Updating
Summary
12. Deployments
Your First Deployment
Deployment Internals
Creating Deployments
Managing Deployments
Updating Deployments
Scaling a Deployment
Updating a Container Image
Rollout History
Deployment Strategies
Recreate Strategy
RollingUpdate Strategy
Slowing Rollouts to Ensure Service Health
Deleting a Deployment
Summary
13. Integrating Storage Solutions and Kubernetes
Importing External Services
Services Without Selectors
Limitations of External Services: Health Checking
Running Reliable Singletons
Running a MySQL Singleton
Dynamic Volume Provisioning
Kubernetes-Native Storage with StatefulSets
Properties of StatefulSets
Manually Replicated MongoDB with StatefulSets
Automating MongoDB Cluster Creation
Persistent Volumes and StatefulSets
One Final Thing: Readiness Probes
Summary
14. Deploying Real-World Applications
Parse
Prerequisites
Building the parse-server
Deploying the parse-server
Testing Parse
Ghost
Configuring Ghost
Redis
Configuring Redis
Creating a Redis Service
Deploying Redis
Playing with Our Redis Cluster
Summary
A. Building a Raspberry Pi Kubernetes Cluster
Parts List
Flashing Images
First Boot: Master
Setting Up Networking
Installing Kubernetes
Setting Up the Cluster
Summary
Index
← Prev
Back
Next →
← Prev
Back
Next →