Kubernetes 掌舵图vs ansible playbook vs k8s操作员系统安装

Kubernetes 掌舵图vs ansible playbook vs k8s操作员系统安装,kubernetes,installation,ansible,kubernetes-helm,Kubernetes,Installation,Ansible,Kubernetes Helm,我有一个庞大而相当复杂的系统要安装到k8s集群中 60个微服务和10个头盔图表安装到5个名称空间 目前,我们运行5个helm安装/升级命令,命令之间暂停30秒。然而,由于我们拉取docker映像并启动应用程序,这种策略会在节点上产生严重的负载。我们有一个很长且不明确的执行时间(时间线),这通常会导致组件超时,如领事、Elasticsearch和依赖于上述组件的应用程序 我想听听关于如何扭转这种局面的意见。首先,我们目前的做法如下: 编写通过头盔图表控制安装的脚本 编写一本ansible play

我有一个庞大而相当复杂的系统要安装到k8s集群中

60个微服务和10个头盔图表安装到5个名称空间

目前,我们运行5个helm安装/升级命令,命令之间暂停30秒。然而,由于我们拉取docker映像并启动应用程序,这种策略会在节点上产生严重的负载。我们有一个很长且不明确的执行时间(时间线),这通常会导致组件超时,如领事、Elasticsearch和依赖于上述组件的应用程序

我想听听关于如何扭转这种局面的意见。首先,我们目前的做法如下:

  • 编写通过头盔图表控制安装的脚本
  • 编写一本ansible playbook,运行掌舵图并控制组件的安装状态
  • 编写ansible playbook安装组件(使用Jinja2模板或Golang模板)
  • 编写安装组件和控制系统状态的k8s操作员

  • 有很多方法可以做到这一点。但是您可以直接使用kubernetes api。您可以创建任何技术服务器,如Spring Boot、NodeJS等,以控制所需Kubernetes对象的创建。
    基本上,通过这种方式,您可以自定义Helm API,但主要区别在于您可以根据自己的需要进行自定义。

    为了回答我自己的问题,我创建了一个安装,可以作为相当复杂安装的快速解决方案

    该解决方案依赖Ansible作为安装协调器和Helm作为包管理器


    您可以浏览我的。

    谢谢您的意见。但我认为,与使用现有工具相比,我们不需要创建自制的解决方案。现在是2020年,我可以告诉你,在使用Helm和operator sdk开发类似规模的系统时,我讨厌这两个。至少operator sdk修复了v1.0之前版本缓慢的构建问题,但在golang中编码仍然令人失望。