Kubernetes Extension Points

Kubernetes itself and its built-in resources are highly configurable so that any modern cloud-native application can be configured to run on the cloud environment. When it comes to adding new capabilities, converting human knowledge into code and automating more, the Kubernetes extension comes to the rescue. Fortunately, to extend the capabilities of Kubernetes, users do not need to download the source code, make changes, build and deploy the complete system. With its modularity, the extension points of Kubernetes are already defined and ready to use.

Kubernetes extension points focus on the current functionalities of Kubernetes and its environment. Built-in components and how to extend Kubernetes are summarized in the following categories:

  • Kubernetes clients: It is possible to extend client applications such as kubectl by writing kubectl plugins. These extensions will help you use kubectl with less human interaction, such as choosing a Kubernetes cluster context automatically. Likewise, generated clients with the OpenAPI specifications can extend client libraries such as client-go. With these generated clients, you can programmatically use the Kubernetes API in custom applications.
  • Kubernetes API types: Kubernetes API resources such as pods, deployments, and many more are highly configurable, but it is also possible to add new resources called custom resources.
  • Kubernetes API controllers: The control plane of Kubernetes, which includes the Kubernetes API server, handles all operations, such as automatic scaling or self-healing; however, it is also possible to develop custom controllers.
  • Access controllers: The access control mechanism that handles authentication, authorization, and admission controllers can be extended by connecting to webhook servers or intervening with initializers.
  • Scheduling: kube-scheduler already handles the scheduling of pods to the nodes; however, it is also possible to create custom schedulers and deploy them to the clusters.
  • Infrastructure: The infrastructure part of Kubernetes is standardized, regarding the server, network, and storage with the Container Runtime Interface (CRI), Container Network Interface (CNI), and Container Storage Interface (CSI). The implementation, of these interfaces provide ways of extending the infrastructure of the underlying Kubernetes clusters.

I have put the preceding categories into the following table for ease of use:

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.254.133