命名空间管理

最近更新时间:2024-11-13 16:14:53

我的收藏
命名空间(Namespace)是对一组资源和对象的抽象集合,用于对服务相互访问的隔离,在网络连通性的前提下,同一命名空间内的服务可以相互发现和相互调用。
以下视频将为您介绍 TSF 命名空间功能的使用:


命名空间分类

命名空间有三种类型:
类型
个数限制
说明
系统命名空间
创建每个集群时会自动创建一个
命名规则是<cluster-name>_default,不支持绑定到其他集群
非全局命名空间
每个用户可以创建多个
不同非全局命名空间内的服务之间不能相互调用
全局命名空间
每个用户在每个地域下只能创建一个
非全局命名空间内的服务可以调用全局命名空间内服务
全局命名空间内服务支持相互调用,不支持调用非全局命名空间内的服务
注意:
全局命名空间特性仅适用于1.18.0版本之后的 SDK。
原生应用不支持全局命名空间特性。

应用场景

使用命名空间划分开发环境和测试环境

场景:用户希望部署一套开发环境和一套测试环境,两套环境支持部署同一个应用不同版本的程序包。两套环境可以共享一个集群作为底层部署资源。
解决方案:
1. 创建两个非全局命名空间分别为 dev-envtest-env 作为开发环境和测试环境。
2. 创建一个虚拟机集群,并绑定 dev-envtest-env 命名空间。
3. 创建应用(如 promotion),并创建 2 个部署组(dev-promotiontest-promotion),分别选择 dev-envtest-env 命名空间。
4. 部署组 dev-promotion 部署程序包版本 v1.1,部署组 test-promotion 部署程序包版本 v1.0。
注意:
如果用户希望开发和测试环境的部署资源是隔离的,可以使用两个集群来划分开发和测试环境。

实现服务跨集群访问

在网络连通性的前提下,同一命名空间内的服务可以相互发现和相互调用。如果要实现跨集群的服务访问,有两个前提:
1. 集群内实例网络互通
2. 集群关联相同的命名空间。多个集群通过命名空间名称(而不是命名空间 ID)作为关联的 key。用户可以在命名空间一级页面中看到关联的集群信息。
例如:有2个集群分别是 cluster-1 和 cluster-2,两个集群内实例网络互通(如在相同 VPC 内),并且都关联了命名空间 test-namespace。要实现跨集群访问,需要确保在创建部署组 provider-group 和 consumer-group 时,使用相同的命名空间 test-namespace。


使用全局命名空间来部署公共服务

场景:在电商场景中,订单业务和物流业务都希望访问用户信息服务。此时可以使用不同命名空间来划分业务领域,将相对独立的业务(如订单和物流业务)部署在非全局命名空间,将公共服务(如用户信息服务)部署在全局命名空间中。
解决方案:
1. 创建两个非全局命名空间 order-bizlogistics-biz 作为订单和物流的业务领域。
2. 创建全局命名空间 common-biz 作为公共服务的业务领域。
3. 将订单业务的服务部署在 order-biz 命名空间内,将物流的服务部署在 logistics-biz 内,将用户信息服务部署在 common-biz 内。
4. order-bizlogistics-biz 命名空间内的服务可以访问 common-biz 内的用户信息服务。


创建命名空间并关联集群

创建命名空间

1. 登录 TSF 控制台
2. 在左侧导航栏中单击资源管理,选择好地域后,在命名空间标签页单击新建命名空间
3. 填写命名空间信息。
名称:不能为空。最长60个字符,只能包含字母、数字及分隔符(“-”),且不能以分隔符开头或结尾。
勾选是否为全局命名空间:每个租户限制创建一个全局命名空间。
标签:用于分类管理资源,可不选。详情参见 标签
备注:集群的描述,不超过200个字符。
数据集:将新建的集群添加到已有数据集中。非必填字段。数据集使用,请参见 数据集管理
4. 单击提交,完成创建。


集群关联命名空间

1. 选择目标集群,进入集群详情页,单击命名空间标签页。
2. 在命名空间列表左上方,单击关联命名空间
3. 选择要关联的命名空间,并单击提交
注意
集群仅支持关联自定义命名空间。

删除命名空间

前提条件:删除命名空间前,需要先解除命名空间与集群的绑定关系(解除命名空间绑定时,需要先删除具有该命名空间属性的全部部署组)。不支持删除系统命名空间。

解除关联集群

1. 登录 TSF 控制台,在左侧导航栏中,单击资源管理,进入集群列表标签页。
2. 选择目标集群,进入集群详情页,单击命名空间标签页。
3. 在命名空间列表的操作列,单击解除绑定

删除命名空间

1. 在控制台左侧导航栏中,单击资源管理,进入命名空间 标签页。
2. 在命名空间列表的操作列,单击删除
3. 单击确认,即可删除命名空间。

设置 Code

Code 是标识命名空间的业务 ID,在 API 网关配置微服务 API 后,调用 API 时需要带上 Code 来访问命名空间内微服务。详细指引请参见 使用指引