Kubernetes controller-runtime 介绍
我们在做CRD开发时,除了要写CRD定义之外,最重要的是实现CRD对应的Controller,这样CRD才能真正有用,而不论什么CRD,它的Controller的逻辑框架是大致一样的,主要就是监听CRD资源的变化事件,然后触发Reconcile逻辑去执行对应的动作,确保实际状态跟CRD的定义状态保持一致,此外,还有一些其他通用功能,比如监控、选主、Wehbook等,这种开发范式现在称之为Operator
,在万物皆可CRD的云原生时代,这种通用需求早已被剥离出来,成为单独的第三方库,即controller-runtime,而operator-sdk也封装的是 controller-runtime
,方便进行operator的开发,可见其重要性,本篇文章就对 controller-runtime
的概念、原理以及核心逻辑进行下介绍。