在微服务场景下,为了对不同环境下的微服务应用、接口作出隔离和区分,MSE微服务治理将微服务组织分为微服务命名空间、应用两层概念,分别实现对环境的隔离、授权。本文介绍如何通过微服务命名空间在MSE上组织您的微服务,以及如何管理微服务命名空间。
什么是微服务命名空间
通常情况下,用户有生产、测试、开发环境,各环境的资源是隔离的。在MSE微服务治理中,不同微服务命名空间下,应用的微服务治理配置严格隔离,不跨命名空间生效。同样的微服务应用,在不同的环境部署会需要不同的微服务治理配置。此类情况下,您可以使用微服务命名空间将不同环境中的应用隔离。
微服务命名空间和Kubernetes命名空间是独立的概念。在接入应用时,您可以通过在Pod或者对应的Kubernetes命名空间上设置LabelmseNamespace: ${命名空间名称}
参数来指定应用接入MSE时的命名空间。
例如,在实际场景中,您可以将测试环境的应用全部接入微服务命名空间test
(例如test/example-app
),将生产环境的所有应用全部接入微服务命名空间prod
(例如prod/example-app
)。当您需要使用MSE微服务治理功能时,您可以在test/example-app
应用上设置并验证。验证通过后,再返回prod/example-app
应用设置同样的功能。
在不同微服务命名空间下,推荐您使用独立的数据库、消息队列集群、Kubernetes集群和Nacos注册配置中心实例,以防止测试环境的变更影响生产环境,保障稳定性。
什么是MSE中的应用
微服务应用一般指提供了一组微服务的Java进程,一个微服务应用可以独立完成某些比较内聚的微服务业务逻辑,同时有固定的运维、开发人员。
对应到部署模式上,一个MSE微服务应用对应一组Deployment。
在接入应用时,如果您在Pod上添加labelmseNamespace: prod
和msePilotCreateAppName: ${应用名称}
,则会接入到prod
微服务命名空间下的对应应用。应用名最大长度为63个字符。
应用场景
例如,您在同一个VPC内有三套环境,分别用于应用开发、测试和生产,可以为这三套环境分别创建一个微服务空间(如Dev、Test和Prod)。在这三个微服务空间中分别创建集群并部署应用,不同微服务空间下的应用互相隔离。
由于MSE不同版本功能不同,价格也不一致。对于企业版用户来说,有些时候并不是所有应用都需要运行态防护能力(比如Dev环境),可以按需将部分命名空间降级为专业版,其他命名空间默认为企业版(比如Prod环境),从而满足不同环境接入MSE的需求。
创建微服务命名空间
登录MSE控制台。
在左侧导航栏,选择治理中心 > 运维中心 > 微服务命名空间。
在微服务命名空间页面,单击创建微服务命名空间。
在创建微服务命名空间对话框配置微服务空间参数,然后单击确定。
配置项 | 描述 |
名称 | 微服务空间的名称。 |
描述 | 微服务空间的描述。 |
编辑微服务命名空间
在微服务命名空间页面,单击需要编辑的微服务命名空间操作列下的编辑。
在编辑微服务命名空间对话框,修改微服务命名空间的描述,编辑完成后,单击确定。
降级微服务命名空间至专业版
微服务命名空间降级至专业版操作需要满足以下前提条件:
当前用户版本为企业版。
当前用户命名空间为企业版。
在微服务命名空间页面,单击需要降级的微服务命名空间操作列下的降级至专业版。
在确认对话框,单击确定。
降级前企业版规则,不需要删除,后续系统也不会自动对其删除。但需要注意,企业版能力将会在应用重启后失效。降级后,当前命名空间下的应用将按照专业版计费。
如果降级至专业版后,应用需要尽快重启,确保企业版能力不产生作用,如果不重启MSE可能会影响企业版能力SLA。
升级微服务命名空间至企业版
微服务命名空间升级至企业版操作需要满足以下前提条件:
当前用户版本为企业版。
降级为专业版的命名空间才有升级至企业版操作。
在微服务命名空间页面,单击需要升级的微服务命名空间操作列下的升级至企业版。
在确认对话框,单击确定。
只有企业版用户,并且有降级为专业版的命名空间,才有升级至企业版操作。
升级后,当前命名空间下的应用将按照企业版计费。
如果命名空间从专业版升级至企业版后,需要应用进行重启,企业版的规则才会生效。
删除微服务命名空间
删除微服务命名空间需要满足以下前提条件:
微服务空间下无任何应用。
在微服务命名空间页面,单击需要删除的微服务命名空间操作列下的删除
在删除对话框,单击确定。
相关文档
您可以将应用接入微服务治理空间。具体操作,请参见ACK微服务应用接入MSE治理中心。