设计背景
多云k8s应用支撑:产品团队在服务开发、测试到部署运营过程中,可能使用多套不同环境,Kubernetes集群,甚至是同一个环境下的多个地域、多个云服务提供商的Kubernetes集群;
成员/权限管控:产品团队本身对团队成员的服务发布、配置管理等操作的统一授权,涉及到团队成员的管理以及角色管理的统一管理;
服务批量部署/灰度发布:产品团队可能负责一个或者多套业务系统,涉及到数十个甚至上百个微应用的开发和部署运营,这些微应用又如何能批量部署。
EasyOps 的工作空间将为大家一一解读这些困惑。
特性解读
接下来,我们将详细解读一下工作空间将从哪几个模块来帮助产品团队,它们分别是:
1、资源池管理
Kubernetes 对产品团队的资源管控上提供命名空间的解决方案,工作空间的管理员可以为工作空间分配 Kubernetes 的命名空间,每一个命名空间为一个资源池,它有以下的规则限制:
l 同一个Kubernetes集群下的一个命名空间,只能分配给一个工作空间来创建资源池,不允许重复使用;
l 同一个工作空间可以创建多个资源池,来支撑不同环境、不同地域、不同的服务提供商的Kubernetes集群资源使用;
l 应用的工作负载和配置、密钥、以及使用的PVC,必须在资源池上创建。
资源池一方面可以为产品团队设置总的配额需求,例如对CPU核心数、内存容量等计算资源的限制,又或者是Kubernetes对象数量的限制,如工作负载数量、ConfigMap数量、Secret数量、PVC数量等。
另一方面,资源池可以为应用的工作负载设置默认的资源限制,应用服务在创建时默认使用此资源配额:
最后,资源池还支持对存储进行管理,用户可以在资源池中创建Kubernetes PVC磁盘,提供给业务使用。
2、部署管理
管理员设置好工作空间的资源池后,团队成员就可以使用部署管理对应用服务进行发布了。
作为工作空间的核心模块,部署管理包装了“部署单元“作为承载微服务部署的最小单位,部署单元为镜像设置工作负载和k8s服务,支持用户对工作负载进行扩容缩容、镜像版本升级、设置健康检查、环境变量、资源限制以及存储挂载等服务。
用户可以使用部署管理的“快捷部署“来对多个应用的部署单元进行批量升级:
部署管理的其他功能也将马上为大家披露,例如:
l 部署审计:跟踪和追溯用户对部署单元的操作记录;
l 应用路由:为部署单元的Kubernetes Service 设置路由规则(Kubernetes Ingress);
l 灰度发布:通过 Ingress 实现部署单元的蓝绿部署。
同一个服务通过在不同的资源池上创建部署单元,从而快速在不同的环境或者云服务提供商的Kubernetes集群中发布。
3、配置中心
作为工作空间的核心模块,团队成员可以使用配置中心在资源池上创建 ConfigMap 和 Secret,然后部署管理模块中的部署单元,可以对这些配置进行挂载和使用。
同样,和部署单元一样,配置和密钥也可以多个资源池上进行创建,实现统一的配置管理。
4、成员管理
产品团队的管理员,可以批量邀请团队成员加入到工作空间,并且为这些成员设置相应的角色和权限。
目前工作空间支持的默认角色为空间管理员、部署人员、配置人员、访客,其中:
l 空间管理员:拥有最高的权限,可以对空间设置资源池,邀请团队成员和分配权限,对配置和服务进行管理;
l 部署人员:可以使用部署管理对应用的服务进行部署、流量路由,也可以在配置中心在管理ConfigMap和Secret;
l 配置人员:可以使用配置中心,管理ConfigMap和Secret;
l 访客:只有最基本的查看权限,没有操作权限。
使用流程
最后,为大家总结一下EasyOps工作空间的基本使用流程,简单明了,一张图搞定!