一、简介
- 使用 helmfile 时,首先得了解 helm 的使用,以及如何开发一个 helm chart。helm 是 kubernetes 的包管理工具。在实际的使用场景中涉及同时部署多个 chart、区分不同的部署环境、版本控制等需求。
- 基于此需求,可以使用 helmfile 工具。helmfile 通过 helmfile 文件帮助用户管理和维护多个 helm chart,可以来区分环境、实现版本控制。
- 在公有云场景或者私有化场景中,同一个产品可能涉及多套环境的配置,例如:每套环境部署依赖的环境差异、使用的数据库、消息队列中间件等实例的地址、账号密码等都不同。因此针对不同环境我们需要维护开发环境、测试环境、预生产环境、生产环境甚至多套环境的部署文件以及秘钥文件,每个小小的改动将涉及多套环境配置的修改,这给运维人员增加了极大的负担,以及多套环境的配置如何保持统一,也极大的考验运维人员的细致程度,极大的增加了运维的复杂度。同时涉及的数据库中间件实例的账户密码的存放,也给运维流程增加了巨大的安全隐患。
- 基于上面的述求,这里可以将业务部署的各服务文件改造成 helm chart,同时区分多套环境以及版本控制,使用 helmfile 来统一部署管理。涉及实例涉及的账户密码,可以使用 helm secrets 来实现加密解密,以及来保证运维的安全性,从而极大的减少运维的复杂度。