The DevOps 2.3 Toolkit: Kubernetes

The DevOps 2.3 Toolkit: Kubernetes

Deploying and managing highly-available and fault-tolerant applications at scale

About the Book

The goal of this book is not to convince you to adopt Kubernetes but to provide a detailed overview of its features. I want you to become confident in your Kubernetes knowledge and only then choose whether to embrace it. That is, unless you already made up your mind and stumbled upon this book in search of Kubernetes guidance.

The plan is to cover all aspect behind Kubernetes, from basic to advanced features. We'll go not only through the tools behind the official project but also third-party add-ons. I hope that, by the time you finish reading this book, you will be able to call yourself "Kubernetes ninja". I cannot say that you will know everything there is to know about the Kubernetes ecosystem. That would be impossible to accomplish since its growing faster than any single person could follow. What I can say is that you will be very confident in running a Kubernetes cluster of any scale in production.

Like all my other books, this one is very hands-on. There will be just enough theory for you to understand the principles behind each topic. The book is packed with examples, so I need to give you a heads up. Do not buy this book if you're planning to read it on a bus or in bed before going to sleep. You will need to be in front of your computer. A terminal will be your best friend. `kubectl` will be your lover.

The book assumes that you feel comfortable with containers, especially Docker. We won't go into details how to build an image, what is container registry, and how to write Dockerfile. I hope you already know all that. If that's not the case, you might want to postpone reading this and learn at least basic container operations. This book is about things that happen after you built your images and stored them in a registry.

This book is about running containers at scale and not panicking when problems arise. It is about the present and the future of software deployment and monitoring. It's about embracing the challenges and staying ahead of the curve.

About the Author

Viktor Farcic
Viktor Farcic

Viktor Farcic is a lead rapscallion at Upbound, a member of the CNCF AmbassadorsGoogle Developer Experts, CDF Ambassadors, and GitHub Stars groups, and a published author.

He is a host of the YouTube channel DevOps Toolkit and a co-host of DevOps Paradox.

Table of Contents

  • Preface
  • Overview
  • Audience
  • About the Author
  • Dedication
  • How Did We Get Here?
    • A Glimpse From The Past
    • A Short History Of Infrastructure Management
    • A Short History Of Deployment Processes
    • What Is A Container Scheduler?
    • What Is Kubernetes?
  • Running Kubernetes Cluster Locally
    • Installing kubectl
    • Installing Minikube
    • Creating A Local Kubernetes Cluster With Minikube
    • What Now?
  • Creating Pods
    • Creating A Cluster
    • A Quick And Dirty Way To Run Pods
    • Defining Pods Through Declarative Syntax
    • Running Multiple Containers In A Single Pod
    • Monitoring Health
    • Pods Are (Almost) Useless (By Themselves)
    • What Now?
  • Scaling Pods With ReplicaSets
    • Creating A Cluster
    • Creating ReplicaSets
    • Operating ReplicaSets
    • What Now?
  • Using Services To Enable Communication Between Pods
    • Creating A Cluster
    • Creating Services By Exposing Ports
    • Creating Services Through Declarative Syntax
    • Splitting The Pod And Establishing Communication Through Services
    • Defining Multiple Objects In The Same YAML file
    • Discovering Services
    • What Now?
    • Kubernetes Pods, ReplicaSets, And Services Compared To Docker Swarm Stacks
  • Deploying Releases With Zero-Downtime
    • Creating A Cluster
    • Deploying New Releases
    • Updating Deployments
    • Zero-Downtime Deployments
    • Rolling Back Or Rolling Forward?
    • Rolling Back Failed Deployments
    • Merging Everything Into The Same YAML definition
    • Updating Multiple Objects
    • Scaling Deployments
    • What Now?
    • Kubernetes Deployments Compared To Docker Swarm Stacks
  • Using Ingress To Forward Traffic
    • Creating A Cluster
    • Exploring Deficiencies When Enabling External Access Through Kubernetes Services
    • Enabling Ingress Controllers
    • Creating Ingress Resources Based On Paths
    • Creating Ingress Resources Based On Domains
    • Creating An Ingress Resource With Default Backends
    • What Now?
    • Kubernetes Ingress Compared To Docker Swarm Equivalent
  • Using Volumes To Access Host’s File System
    • Creating A Cluster
    • Accessing Host’s Resources Through hostPath Volumes
    • Using hostPath Volume Type To Inject Configuration Files
    • Using gitRepo To Mount A Git Repository
    • Persisting State Through The emptyDir Volume Type
    • What Now?
  • Using ConfigMaps To Inject Configuration Files
    • Creating A Cluster
    • Injecting Configurations From Files
    • Injecting Configurations From Key/Value Literals
    • Injecting Configurations From Environment Files
    • Converting ConfigMap Output Into Environment Variables
    • Defining ConfigMaps As YAML
    • A Plea NOT To Use ConfigMaps!
    • What Now?
    • Kubernetes ConfigMaps Compared To Docker Swarm Configs
  • Using Secrets To Hide Confidential Information
    • Creating A Cluster
    • Exploring Built-In Secrets
    • Creating And Mounting Generic Secrets
    • Secrets Compared To ConfigMaps
    • Not So Secretive Secrets
    • What Now?
    • Kubernetes Secrets Compared To Docker Swarm Secrets
  • Dividing A Cluster Into Namespaces
    • Creating A Cluster
    • Deploying The First Release
    • Exploring Virtual Clusters
    • Exploring The Existing Namespaces
    • Deploying To A New Namespace
    • Communicating Between Namespaces
    • Deleting A Namespace And All Its Objects
    • What Now?
    • Kubernetes Namespaces Compared To Docker Swarm Equivalent (If There Is Any)
  • Securing Kubernetes Clusters
    • Accessing Kubernetes API
    • Authorizing Requests
    • Creating A Cluster
    • Creating Users
    • Exploring RBAC Authorization
    • Peeking Into Pre-Defined Cluster Roles
    • Creating Role Bindings And Cluster Role Bindings
    • Replacing Users With Groups
    • What Now?
    • Kubernetes RBAC Compared To Docker Swarm RBAC
  • Managing Resources
    • Creating A Cluster
    • Defining Container Memory And CPU Resources
    • Measuring Actual Memory and CPU Consumption
    • Exploring The Effects Of Discrepancies Between Resource Specifications And Resource Usage
    • Adjusting Resources Based on Actual Usage
    • Exploring Quality Of Service (QoS) Contracts
    • Defining Resource Defaults and Limitations Within A Namespace
    • Defining Resource Quotas For A Namespace
    • What Now?
    • Kubernetes Resource Management Compared To Docker Swarm Equivalent
  • Creating A Production-Ready Kubernetes Cluster
    • What Is Kubernetes Operations (kops) Project?
    • Preparing For The Cluster Setup
    • Creating A Kubernetes Cluster In AWS
    • Exploring The Components That Constitute The Cluster
    • Updating The Cluster
    • Upgrading The Cluster Manually
    • Upgrading The Cluster Automatically
    • Accessing The Cluster
    • Deploying Applications
    • Exploring High-Availability And Fault-Tolerance
    • Giving Others Access To The Cluster
    • Destroying The Cluster
    • What Now?
    • Kubernetes Operations (kops) Compared To Docker For AWS
  • Persisting State
    • Creating A Kubernetes Cluster
    • Deploying Stateful Applications Without Persisting State
    • Creating AWS Volumes
    • Creating Kubernetes Persistent Volumes
    • Claiming Persistent Volumes
    • Attaching Claimed Volumes To Pods
    • Using Storage Classes To Dynamically Provision Persistent Volumes
    • Using Default Storage Classes
    • Creating Storage Classes
    • What Now?
  • The End
  • Contributions

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub