✦ For everyone, free.

Practical knowledge for real and everyday life

Home

1.29 Kubernetes Extensibility Definition

Kubernetes extensibility allows customization and expansion of the platform through plugins, operators, and custom resources, enabling tailored cloud-native solutions.

Kubernetes Extensibility Definition is the precise characterization of Custom Resource Definitions as the mechanism through which the Kubernetes API's set of recognized resource types is expanded, defined by the fact that a CRD registers a new schema with the API server without altering the API server's own code, distinguishing extension through configuration from extension through modification.


Extensibility Defined as Registration, Not Modification

Adding a Schema, Not Rebuilding a Binary

A Custom Resource Definition is defined as an act of registration: submitting a CRD tells the already-running API server about a new resource type, its schema, and its versioning, without requiring the API server binary itself to be recompiled or replaced.

The API Server Remains Generic

This definition depends on the API server being generic with respect to resource types; because the server's core machinery for storage, validation, and serving already operates on schemas rather than hardcoded types, a newly registered CRD is served using the exact same generic machinery as any built-in resource.

CRD = schema registration API server modification

Custom Resources Defined as Passive Data

Structure Without Behavior

An instance of a custom resource, created once its CRD is registered, is defined as passive structured data; creating one causes nothing to happen automatically, since a CRD alone defines only what a custom resource looks like, not what should occur when one is created, changed, or deleted.

Behavior Requires a Separate Controller

Any reactive behavior tied to a custom resource is defined as belonging to a separate component, namely a controller that watches for instances of that resource and takes action, meaning a CRD by itself is only ever a schema, never an automation.


The Operator Pattern as a Defined Combination

Two Independently Defined Parts Working Together

The Operator pattern is defined precisely as the pairing of a CRD, providing the schema for a domain-specific concept, with a custom controller, providing the reconciliation logic that acts on instances of that schema; neither half alone constitutes an Operator.


Boundaries of CRD-Based Extensibility

Not Suitable for Every Kind of Extension

The CRD mechanism is defined around adding new resource types with conventional storage and API behavior; extension scenarios requiring fundamentally different serving logic, storage backends, or request handling fall outside what a CRD alone can provide, requiring the separately defined aggregation layer instead.

Versioning Follows the Same Rules as Built-In Resources

Because custom resources are served through the same generic machinery as built-in ones, their definition inherits the same versioning conventions, including the distinction between alpha, beta, and stable API versions.


Extensibility Composition Diagram

CRD Controller Operator