【问题标题】:Kubernetes Operator (Operator SDK, Kubebuilder VERSUS Kubernetes Client Libraries)Kubernetes Operator(Operator SDK、Kubebuilder VERSUS Kubernetes 客户端库)
【发布时间】:2020-10-19 14:17:42
【问题描述】:

如果这个问题已经得到解答,我很抱歉,但是在尝试了许多不同的方式在谷歌上搜索答案后,我未能得到明确的解释,所以我试图在这里寻求澄清。

我熟悉 Kubernetes 上下文中的操作员/控制器模式,并且正在尝试使用来自Kubernetes.io 的 nodejs Kubernetes 客户端库之一来构建一个自定义 nodejs 控制器来处理我自己的自定义资源 (CRD)。

在网上研究时,我发现了 OperatorSDK 和 Kubebuilder,它们似乎是可以引导操作员/控制器的工具,提供与 K8s Api Server 接口的许多功能,就像 Kubernetes 客户端库一样。

OperatorSDK 和 Kubebuilder 似乎不仅仅是库 所以这是我的问题

  1. Kubernetes.io 中的 OperatorSDK、KubebuilderKubernetes 客户端库 之间有什么区别?
  2. Kubernetes 客户端库是否实现了 OperatorSDK 和 Kubebuilder 之类的东西?
  3. 我是否需要使用 OperatorSDK 或 Kubebuilder 来实现我自己的控制器,因为据我所知,Kubernetes 客户端库似乎就足够了。

【问题讨论】:

    标签: kubernetes kubernetes-operator operator-sdk


    【解决方案1】:

    OperatorSDK、Kubebuilder 之类的有什么区别 AND 来自 Kubernetes.io 的 Kubernetes 客户端库

    OperatorSDK、Kubebuilder 是专门的,通过生成样板代码和在 kubernetes 中实现控制器所需的运行时(通过控制器运行时)为您提供良好的起点。客户端库是生成目的库,用于执行任何操作,例如与 Kubernetes API Server 交互等。

    Kubernetes 客户端库是否实现了诸如 OperatorSDK 和 Kubebuilder?

    没有。实际上 OperatorSDK ,Kubebuilder 底层使用controller runtime 内部使用 kubernetes 客户端库与 Kubernetes API Server 交互。

    是否需要使用 OperatorSDK 或 Kubebuilder 来实现自己的 控制器,因为据我所知,Kubernetes 客户端 图书馆似乎就足够了。

    如果您只使用 kubernetes 客户端库,您最终会编写一些样板代码和模式,这些代码和模式已经由 OperatorSDK 和 Kubebuilder 或控制器运行时提供。强烈推荐使用 OperatorSDK 或 Kubebuilder 来编写控制器,但不是强制性的。您也可以直接使用控制器运行时,而不是使用 OperatorSDK 或 Kubebuilder。

    【讨论】:

    • 我看到我已经得到了它的另一种方式。根据我从您的回答中了解到的情况,OperatorSDK 的工作抽象级别高于 Kubernetes 客户端库。我也很想使用 OperatorSDK 和 Kubebuilder。你知道它们中的任何一个是否支持在 Nodejs 中实现。 afaik,除了 GO,我找不到任何东西。
    • Nope..Nodejs 目前没有任何内容。您将必须创建自己的
    • 客户端库是生成目的库——generate应该是general
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 2021-06-23
    • 2022-12-14
    • 1970-01-01
    • 2021-01-09
    • 2022-06-16
    • 1970-01-01
    相关资源
    最近更新 更多