k8s 给我的个人感觉就是一个运行时环境,定义一套标准,对用户的统一的,可以抹平不同云厂商,甚至的私有云的差异,k8s 中支持的资源类型很多,甚至支持自定义,作为底层基础设施需要通用
但是作为使用方,应该从应用的维度来关联零散的资源,工作负载,服务,configmap,serviceaccount 等,目前通用的方式是 helm,提供了一种应用打包方式,从而个人感觉只要是企业在实际使用 k8s,无论是否认可应用这个维度,他都是实际存在的,你有可能不是通过 helm 打包,而是维护一个 yaml,其实都是在做应用管理
然后对于灰度而言,谈谈我个人想法
灰度的最小粒度应该是应用集群,应用部署到 k8s 中就是一个应用集群,而应用的新版本中镜像, configmap 都有发生变化,而此时的灰度应该是同样在部署一个应用集群,然后流量在两个集群之间路由,这两个集群都是完整的,有 service,workload,configmap 等
如果灰度的粒度放在同一个应用集群内,修改特定的资源会会无法满足需求,比如只支持修改工作负载中的镜像版本,但实际情况是 configmap也发生了,怎么办?
所以灰度应该将一个应用集群作为最小单位,不可分割,流量可以在新老应用集群之间做灰度
个人看法,大家可以一起讨论