k8s的crd、operator、cr分别是什么?
简单对比理解:
operator相当于deployment这种资源的controller
crd相当于deployment的这个kind
cr相当于一个具体的deployment实例
operator是进程,需要image镜像
crd只是定义一个自定义的kind,不需要镜像,就是在apiserver那里注册一下,告诉k8s集群,我弄了一个新的资源类型,比如叫servicemonitors.monitoring.coreos.com
cr是一个kind的实例,一般deployment的实例,里面会定义pod的image,但是cr不一定会,因为cr有可能不用起pod,只是一个说明,类似于一个配置文件。
有的cr里面可以写image,有的cr里面不写image,到底写不写,这个跟operator的设计有关,比如说deployment的controller要求具体的deployment资源文件里面要写清楚image,那么就得写。但是第三方,非k8s官方发布的operator不一定要求自己的cr里面要写image,这个看情况。