This book begins by introducing the structure of the Kubernetes API and which operations it serves. Following chapters demonstrate how to write native Kubernetes resources definitions using Go structures defined in the API and API Machinery libraries. Miscellaneous utilities are described to help you work with different resource fields and to convert your resource definitions to or from YAML or JSON. Next, you will learn how to interact with the Kubernetes API server to create, delete, update, and monitor resources in a cluster using the client-go library. A complete chapter is devoted to tools provided to test your programs using the client-go library. An example follows to wrap up the first part of the book, describing how to write a kubectl plugin. Next, you will learn how to extend the Kubernetes API using Custom Resource Definitions, and how to write Kubernetes resources in a generic way as well as how to create your own resources using the unstructured concept. The next chapters delve into the controller-runtime library, useful for extending Kubernetes by writing operators, and the kubebuilder framework, which leverages this library, to help you start writing operators in minutes.
After reading this book, you will have a deep understanding of the Kubernetes API’s structure and how Kubernetes resources are organized within it, and have at your disposal a complete toolbox to help you write Kubernetes clients and operators.
What You Will Learn
- Understand how the Kubernetes API and its resources are organized
- Write Kubernetes resources in Go
- Create resources in a cluster
- Leverage your newly-gained knowledge to write Kubernetes clients and operators
Who is this Book for :
Software engineers and (Site Reliability Engineers) SREs wishing to write Kubernetes clients and operators using the Go language.表中的内容
Chapter 1: Kubernetes API Introduction.- Chapter 2: Kubernetes API Operations..- Chapter 3: Working with API Resources in Go.- Chapter 4: Using Common types.- Chapter 5: The API Machinery.-Chapter 6: The Client-go library.- Chapter 7: Testing Applications using Client-Go.-Chapter 8 Extending Kubernetes API with Custom Resources Definitions.- Chapter 9: Working with Custom Resource.- Chapter 10: Writing Operators with the controller-runtime Library.- Chapter 11: Writing the Reconcile Loop.- Chapter 12:Testing the Reconcile Loop.- Chapter 13: Creating an Operator with Kubebuilder.
关于作者
Philippe Martin has been working with Kubernetes for five years, first by creating an operator to deploy video CDNs into the cloud, later helping companies deploy their applications into Kubernetes, then writing a client to help developers work in a Kubernetes environment. Philippe passed the CKAD, CKA and CKS certifications. He has long experience with distributed systems and open-source software: he started his career 20 years ago creating thin clients based on the Linux kernel and open source components. He is currently working at Red Hat on the Development Tools team. Philippe is active in the development of Kubernetes, especially its documentation, and participates in the translation of the official documentation into French, has edited two reference books about the Kubernetes API and kubectl, and is responsible for the French translation of the Kubernetes Dashboard. He participated in Google Season of Docs to create the new Kubernetes API Reference section ofthe official documentation, and is maintaining it. He is currently participating in the Apps SIG, a group that covers deploying and operating applications in Kubernetes.