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.
The devil is in the details. More a reference than a true technical book.
The authors are very knowledgeable on Kubernetes and its internals but a book is great for what it contains but also for what it ignores.
The book contains too much details and is poorly organized. Why not start the book with a real-world example of what is possible when programming Kubernetes, to capture the reader attention, develop his curiosity, and slowly introduce details at the moment where the problems they solve appear.
Reading this book is like learning cooking by introducing every tools, then all ingredients, to finally prepare a basic recipe. You will be starving before turning the oven on...
Nonetheless, the book is still valuable because it discusses advanced topics that are not well detailed in the official documentation.
It is a great resource that bridges the gap between understanding Kubernetes as a user and building Kubernetes-native applications and operators. It dives deep into the Kubernetes API, its design philosophy, and how to programmatically interact with it using Go.
Best For: DevOps engineers wanting to build custom controllers Go developers building Kubernetes-native tooling System architects designing cloud-native systems Anyone who wants a deep Kubernetes understanding
Not Ideal For: Absolute beginners (need a lot of Kubernetes basics) People with zero Go knowledge
The first 100 pages are worth reading on their own. The authors explain the control loop, declarative vs. imperative, API-driven design, and event-driven design. But they go into depth in explaining why it is designed the way it is.
The middle chapters focus on using the client-go library to interact with Kubernetes programmatically.
Issue: Kubernetes changes frequently. The book was published in 2019; some details are outdated.
This book will definitely help you understand the basics of the Kubernetes API conventions and getting your first operator (extended API and respective controller(s)) out there.
I also respect the authors a lot, as engineers, particularly Schimanski for his countless contributions to everything API machinery. And for all that, the book gets 4 stars.
But there's so much that could be added to it. If someone is to pick it up for subsequent editions, I'd recommend opting for one of controller-runtime + controller-tools or kubebuilder (as it evolves), and drop Operator Framework as having the three just adds to distraction and confusion.
I picked up this book to learn more about k8s CRD, custom operators and controllers. Somehow I was satisfied.
Good points: - Explain about k8s API server, webhook, operators, controllers. - Include best practices when building CRD using Kubebuilder and Operator SDK - Real examples
Improvement points: - Too much details. Code piece is easy to be obsolete so a bit hard to track - Some concepts are not explained clearly.
Good source of information if you need to write a kubernetes controller or develop an operator. Since the documentation online is kind of lacking, I would recommend it.
The book tackles with advanced topics when developing Kubernetes native apps. It is good and provides some level of details. On the downside, some examples will not work by default, you need to do a little bit of digging. Also I would of liked some concepts to be drilled down even more. Overall a good read, there aren't many sources like this.
Picked up this book for a quick re-read. Some parts are a bit dated but still relevant. The eight chapter on Custom API servers was a bit hard to follow.
All aspects of programming for Kubernetes are covered, but not very relevant. It is probably better to see the corresponding chapter when we need to use a certain aspect.