要点
-
部署一个具备生产就绪所需所有依赖关系的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,它是开源的。
部署生产就绪的Kubernetes集群
为了在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控制平面,以接收应用程序部署指令。
运行Kubernetes
由于Qovery依赖AWS(EKS)提供的托管Kubernetes,因此运行和管理Kubernetes变得简单(无需管理etcd、主节点和网络覆盖)。AWS通过管理负责整个集群完整性的主节点,确保集群始终处于运行状态。
Qovery的附加值是简化应用程序部署,确保这些应用程序正确运行。如果出现问题,这些应用程序和集群本身的所有信息都会实时报告给用户。这是由Qovery Engine和Qovery Agent处理的。
让Kubernetes保持最新
Kubernetes每10周发布一个新版本。以这种速度,跟上时代是一项挑战。尤其是在发生重大变化时。在生产环境中进行升级之前,必须在临时集群上测试升级,但需要相当长的时间。
对我们来说也是如此。在Qovery,有一个专门的团队负责管理用户Kubernetes集群的升级。好消息是,一旦做了一次,它对每个集群的效果(几乎)都是一样的。
出于安全原因,Qovery Engine连接到Qovery控制平面,并提取集群更新指令。Qovery Engine负责所有Kubernetes worker节点上的滚动更新,更新版本和相关依赖关系(Loki、ingresses等)。Qovery Engine保证集群完全可运行,并准备好接收新的应用部署。
收尾
在本文中,我们已经看到了由数百个Kubernetes集群组成的浮动是如何由Qovery Engine管理的,Qovery Engine是一个用Rust编写的开源库。部署、运行和更新Kubernetes集群需要花费大量时间,并且需要自动化以保证其正常运行时间。
来源:进击云原生
构建高质量的技术交流社群,欢迎从事编程开发、技术招聘HR进群,也欢迎大家分享自己公司的内推信息,相互帮助,一起进步!
文明发言,以
交流技术
、职位内推
、行业探讨
为主
广告人士勿入,切勿轻信私聊,防止被骗
原文始发于微信公众号(Java知音):运行和管理数百个 Kubernetes 集群需要什么?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/163259.html