[kustz] 从零开始写一个 k8s 应用发布工具(含源码和过程)
你有没有想过, 如果要在 kubernetes 集群中 发布 一个最基本的 无状态服务, 并 提供 给用户访问, 最少需要配置几个 K8S Config API
?
Deployment
: 管理应用本身。Service
: 管理应用在集群内的访问地址, 也是应用在在集群累的负载均衡器。Ingress
: 管理应用对外暴露的入口, 通俗点说, 就是 URL。
前三个是最基本的的 API。
如果还有配置文件或或者其他密钥管理, 可能你还需要。
Secret
/ConfigMap
: 管理应用配置。
这些配置文件的存在, 本身都独立存在, 并没什么关系。
为了让他们在一起, 你还需要定义 Label
信息, 并且通过 LabelSelector
将他们组合起来。
只是将这些 Config API
文件组合在一起, 都是一件麻烦事情了。 这还不包括各个 Config API
本身的复杂结构, 以及不同版本之间的差别。
社区也注意到这件事情了, 有很多工具帮我们组合管理, 例如我们今天要说的 Kustomize
。
除此之外, 还有微软和阿里云一起搞的 Open Application Model
(简称 OAM
)。
简介
【开个坑】 kustz 快速发布应用到 Kubernetes
基本框架
2.1 [kustz] 先从模仿创建 Deployment 开始
2.5. [kustz] 使用 cobra 实现 kustz 命令
功能扩展
3.1. [kustz] 为 Container 添加环境变量
3.2. [kustz] ConfigMap 和 Secret 的生成器
3.3. [kustz] 注入 ConfigMap 和 Secrets 到容器环境变量
3.5 [kustz] 为 Container 添加健康检查方法
投入生产
4.1. [kustz] 使用 cobrautils 为命令添加更实用的命令参数