CertGrid CertGrid
Hands-on Lab·Certified Kubernetes Administrator

Custom Resources and Operators

A CRD gives you a real Kubernetes resource with validation, printer columns, RBAC and kubectl support, for the cost of one YAML file. It gives you no behaviour at all, and the gap between those two facts is what an operator fills.

Cluster Architecture and Configuration Guide 20 of 103 Intermediate

Written against the versions above. `apiextensions.k8s.io/v1` requires a structural schema, so the permissive CRDs from older tutorials no longer apply cleanly.

A CRD is cluster-scoped, so this runs from the control plane node and affects the whole cluster.
Server NameIP AddressOSRolesCPURAMHDD
CKA1001192.168.0.175Ubuntu 26.04 LTSControl Plane Node2 Core4 GB50 GB
CKA1001-NODE01192.168.0.176Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE02192.168.0.177Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE03192.168.0.178Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB

Before you start

  1. One YAML file adds a resource type

  2. It behaves like a built-in resource

  3. Validation is enforced by the API server

  4. The status subresource, and why it is separate

  5. Nothing happens, and that is the whole point of an operator

  6. Deleting the CRD deletes every object of that kind

Official sources