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

Table of Contents

  1. 1. Revolution in the Cloud
    1. The Creation of the Cloud
    2. Buying Time
    3. Infrastructure as a Service
    4. The Dawn of DevOps
    5. Improving Feedback Loops
    6. What Does DevOps Mean?
    7. Infrastructure as Code
    8. Learning Together
    9. The Coming of Containers
    10. The State of the Art
    11. Thinking Inside the Box
    12. Putting Software in Containers
    13. Plug and Play Applications
    14. Conducting the Container Orchestra
    15. Kubernetes
    16. From Borg to Kubernetes
    17. Why Kubernetes?
    18. Will Kubernetes Disappear?
    19. Kubernetes Is Not a Panacea
    20. Cloud Native
    21. The Future of Operations
    22. Distributed DevOps
    23. Some Things Will Remain Centralized
    24. Developer Productivity Engineering
    25. You Are the Future
    26. Summary
  2. 2. First Steps with Kubernetes
    1. Running Your First Container
    2. Installing Docker Desktop
    3. What Is Docker?
    4. Running a Container Image
    5. The Demo Application
    6. Looking at the Source Code
    7. Introducing Go
    8. How the Demo App Works
    9. Building a Container
    10. Understanding Dockerfiles
    11. Minimal Container Images
    12. Running docker image build
    13. Naming Your Images
    14. Port Forwarding
    15. Container Registries
    16. Authenticating to the Registry
    17. Naming and Pushing Your Image
    18. Running Your Image
    19. Hello, Kubernetes
    20. Running the Demo App
    21. If the Container Doesn’t Start
    22. Minikube
    23. Summary
  3. 3. Getting Kubernetes
    1. Cluster Architecture
    2. The Control Plane
    3. Node Components
    4. High Availability
    5. The Costs of Self-Hosting Kubernetes
    6. It’s More Work Than You Think
    7. It’s Not Just About the Initial Setup
    8. Tools Don’t Do All the Work for You
    9. Kubernetes The Hard Way
    10. Kubernetes Is Hard
    11. Administration Overhead
    12. Start with Managed Services
    13. Managed Kubernetes Services
    14. Google Kubernetes Engine (GKE)
    15. Cluster Autoscaling
    16. Autopilot
    17. Amazon Elastic Kubernetes Service (EKS)
    18. Azure Kubernetes Service (AKS)
    19. IBM Cloud Kubernetes Service
    20. DigitalOcean Kubernetes
    21. Kubernetes Installers
    22. kops
    23. Kubespray
    24. kubeadm
    25. Rancher Kubernetes Engine (RKE)
    26. Puppet Kubernetes Module
    27. Buy or Build: Our Recommendations
    28. Run Less Software
    29. Use Managed Kubernetes if You Can
    30. But What About Vendor Lock-in?
    31. Bare-Metal and On-Prem
    32. Multi-Cloud Kubernetes Clusters
    33. OpenShift
    34. Anthos
    35. Use Standard Kubernetes Self-Hosting Tools if You Must
    36. Clusterless Container Services
    37. Amazon Fargate
    38. Azure Container Instances (ACI)
    39. Google Cloud Run
    40. Summary