【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

开源项目 WKSctl:使用 GitOps 管理 Kubernetes 集群

  • 2020-03-04
  • 本文字数:2017 字

    阅读完需:约 7 分钟

开源项目WKSctl:使用GitOps管理Kubernetes集群

WKSctl一个开源项目,用于通过 SSH 安装、引导和管理 Kubernetes 集群,包括其插件。WKSctl 是 Cluster API (CAPI) 按照GitOps方式所提供的一个项目。Kubernetes 集群是由 YAML 文件配置的,WKSctl 在 Git 的每次推送后都会应用更新,从而允许用户按需拥有可复制的集群。


CAPI 是一个 Kubernetes 项目,能够让用户以声明的方式创建、配置和管理集群,就像使用 Deployment 或 Service 等其他 Kubernetes 资源那样。目前,AWSVMware vSphere等基础设施供应商提供了其他的 CAPI 实现。WKSctl 有一个有趣的特点,它只需一个 SSH 端点列表以及引导 Kubernetes 的目标虚拟机的关联凭据即可。


最近,InfoQ 采访了 Weaveworks 的Alexis Richardon(CEO)Mark Ramm(产品总监)Cornelia Davis(CTO)Mark Emeis(工程师经理)以了解更多关于 WKSctl 的信息。


InfoQ:什么是 WKSctl?您为什么要构建另外一个 Kubernetes 工具?


Alexis Richardson:目前,有像kopsKubeadm这样自行安装(roll your own,简称 RYO)的安装程序,也有像rancherkindminikube这样打包好的安装程序。WKSctl 让我们拥有 RYO 的强大功能,同时兼有打包好的安装程序的功能,适用于开发者、数据中心和云端。

WKSctl 是 CAPI 的一个开源实现,而不是 Kubernetes 的一个发行版。它是一个 GitOps 安装程序和控制器,适用于上游 Kubernetes 集群。WKSctl订阅一个存储库(使用Flux),其包含 Kubernetes 和其他我们希望安装的部件。然后,WKSctl 构建并引导该集群。我们要做就是给 WKSctl 提供一个 SSH 端点列表,剩下的事就由 WKSctl 完成。一旦该集群启动并运行,如果我们在 Git 中更改了该集群的配置,那么 WKSctl 会把这些更改应用到该集群上。

它的总体的好处是可以灵活地使用 Kubernetes 的多个不同的发行版本。我们可以有可复制的集群,想复制多少次就可以复制多少次。集群自身是牛而不是宠物。我们认为,理想情况下,集群应该是百分之百可丢弃的,当集群处于不正确的状态时,我们应该得到通知。


InfoQ:WKSctl 的典型使用场景是什么?


Richardson:WKSctl 的目的不是进行机器配置。因此,WKSctl 的理想用户是使用 Terraform、vSphere、Salt、Ansible 或 Chef 来自己配置机器的人。因此,用户可以使用 WKSctl 在这些机器上安装和引导 Kubernetes。但是,如果我们不想配置机器,那么,也可以用 Firekube,它比 WKSctl 更进一步。Firekube 使用一个 vanilla Kubernetes,并用 WKSctl 把它安装在Ignite(Firecracker虚拟机)集群上。

另一个使用场景是多云或混合云,这方面有更先进的模式,我们称之为“master-of-masters,简称MoM”模式。在这个模式中,我们将拥有一个 MoM 集群,它会在每个目标环境中供应 Kubernetes 主管理集群,后续我们就可以供应任意数量的 Kubernetes 集群了。

图源:GitOps和集群API:Master-of-Masters


InfoQ:WKSctl 是如何运行的?它是 CLI 还是一个 Kubernetes 控制器,还是两者兼有?


Mark Emeis:两者兼有。WKSctl 用 CLI 引导 Kubernetes 集群中的第一个节点,然后安装 WKSctl 控制器以管理其他 master 和 worker 节点的安装。WKSctl CLI 基于 Git 存储库创建一个集群,安装 Flux 以订阅该 Git 存储库,这就是我们所谓的“Git 到 Kubernetes 的调解循环”。最终,WKSctl 安装一个自定义资源控制器,以便根据从 Git 收到的配置来应用集群级的更改。

Cornelia Davis:有两个调解循环。Flux 是一个调解器,监控 Git 存储对集群配置的所有更改。本质上,它的工作是把这些来自 Git 的东西提交给 etcd。第二个调解器是 WKSctl 控制器,它就像 Kubernetes 中的 replication 控制器那样监控 etcd。


InfoQ:如何给 Kubernetes 集群打补丁和升级?是否有停机时间?


Mark Ramm:WKSctl 对 CAPI manifest 的更改做出反应。当运维人员改变 Kubernetes 的版本时,控制器更新 master 节点,然后是 worker 节点。当集群被有效更新时,需要构建应用程序以重新处理调度。对于应用来说,遵循 12 因素应用程序模式是个良好的开端。


InfoQ:我们能否自定义集群架构以解耦组件,比如有专门用于 etcd 的虚拟机而 API 组件位于另外的服务器中?


Ramm:默认情况下,WKSctl 启动时,会有 worker 节点和 3 个 master 节点。我们希望保持简单。如果要做更复杂的事情,我们会推荐使用我们的商业产品WKP。总体上,我们看到 WKSctl 发生的情况是,用户在按需创建开发和测试集群,这些集群是短暂的(规模不大)。很多集群来来去去,而不是只有一个大集群。 我们发现,一般情况下,出于权限和安全的原因,企业用户倾向于使用更多的集群而不是一个大型集群。另外,当我们水平扩展集群时,系统的扩展很容易,这跟创建大型集群刚好相反。


InfoQ:在社区中,WKSctl 的采用情况怎样?


Ramm:德国电信是刚开始使用 WKSctl 的客户。最近,他们分享了一个小视频,演示了 WKSctl 在他们的环境中的工作情况。


原文链接:


WKSctl: a Tool for Kubernetes Cluster Management Using GitOps


2020-03-04 09:001813

评论

发布
暂无评论
发现更多内容

MegEngine 动态执行引擎 Imperative Runtime 架构解析

MegEngineBot

深度学习 开源框架 MegEngine

Spring核心容器:AOP代理机制对性能的影响案例分析

互联网架构师小马

革新DeFi:Hover赋能Cosmosphere的金融自由

股市老人

Nestjs+Vue实现阿里云OSS服务端签名直传

昆吾kw

Vue OSS 文件上传 nest

一次性搞懂springweb服务构建轻量级Web技术体系:Spring WebMVC

互联网架构师小马

C语言编程语法—语法风格

攻城狮Wayne

C语言 语法风格 6 月 优质更文活动

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

大瞿科技

Easysearch 跨版本兼容性测试,还原 Elasticsearch 各版本快照数据

极限实验室

搜索引擎 elasticsearch INFINI Labs easysearch 快照恢复

还没毕业,就“被毕业”,太惨了!

Jackpop

某大厂工作3年,被劣驱良了。。。

Jackpop

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

BlockChain先知

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

股市老人

软件开发人员必须阅读的20本书

越长大越悲伤

架构 微服务 软件开发

语音社交源码知识语音房间功能的实现

山东布谷科技

源码 软件开发 源码搭建 语音社交软件 语音厅平台搭建

Controller Manager原理分析

穿过生命散发芬芳

6 月 优质更文活动

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

EOSdreamer111

Kubernetes Scheduler原理分析

穿过生命散发芬芳

k8s 6 月 优质更文活动

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

鳄鱼视界

深入理解Spring核心容器面向切面概念和实践:AOP实战经验

互联网架构师小马

3年经验程序员终于把Spring核心容器的面向切面与Spring AOP搞懂了

互联网架构师小马

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

西柚子

Generative AI 新世界:过去、现在和未来

亚马逊云科技 (Amazon Web Services)

人工智能 机器学习

入职新公司,水土不服该怎么破?

Jackpop

STM32配合W5500网卡连接MQTT服务器

DS小龙哥

6 月 优质更文活动

难得可贵的Spring依赖注入实战经验,是程序员就该吸收一下!

互联网架构师小马

Java spring

大牛一次带你彻底搞懂Spring核心容器的动态代理机制与SpringAOP

互联网架构师小马

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

威廉META

开源项目WKSctl:使用GitOps管理Kubernetes集群_软件工程_Christian Melendez_InfoQ精选文章