Open arcosx opened 1 year ago
YALO 支持在内部直接部署可观测性开源组件,来加速和简化构建可观测性流水线,但是可观测性开源组件众多,部署的标准化非常困难。
Helm 是现在 kubernertes 上广为使用的应用交付技术,各大开源组件也都为自己的组件做了 Helm Chart,直接使用这些 Helm Chart 可以简化大量部署工作。
Helm 是一个命令行工具,不能直接被程序调用,不满足 YALO 管理多集群场景下可观测性组件的需求。对于管理和部署 Helm,现有最好的方案是 FluxCD 开源的 helm-controller,该项目前身是旗下另一个开源组件 helm-operator。
fluxcd/helm-controller: The GitOps Toolkit Helm reconciler, for declarative Helming
如何将 FluxCD 相关功能更好的嵌入到 YALO 中,是这个 RFC 讨论的内容。
kubevela 支持部署 Helm 应用,前提是部署 FluxCD 组件。
apiVersion: core.oam.dev/v1beta1 kind: Application metadata: name: helm-redis spec: components: - name: redis type: helm properties: repoType: "helm" url: "https://charts.bitnami.com/bitnami" chart: "redis" version: "16.8.5" values: master: persistence: size: 16Gi replica: persistence: size: 16Gi
代码上是通过转化 Application(kubevela 自身的 CRD)到 FluxCD 的HelmReleaseSpec ,后者的 CRD 定义被拷贝到了 kubevela 项目内。
HelmReleaseSpec
FluxCD 组件安装
kubevela 内部的 插件机制
vela addon enable fluxcd
相关代码
根据文章 FluxCD 多集群应用的设计与实现 - 知乎 描述 ,该项目将 FluxCD 中的 HelmRelease 和 Kustomization 组合抽象成一个 FluxApplication 的概念。可以为同一个 HelmTemplate 添加不同的应用配置和部署配置然后部署到多个集群中,还可以使用 FluxCD 的 pause 和 resume 功能,单独控制某个集群内应用的启停。
HelmRelease
Kustomization
FluxApplication
HelmTemplate
pause
resume
代码:
TODO
多集群场景下基于 Flux 的应用持续交付实践 | 云原生社区
完整安装Flux 会产生很多 CRD 和 Controller,实际上只有绿色框是我们需要的。我们应该允许用户只安装他自己关心的内容来保证集群总体而言不会产生太多消耗资源的程序。
Flux的唯一安装文件
FluxCD 生成这个文件的位置
上下文
YALO 支持在内部直接部署可观测性开源组件,来加速和简化构建可观测性流水线,但是可观测性开源组件众多,部署的标准化非常困难。
Helm 是现在 kubernertes 上广为使用的应用交付技术,各大开源组件也都为自己的组件做了 Helm Chart,直接使用这些 Helm Chart 可以简化大量部署工作。
Helm 是一个命令行工具,不能直接被程序调用,不满足 YALO 管理多集群场景下可观测性组件的需求。对于管理和部署 Helm,现有最好的方案是 FluxCD 开源的 helm-controller,该项目前身是旗下另一个开源组件 helm-operator。
fluxcd/helm-controller: The GitOps Toolkit Helm reconciler, for declarative Helming
如何将 FluxCD 相关功能更好的嵌入到 YALO 中,是这个 RFC 讨论的内容。
FluxCD 在其他开源组件中的应用
kubevela
kubevela 支持部署 Helm 应用,前提是部署 FluxCD 组件。
代码上是通过转化 Application(kubevela 自身的 CRD)到 FluxCD 的
HelmReleaseSpec
,后者的 CRD 定义被拷贝到了 kubevela 项目内。FluxCD 组件安装
kubevela 内部的 插件机制
相关代码
ks-devops
根据文章 FluxCD 多集群应用的设计与实现 - 知乎 描述 ,该项目将 FluxCD 中的
HelmRelease
和Kustomization
组合抽象成一个FluxApplication
的概念。可以为同一个HelmTemplate
添加不同的应用配置和部署配置然后部署到多个集群中,还可以使用 FluxCD 的pause
和resume
功能,单独控制某个集群内应用的启停。代码:
weave-gitops
TODO
FluxCD 其他应用资料
多集群场景下基于 Flux 的应用持续交付实践 | 云原生社区
技术方案
TODO