使用 Sveltos 进行 Kubernetes 附加组件生命周期管理

云计算
Sveltos 简化了 Kubernetes 附加组件跨集群部署,基于集群运行时自动升级并提供事件驱动的工作流自动化框架。
Sveltos 简化了 Kubernetes 附加组件跨集群部署,基于集群运行时自动升级并提供事件驱动的工作流自动化框架。

Kubernetes 本身并不是一个完整的解决方案。要构建生产集群,您需要各种附加组件。如果您要管理多个集群,那不是一件容易的事。

Sveltos是一个开源项目,它提供声明式 API,允许跨多个 Kubernetes 集群部署 Kubernetes 附加组件。Helm 图表和资源 YAML 都可以传递给 Sveltos。

例如,只需发布以下 ClusterProfile 实例就足以在一组托管集群中部署 Kyverno Helm 图表:

或者,如果您有 Kubernetes 资源 YAML,只需使用数据创建一个 ConfigMap(如果数据是机密的,则为 Secret),然后让 Sveltos 引用这样的 ConfigMap(Secret)实例。

kubectl create configmap contour-gateway --from-file=<File with contour YAML>

让事情变得更复杂的是,有时,您需要部署的附加组件取决于集群运行时状态。

例如,您已经在一组集群中部署了 Calico v3.24。当这些集群升级到 Kubernetes v1.25 时,您希望 Calico 也升级到 v3.25。

如果您正在管理数十个这样的集群,那么在升级 Kubernetes 版本时手动升级 Calico 并不理想。为此,您需要一个自动化解决方案。

然后简单地创建以下分类器实例:

以上分类器实例将让 Sveltos 通过自动添加来管理集群标签:

  • 标签 kubernetes: v1–24 到任何运行 Kubernetes 版本 v1.24.x 的集群
  • 标签 kubernetes: v1–25 到任何运行 Kubernetes 版本 v1.25.x 的集群。

由于这些标签和上面的 ClusterProfile 实例:

  • calico 版本 v3.24.5 将部署在任何运行 Kubernetes 版本 v1.24.x 的集群中
  • calico 版本 v3.25.0 将部署在任何运行 Kubernetes 版本 v1.25.x 的集群中

您无需采取任何行动。随着集群的升级,Sveltos 也会升级 Calico。

当托管集群中的事件导致需要部署附加组件时,事情可能会变得更加复杂。例如,每当某个命名空间中的服务被创建时,添加一个 HTTPRoute 以通过网关 API 公开此类服务。

Sveltos Events 是一个用于 Kubernetes 的事件驱动的工作流自动化框架,可帮助您在各种事件上触发 K8s 附加组件部署。

  1. 定义事件是什么(Sveltos 支持 Lua 脚本);
  2. 定义发生此类事件时要部署的附加组件。插件可以表示为模板,Sveltos 将在部署时使用来自托管集群的信息实例化这些插件。

此 EventSource 将事件定义为在命名空间 eng 中创建/删除服务,暴露端口 443 或端口 8443。

当托管集群中发生此类事件时,我们要部署一个 HTTPRoute 实例:

如您所见,要部署的内容是在 ConfigMap 中定义的,并以模板的形式表示。

资源包含每个托管集群中与上面定义的 EventSource 匹配的所有服务实例。

责任编辑:华轩 来源: 今日头条
相关推荐

2023-12-18 08:24:56

ViewModel数据操作Android

2012-06-20 10:29:16

敏捷开发

2021-07-19 05:52:29

网络生命周期网络框架

2010-07-28 12:47:06

Flex组件

2009-05-14 13:54:29

VSTS2010生命周期管理微软

2010-02-06 10:42:41

Android Ser生命周期

2022-01-11 06:53:23

Gke集群Aks

2015-07-08 16:28:23

weak生命周期

2009-08-10 14:31:46

ASP.NET组件设计ASP.NET控件生命

2016-10-19 14:26:48

Firefox安全附加组件

2022-04-19 07:20:24

软件开发安全生命周期SSDLC应用安全

2010-12-03 12:22:02

局域网文档文档安全数据保护

2022-06-01 09:25:16

嵌套生命周期智能技术工业资产

2009-05-21 09:12:41

Java开发平台生命周期管理

2023-04-19 07:50:59

​云原生生命周期管理

2012-12-04 10:02:03

2013-09-26 11:20:34

Informatica

2020-03-13 07:33:28

物联网生命周期管理IOT

2010-05-17 22:06:41

数据安全电子文档鼎普科技

2013-08-19 17:03:00

.Net生命周期对象
点赞
收藏

51CTO技术栈公众号