Kubernetes: Core and Named API Groups
Kubernetes has multiple API groups that organize resources based on their functionality. The core group contains essential resources that are integral to the platform’s operation. Its API endpoint is located at /api/v1. On the other hand, the named groups allow you to extend Kubernetes functionality by introducing custom resources and controllers. Its API endpoint is /apis/$GROUP_NAME/$VERSION.
Table of Contents
· Core Group
∘ REST path
∘ apiVersion field in manifest file
∘ Resources
· Named Groups
∘ REST path
∘ apiVersion field in manifest file
∘ Resources
Kubernetes provides an extensive set of APIs that enable the management of its resources. These APIs are grouped into several categories, each representing a specific set of related resources. In this article, we will be discussing the two main groups, the core group and the named groups.
Core Group
The core group contains essential Kubernetes resources that are integral to the system’s functionality.
REST path
The core group’s API endpoint is located at /api/v1.
/api/v1
apiVersion field in manifest file
The core group is not specified as part of the apiVersion
field.
apiVersion: v1
Resources
The core group in Kubernetes contains the fundamental resources required for managing the cluster. Here are some of the resources included in the core group:
- pods: Smallest deployable unit that represents a single instance of a running process in the cluster.
- nodes: Represent a worker node in the cluster.
- namespaces: Provide a way to partition resources within the cluster.
- services: Define a logical set of pods and a policy for accessing them.
- configmaps: Store configuration data as key-value pairs.
- secrets: Store sensitive information, such as passwords and API keys.
- persistent volumes (PV): Represent a piece of networked storage in the cluster.
- persistent volume claims (PVC): Request a specific amount of storage resources from a PV.
- events: Represent an event generated by the Kubernetes system or a Kubernetes object.
- endpoints: Map a service to the set of pods that implement it.
Named Groups
The named groups is a way to extend Kubernetes functionality by adding custom resources and controllers. It allows you to define and manage your custom resources, which can be used to build custom controllers and operators.
REST path
The named groups API is located at /apis/$GROUP_NAME/$VERSION.
$GROUP_NAME : the name of your custom resource
$VERSION: the API version of your custom resource.
/apis/$GROUP_NAME/$VERSION
apiVersion field in manifest file
The named group is identified by the $GROUP_NAME included in the apiVersion field.
apiVersion: $GROUP_NAME/$VERSION
Resources
The resources in named groups depend on the specific named group that is being used. The following are some examples of named groups in Kubernetes and their associated resources:
- apps: Deployments, ReplicaSets, StatefulSets, DaemonSets, and DeploymentsRollback.
- extensions: Ingresses, NetworkPolicies, and PodSecurityPolicies.
- batch: CronJobs and Jobs.
- storage.k8s.io: StorageClasses and VolumeAttachments.
- policy: PodDisruptionBudgets.
Note that the resources available in a named group can change depending on the version of Kubernetes being used. It is important to check the Kubernetes documentation for the specific version being used to ensure accuracy.
These are my personal notes for CKA exam preparation on Kubernetes. Please feel free to correct me if you notice any errors. 😊
Reference: