Kubernetes: Core and Named API Groups

Claire Lee
3 min readMar 25, 2023

--

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.

Kubernetes: Core and Named API Groups

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.

core REST path
/api/v1

apiVersion field in manifest file

The core group is not specified as part of the apiVersion field.

core apiVersion
apiVersion: v1

Resources

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.

--

--