K8s CustomResourceDefinitions (CRD) 原理
K8s CustomResourceDefinition (CRD) 为使用者提供了开箱即用的 REST API 拓展能力。使用方只需创建一份 CRD 声明,kube-apiserver 就会自动提供一套成熟的 HTTP REST API,并直接将 Custom Resources 存储到背后存储(通常是 etcd)中。本文由浅入深,先展示了 CRD 的基本使用方式、kubectl 与对应 Custom API 模块的交互原理,再深入探究 CRD 在 kube-apiserver 内部的实现原理,最后对其特性的利弊做了总结