Chapter 18. Accessing Kubernetes from Common Programming Languages
Though most of this book is dedicated to using declarative YAML configurations, either directly via kubectl
or through tools like Helm, there are situations
when it is necessary to interact with the Kubernetes API directly from a
programming language. For example, the authors of the Helm tool itself needed
to write that application in a programming language. More generally, this is common if you need to write some additional tool, like a kubectl
plug-in, or a more complex piece of code, like a Kubernetes operator.
Much of the Kubernetes ecosystem is written in the Go programming language. As a result, the Go language has the richest and most extensive client. However, there are a high-quality clients for most common programming languages (and even some uncommon ones as well). Because there is already so much documentation and so many examples of how to use the Go client, this chapter will cover the basics of interacting with the Kubernetes API server with examples in Python, Java, and .NET.
The Kubernetes API: A Client’s Perspective
At the end of the day, the Kubernetes API server is just an HTTP(S) server and that is exactly how each client library perceives it, though each client has a lot of additional logic that implements the various API calls and serializes to and from JSON. Given this, you might be tempted to simply use a plain HTTP client to work with the Kubernetes APIs, but the client libraries wrap ...
Get Kubernetes: Up and Running, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.