Comprehensive kubernetes book.
Some context: I do not use kubernetes either at home or at work, but I am very curious about this new technology. Before this, I read a book from Brendan Burns (Designing Distributed Systems) which was a disappointment. I also used docker at work, and some docker-compose, but I'm no expert.
This book is suited for people interested in systems architecture in general, as there's a lot of overlap between this general field and architecture of apps running on kubernetes.
The author has prepared a github repo, and introduces a lot of concepts in both a theoretical, and a hand-on way. You'll remember things if you follow along with the examples.
In the later chapters, the author then expands on topics such as:
*Base concepts: pods, containers, deployments, jobs, replicas, services, ingresses, DaemonSets (like deploymenys, but for ensuring 1 pod runs on each node), StatefulSets(like deployments, but starts/stops nodes in defined order, and assign them special DNS names), CronJobs, etc
* Clusters vs namespaces
* How to evaluate whether kubernetes will work for you (with a rough cost estimate as well)
* Different ways to deploy a cluster - on different clouds, with different tools
* All kinds of tooling (graphical and CLI) for kubernetes
* How to debug individual apps (using Docker specific techniques)
* Helm, as a package manager for k8s
* Liveness vs readiness probes for HTTP/tcp and other protocols
* Deployment strategies (rolling vs all-at-once restart) and tweaks
* Roles and permissions
* Tips for estimating the number of nodes needed, and how to best distribute the pods in them
* Pod affinities, antiaffinities node taints and pod tolerations, for better control over where pods run
* The Cloud Native Computing Foundation (CNCF) and their awesome projects
* K8S security
* Backup with Velero
* Configuration and secrets management (this was awesome)
* Tools for writing/generating/converting kubernetes yaml files (draft is worth mentioning here. That tools can generate Dockerfiles and Helm charts for you, if you don't have either - skip the pain of the initial boring boilerplate)
* Observability: how to think about it (think Requests, Errors, Duration - RED - for services and USE - usage, saturation, errors for infrastructure), and what tools to use with it (Prometheus is worth mentioning as an open source tool)
Because of the range and depth of the topics, I think this is an awesome book