基于Kubernetes的应用部署与配置管理实践
1. 版本控制与代码审查
在软件工程中,管理声明式状态的变更、审计和回滚十分重要。版本控制和代码审查的最佳实践可直接应用于管理应用的声明式状态。
如今,大多数人将Kubernetes配置存储在Git中,Kubernetes生态系统中的许多工具也期望配置文件位于Git仓库。代码审查的方式较为多样,GitHub很受欢迎,也有人使用本地代码审查工具或服务。无论采用何种方式进行应用配置的代码审查,都应像对待源代码控制一样认真和专注。
2. 应用文件系统布局
在规划应用的文件系统时,利用文件系统的目录结构来组织组件是很有价值的。通常,一个目录用于包含一个应用服务,该目录下的子目录用于存放应用的子组件。
例如,我们的应用文件布局如下:
journal/
frontend/
redis/
fileserver/
每个目录中包含定义服务所需的具体YAML文件。随着应用部署到多个不同区域或集群,这种文件布局会变得更复杂。
3. 镜像管理最佳实践
- 构建安全 :镜像构建过程易受“供应链攻击”,因此构建镜像时应基于知名且可信的镜像提供商,或者从头开始构建。对于能构建静态二进制文件的语言(如Go),从头构建相对容易;而对于Python、JavaScript或Ruby等解释型语言则复杂得多。
- 命名规范 :虽然容器镜像的版本理