共计 1733 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | 运行和管理数百个 Kubernetes 集群需要什么? 这就是本文分享的内容。下面,我们一起来看。 |
- 部署一个具备生产就绪所需所有依赖关系的 Kubernetes 集群需要数天时间。
如果不自动化这个过程,管理 Kubernetes 集群的浮动是非常困难的。
在多个集群提供商之间管理 Kubernetes 集群的浮动更加困难。
升级 Kubernetes 集群需要进行密集测试,以确保更改不会破坏任何功能。这不是像通常建议的那样按下“升级”按钮就够了。
管理一个 Kubernetes 集群很难,管理全球数百个 Kubernetes 集群又如何呢?
数百个 Kubernetes 集群,包含多个节点、服务、应用程序和负载均衡器。这就是我们在 Qovery 所做的:管理全球数百个 Kubernetes 生产集群,帮助 16000 多名开发者在 AWS 上部署应用。
运行和管理数百个 Kubernetes 集群需要什么? 这就是本文分享的内容。
有了 Qovery,每个用户都可以在几秒钟内开始在 AWS 上部署应用程序。目标是将 AWS 转变为流畅的开发者体验。通常,我们的用户来自 Heroku,希望跳入 AWS。他们希望拥有 Heroku 的简单性和 AWS 的灵活性。这就是使用 Qovery 的意义所在。
为了在这条道路上取得成功,Qovery 使用 EKS(AWS 托管的 Kubernetes)来运行和扩展无状态应用程序。每个用户至少有一个或多个 Kubernetes 集群。Qovery 的承诺是让 Kubernetes 集群生产就绪,这意味着 Kubernetes 的部署、运行和管理都由我们来完成。负责管理集群的软件称为 Qovery Engine,它是开源的。
为了在 AWS 上自动部署 Kubernetes,我们创建了一个开源部署引擎,一个用 Rust 编写的应用程序。基本上,它为 Kubernetes、ingress、auto scaler、Loki、S3 初始化虚拟私有云(VPC),以存储 Kubernetes 日志,最后是 Kubernetes。Qovery 引擎使用 Terraform、Helm 和 AWS API。在 AWS 上,从零到生产就绪的 Kubernetes 集群需要 30 分钟,而不是几周。
首次在 AWS 帐户上使用 Qovery 时,会设置一个 VPC 和一个 EKS 集群。完全设置后,Qovery Engine 将安装并连接到 Qovery 控制平面,以接收应用程序部署指令。
由于 Qovery 依赖 AWS(EKS)提供的托管 Kubernetes,因此运行和管理 Kubernetes 变得简单(无需管理 etcd、主节点和网络覆盖)。AWS 通过管理负责整个集群完整性的主节点,确保集群始终处于运行状态。
Qovery 的附加值是简化应用程序部署,确保这些应用程序正确运行。如果出现问题,这些应用程序和集群本身的所有信息都会实时报告给用户。这是由 Qovery Engine 和 Qovery Agent 处理的。
Kubernetes 每 10 周发布一个新版本。以这种速度,跟上时代是一项挑战。尤其是在发生重大变化时。在生产环境中进行升级之前,必须在临时集群上测试升级,但需要相当长的时间。
对我们来说也是如此。在 Qovery,有一个专门的团队负责管理用户 Kubernetes 集群的升级。好消息是,一旦做了一次,它对每个集群的效果 (几乎) 都是一样的。
出于安全原因,Qovery Engine 连接到 Qovery 控制平面,并提取集群更新指令。Qovery Engine 负责所有 Kubernetes worker 节点上的滚动更新,更新版本和相关依赖关系(Loki、ingresses 等)。Qovery Engine 保证集群完全可运行,并准备好接收新的应用部署。
在本文中,我们已经看到了由数百个 Kubernetes 集群组成的浮动是如何由 Qovery Engine 管理的,Qovery Engine 是一个用 Rust 编写的开源库。部署、运行和更新 Kubernetes 集群需要花费大量时间,并且需要自动化以保证其正常运行时间。
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)