Please submit pull requests for books, tutorials, or other assets that would be useful to folks using Kubernetes.
By: Matt Butcher, Karen Chu & Bailey Beougher
The characters Phippy, Captain Kube, Goldie, and Zee and the two books are owned by The Linux Foundation, on behalf of the Cloud Native Computing Foundation, and licensed under the Creative Commons Attribution License (CC-BY), which means that you can remix, transform, and build upon the material for any purpose, even commercially. If you use the characters, please include the text “https://phippy.io” to provide attribution (and online, please include a link to https://phippy.io).
The characters and the two books were created by Matt Butcher, Karen Chu, and Bailey Beougher and donated by Microsoft to CNCF. Goldie is based on the Go Gopher, created by Renee French, which is also licensed under CC-BY.
By: Justin Garrison and Kris Nova
If you’re an engineer developing infrastructure or infrastructure management tools this book is for you. This book will help you understand the patterns, processes, and practices to create infrastructure that is intended to be run in a cloud environment. By having an understanding of how things should be, you can better know the application’s role and what should be consumed as external services.
Application engineers can also discover what services should be a part of their applications and which they can rely on from the underlying platform. Through this book they will also discover the shared responsibilities they have with the engineers writing applications to manage the infrastructure.
Systems Administrators who are looking to level up their skills and take a more prominent role in designing infrastructure and maintaining infrastructure in a cloud native way can learn from this book.
Do you run all of your infrastructure in a public cloud? This book will help you know when to consume cloud services and when to build your own abstractions or services.
Run a datacenter or on-premisis cloud? We will outline what modern applications expect from infrastructure and help you understand the necessary services to utilize your current investments.
This book is not a how-to and outside of giving implementation examples we’re not prescribing a specific product. It is probably too technical for managers, directors, and executives, but could be helpful depending on the involvement and technical expertiese of the person in that role.
Most of all, please read this book if you want to learn how infrastructure impacts business, and how you can create infrastructure that has proven to scale to the demanding needs of Internet sized applications. Even if you don’t have applications that require scaling to that size you will still be better able to provide value if your infrastructure is built with the patterns described here with flexibility and operability in mind.
By: Emily Freeman and Nathen Harvey
If you create, manage, operate, or configure systems running in the cloud, you’re a cloud engineer–even if you work as a system administrator, software developer, data scientist, or site reliability engineer. With this book, professionals from around the world provide valuable insight into today’s cloud engineering role.
These concise articles explore the entire cloud computing experience, including fundamentals, architecture, and migration. You’ll delve into security and compliance, operations and reliability, and software development. And examine networking, organizational culture, and more. You’re sure to find 1, 2, or 97 things that inspire you to dig deeper and expand your own career.
- “Three Keys to Making the Right Multicloud Decisions,” Brendan O’Leary
- “Serverless Bad Practices,” Manases Jesus Galindo Bello
- “Failing a Cloud Migration,” Lee Atchison
- “Treat Your Cloud Environment as If It Were On Premises,” Iyana Garry
- “What Is Toil, and Why Are SREs Obsessed with It?", Zachary Nickens
- “Lean QA: The QA Evolving in the DevOps World,” Theresa Neate
- “How Economies of Scale Work in the Cloud,” Jon Moore
- “The Cloud Is Not About the Cloud,” Ken Corless
- “Data Gravity: The Importance of Data Management in the Cloud,” Geoff Hughes
- “Even in the Cloud, the Network Is the Foundation,” David Murray
- “Cloud Engineering Is About Culture, Not Containers,” Holly Cummins
By: Jami Kousa with the help of University of Helsinki’s Toska and numerous course attendees.
This course is an introductory course to Kubernetes with K3s and GKE. In this course, you will develop software with a microservice architecture that utilizes Kubernetes to serve software that scales and deploys automatically. And learn how to manage it all.
This course may be challenging as it expects that you
- are familiar with containers
- are able to independently develop web software
- have knowledge of SQL databases
- know basics of networking
As this course was written by a developer it offers an introduction into Kubernetes with the eyes of a developer. This course does not go into Kubernetes administration and there are other resources such as Kubernetes the hard way which offer a deep dive into how everything works, but course may work as a starting point.
Licenced under Creative Commons BY-NC-SA 3.0 -licence
By: Aurélie Vache
Understanding Kubernetes can be difficult or time-consuming. This collection of sketchnotes about Kubernetes have been created in order to explain the Cloud technology in a visual way.
The book covers:
- Kubernetes components (etcd, API-server, scheduler, kubelet, controller manager, proxy…)
- Resources (Pods, Jobs, CronJobs, ConfigMaps, Secrets, Deployments, ReplicaSet, DaemonSet, Services, Ingress, PV, PVC…)
- QoS, Horizontal PodAutoScaler, Pod & Node Affinity, Network Policies…
- And also a example for operations you can do on Nodes
- Debugging / Troubleshooting Kubernetes
- Useful tools to use
The whole book includes “How To” with concrete examples for all concepts and illustrations that helps to understand abstract concepts.
I hope this book will help you in your journey for understanding Kubernetes.
By: Cornelia Davis
Cloud Native Patterns is your guide to developing strong applications that thrive in the dynamic, distributed, virtual world of the cloud. This book presents a mental model for cloud-native applications, along with the patterns, practices, and tooling that set them apart.
Cloud platforms promise the holy grail: near-zero downtime, infinite scalability, short feedback cycles, fault-tolerance, and cost control. But how do you get there? By applying cloud native designs, developers can build resilient, easily adaptable, web-scale distributed applications that handle massive user traffic and data loads. Learn these fundamental patterns and practices, and you’ll be ready to thrive in the dynamic, distributed, virtual world of the cloud.
With 25 years of experience under her belt, Cornelia Davis teaches you the practices and patterns that set cloud-native applications apart. With realistic examples and expert advice for working with apps, data, services, routing, and more, she shows you how to design and build software that functions beautifully on modern cloud platforms. As you read, you will start to appreciate that cloud-native computing is more about the how and why rather than the where.
By: Bilgin Ibryam and Roland Huß
The way developers design, build, and run software has changed significantly with the evolution of microservices and containers. These modern architectures use new primitives that require a different set of practices than most developers, tech leads, and architects are accustomed to. With this focused guide, Bilgin Ibryam and Roland Huß from Red Hat provide common reusable elements, patterns, principles, and practices for designing and implementing cloud-native applications on Kubernetes.
Each pattern includes a description of the problem and a proposed solution with Kubernetes specifics. Many patterns are also backed by concrete code examples. This book is ideal for developers already familiar with basic Kubernetes concepts who want to learn common cloud-native patterns. You’ll learn about the following pattern categories:
- Foundational patterns cover the core principles and practices for building container-based cloud-native applications.
- Behavioral patterns explore finer-grained concepts for managing various types of container and platform interactions.
- Structural patterns help you organize containers within a pod, the atom of the Kubernetes platform.
- Configuration patterns provide insight into how application configurations can be handled in Kubernetes.
- Advanced patterns cover more advanced topics such as extending the platform with operators.
A free copy of this book is available through Red Hat
By: Marko Lukša
Kubernetes in Action is a comprehensive guide to effectively developing and running applications in a Kubernetes environment. Before diving into Kubernetes, the book gives an overview of container technologies like Docker, including how to build containers, so that even readers who haven’t used these technologies before can get up and running.
Kubernetes is Greek for “helmsman,” your guide through unknown waters. The Kubernetes container orchestration system safely manages the structure and flow of a distributed application, organizing containers and services for maximum efficiency. Kubernetes serves as an operating system for your clusters, eliminating the need to factor the underlying network and server infrastructure into your designs.
Kubernetes in Action teaches you to use Kubernetes to deploy container-based distributed applications. You’ll start with an overview of Docker and Kubernetes before building your first Kubernetes cluster. You’ll gradually expand your initial application, adding features and deepening your knowledge of Kubernetes architecture and operation. As you navigate this comprehensive guide, you’ll explore high-value topics like monitoring, tuning, and scaling.
By: Kelsey Hightower, Brendan Burns, and Joe Beda
Legend has it that Google deploys over two billion application containers a week. How’s that possible? Google revealed the secret through a project called Kubernetes, an open source cluster orchestrator (based on its internal Borg system) that radically simplifies the task of building, deploying, and maintaining scalable distributed systems in the cloud. This practical guide shows you how Kubernetes and container technology can help you achieve new levels of velocity, agility, reliability, and efficiency.
Authors Kelsey Hightower, Brendan Burns, and Joe Beda—who’ve worked on Kubernetes at Google and other organizatons—explain how this system fits into the lifecycle of a distributed application. You will learn how to use tools and APIs to automate scalable distributed systems, whether it is for online services, machine-learning applications, or a cluster of Raspberry Pi computers.
- Explore the distributed system challenges that Kubernetes addresses
- Dive into containerized application development, using containers such as Docker
- Create and run containers on Kubernetes, using the docker image format and container runtime
- Explore specialized objects essential for running applications in production
- Reliably roll out new software versions without downtime or errors
- Get examples of how to develop and deploy real-world applications in Kubernetes
By: Nigel Poulton
Every page, and every example, updated to the latest versions of Kubernetes and the latest trends in the cloud-native ecosystem.
Containers have revolutionized the way build, share and run applications. But like all good things, they come with their own set of challenges. This is where Kubernetes enters the scene.
Kubernetes helps you deploy and manage containerized applications at scale. It abstracts the underlying infrastructure so that you don’t need to care whether you’re deploying your applications to Amazon Web Services, Microsoft Azure, or your own on-premises datacenter. With Kubernetes, you can develop your applications on your laptop, deploy to your chosen cloud platform, migrate to a different cloud platform, and even migrate to your private cloud at your on-premises datacenter.
The Kubernetes Book starts from the beginning and covers everything you need to know to be proficient with Kubernetes. It even includes two chapters dedicated to threat-modeling Kubernetes and real-world security.
- Kubernetes architecture
- How to build Kubernetes
- How to deploy and manage applications on Kubernetes
- How to secure Kubernetes
- The meaning of terms such as; cloud-native, microservices, desired state, containerized, and more…
Finally, Kubernetes and cloud technologies are developing fast! That’s why this book will be updated at least once per year, meaning it’s always up-to-date with the latest versions of Kubernetes and the latest trends in the cloud-native ecosystem.
By: Kelsey Hightower
This tutorial walks you through setting up Kubernetes the hard way. This guide is not for people looking for a fully automated command to bring up a Kubernetes cluster.
Kubernetes The Hard Way is optimized for learning, which means taking the long route to ensure you understand each task required to bootstrap a Kubernetes cluster.
The results of this tutorial should not be viewed as production ready, and may receive limited support from the community, but don’t let that stop you from learning!
By: Jason Dobies and Joshua Wood
Operators are a way of packaging, deploying, and managing Kubernetes applications. A Kubernetes application doesn’t just run on Kubernetes; it’s composed and managed in Kubernetes terms. Operators add application-specific operational knowledge to a Kubernetes cluster, making it easier to automate complex, stateful applications and to augment the platform. Operators can coordinate application upgrades seamlessly, react to failures automatically, and streamline repetitive maintenance like backups.
Think of Operators as site reliability engineers in software. They work by extending the Kubernetes control plane and API, helping systems integrators, cluster administrators, and application developers reliably deploy and manage key services and components. Using real-world examples, authors Jason Dobies and Joshua Wood demonstrate how to use Operators today and how to create Operators for your applications with the Operator Framework and SDK.
- Learn how to establish a Kubernetes cluster and deploy an Operator
- Examine a range of Operators from usage to implementation
- Explore the three pillars of the Operator Framework: the Operator SDK, the Operator Lifecycle Manager, and Operator Metering
- Build Operators from the ground up using the Operator SDK
- Build, package, and run an Operator in development, testing, and production phases
- Learn how to distribute your Operator for installation on Kubernetes clusters
A free copy of this book is available through Red Hat
By: Michael Hausenblas and Stefan Schimanski
If you’re looking to develop native applications in Kubernetes, this is your guide. Developers and AppOps administrators will learn how to build Kubernetes-native applications that interact directly with the API server to query or update the state of resources. AWS developer advocate Michael Hausenblas and Red Hat principal software engineer Stefan Schimanski explain the characteristics of these apps and show you how to program Kubernetes to build them.
You’ll explore the basic building blocks of Kubernetes, including the client-go API library and custom resources. All you need to get started is a rudimentary understanding of development and system administration tools and practices, such as package management, the Go programming language, and Git.
Walk through Kubernetes API basics and dive into the server’s inner structure Explore Kubernetes’s programming interface in Go, including Kubernetes API objects Learn about custom resources—the central extension tools used in the Kubernetes ecosystem Use tags to control Kubernetes code generators for custom resources Write custom controllers and operators and make them production ready Extend the Kubernetes API surface by implementing a custom API server
By: Zachary Arnold
This workshop adopts a practical approach to get you acquainted with the Kubernetes environment and its applications. Starting with an introduction to the fundamentals of Kubernetes, you’ll install and set up your Kubernetes environment. You’ll understand how to write YAML files and deploy your first simple web application container using Pod. You’ll then assign human-friendly names to Pods, explore various Kubernetes entities and functions, and discover when to use them. As you work through the chapters, this Kubernetes book will show you how you can make full-scale use of Kubernetes by applying a variety of techniques for designing components and deploying clusters. You’ll also get to grips with security policies for limiting access to certain functions inside the cluster. Toward the end of the book, you’ll get a rundown of Kubernetes advanced features for building your own controller and upgrading to a Kubernetes cluster without downtime. What you will learn
- Get to grips with the fundamentals of Kubernetes and its terminology
- Share or store data in different containers running in the same pod
- Create a container image from an image definition manifest
- Construct a Kubernetes-aware continuous integration (CI) pipeline for deployments
- Attract traffic to your app using Kubernetes ingress
- Build and deploy your own admission controller
Who this book is for Whether you are new to the world of web programming or are an experienced developer or software engineer looking to use Kubernetes for managing and scaling containerized applications, you’ll find this workshop useful. A basic understanding of Docker and containerization is necessary to make the most of this book.
Kubernetes and Cloud Native Computing Foundation News Sources - How do you keep up with Kubernetes?