公有云在调用云产品接口的时候通常需要 secretId 和 secretKey 。而 Kubernetes 里面有一类对象叫做 secret ,所以我在想,这两块内容能不能结合起来。
当公有云管理员创建子账户的时候,这两部分信息会自动注入到相应 Kubernetes 的关联 namespace 的 secret 中,这样用户连这部分信息都不需要保存,只需要上传自己的容器镜像,之后CD会自动挂载相应的 serviceaccount ,底层公有云以统一的形式加载这部分配置。
从结果上看,
- 省略了运维设定生产配置这一毫无技术含量的工作
- 屏蔽了业务开发对线上配置的染指
最终完美实现了自动化DevOps。
不过这么做有一个前提——那就是假定 Kubernetes 作为整个公有云的第一入口,公有云要自己打通自身权限控制和 Kubernetes 之间的连接。