【问题标题】:How to deploy an operator(created by operator-sdk v1.0) without installing operator-sdk in production environment?生产环境不安装operator-sdk,如何部署operator(operator-sdk v1.0创建)?
【发布时间】:2020-11-30 03:08:54
【问题描述】:

使用operator-sdk guide v1.0,部署operator时需要在生产环境中安装operator-sdk。

是否可以在不安装operator-sdk的情况下部署operator?因为它会导致更多的依赖性和复杂性。

如何只生成 CRD yaml、CR yaml 和 Contoller Image? 或者还有什么更方便的发布 Operator 的方式?

【问题讨论】:

  • 您是否尝试使用 helm 将其从例如测试环境打包并作为图表部署到生产中?
  • 谢谢你的建议,我试试看。

标签: kubernetes operator-sdk


【解决方案1】:

您可以更改 make deploy 命令以生成包含操作员所需的所有 rbac 和部署对象的 deploy.yaml。 在找到这个解决方案之前,我一直在与自己斗争。

只需更改 make 文件中的 deploy 任务即可。

$(KUSTOMIZE) build config/default | kubectl apply -f -

$(KUSTOMIZE) build config/default > deploy.yaml

然后运行 ​​make deploy。 然后复制 deploy.yaml 并将其安装在您的 k8s 中或从中创建一个 helm chart。 这对我有用,不需要在您的环境中使用 operator-sdk。

编辑:
我没有使用 CRD,而是使用它来观看现有资源。 但看起来相同的解决方案应该适用于 CRD 和 CR 的 install 任务。

【讨论】:

    【解决方案2】:

    operator-sdk 不打算在生产环境中直接运行操作符。相反,您应该将您的操作员作为集群内的部署运行。 https://v1-0-x.sdk.operatorframework.io/docs/building-operators/golang/tutorial/#2-run-as-a-deployment-inside-the-cluster

    【讨论】:

    • 感谢您的回复。正如Document 的描述,我们需要运行make deploy 来部署控制器。所以需要安装operator-sdk。
    • Operator SDK (1.0+) 构建的 Operator 包含一个提供 make deploy 的 Makefile。 github.com/operator-framework/operator-sdk/blob/master/testdata/…
    • 感谢您的建议,这是一种部署运营商的方式,但似乎需要 kustomize。现在我正在使用 operator-sdk 0.18 来构建我的 operator,它更轻。
    猜你喜欢
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2022-12-14
    相关资源
    最近更新 更多