Kubernetes provides a rich set of both primitives (e.g. pods) and higher-level constructs (e.g. deployments) you can use to run your workloads. It also has a solid technical foundation, providing an API server backed by etcd for data storage. You can accomplish many things with the out of the box components, but sometimes the built-in functionality isn’t enough. Maybe you want to run a backup when
![An Introduction to Extending Kubernetes with CustomResourceDefinitions](https://cdn-ak-scissors.b.st-hatena.com/image/square/7438c7a82809d36d15671e69ad35fc29406b6b2a/height=288;version=1;width=512/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1200%2F1%2ARoVYnaHIHeWMzMzs6C0BqA.jpeg)