如果这个问题已经被回答了,我很抱歉,但是在尝试了许多不同的谷歌搜索答案之后,我没有得到一个明确的解释,所以我试图在这里寻求澄清。
我熟悉Kubernetes上下文中的操作符/控制器模式,并试图构建一个自定义nodejs控制器,该控制器使用来自Kubernetes.io的nodejs客户机库之一处理我自己的自定义资源(CRD)。
在网上进行研究时,我遇到了OperatorSDK和Kubebuilder,它们似乎是可以引导操作员/控制器的工具,提供了许多与K8s Api服务器接口的功能,就像Kubernetes客户端库一样。
OperatorSDK和Kubebuilder似乎不仅仅是库,下面是我的问题
发布于 2020-10-19 14:49:51
OperatorSDK、Kubebuilder和Kubernetes客户端库与Kubernetes.io的区别是什么?
OperatorSDK、Kubebuilder是专门化的,通过生成锅炉板代码和在kubernetes中实现控制器所必需的运行时(通过控制器运行时),为您提供了良好的起点。客户端库是生成任何功能的库,例如与Kubernetes、API Server等进行交互。
Kubernetes客户端库是像OperatorSDK和Kubebuilder这样的东西的实现吗?
不是的。实际上,OperatorSDK下的Kubebuilder使用控制器运行时,后者内部使用kubernetes客户端库与Kubernetes API Server交互。
我是否需要使用OperatorSDK或Kubebuilder来实现自己的控制器,因为据我所知,Kubernetes客户端库似乎已经足够了。
如果您只使用kubernetes客户端库,您将最终编写一些锅炉板代码和模式,这些代码和模式已经由OperatorSDK和Kubebuilder或控制器运行时提供。强烈建议使用OperatorSDK或Kubebuilder编写控制器,但不是强制性的。您还可以直接使用控制器运行时,而不是使用OperatorSDK或Kubebuilder。
https://stackoverflow.com/questions/64429274
复制相似问题