The DevOps 2.3 Toolkit: Kubernetes
The DevOps 2.3 Toolkit: Kubernetes
$30.00
Minimum
$38.00
Suggested
The DevOps 2.3 Toolkit: Kubernetes

This book is 100% complete

Completed on 2018-09-11

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.

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
    • 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

Bundles that include this book

The DevOps 2.3 Toolkit: Kubernetes
The DevOps 2.4 Toolkit: Continuous Deployment To Kubernetes
2 Books
$60.00
Regular Price
$50.00
Bundle Price

About the Author

Viktor Farcic
Viktor Farcic

Viktor Farcic is a Senior Consultant at CloudBees and a member of the Docker Captains group.

He coded using a plethora of languages starting with Pascal (yes, he is old), Basic (before it got Visual prefix), ASP (before it got .Net suffix), C, C++, Perl, Python, ASP.Net, Visual Basic, C#, JavaScript, Java, Scala, etc. He never worked with Fortran. His current favourite is Go.

His big passions are Microservices, Continuous Deployment and Test-Driven Development (TDD).

He often speaks at community gatherings and conferences.

The Leanpub 45-day 100% Happiness Guarantee

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

See full terms...

Write and Publish on Leanpub

Authors and publishers use Leanpub to publish amazing in-progress and completed ebooks, just like this one. You can use Leanpub to write, publish and sell your book as well! 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. It really is that easy.

Learn more about writing on Leanpub