命名空间
使用场景
命名空间(Namespace)是用于在多个用户间划分资源的一种方法,特别适用于拥有多个团队或项目的用户。当项目和人员数量较多时,可以根据项目属性(如生产、测试、开发等)创建不同的命名空间,以实现部分环境的隔离。
约束与限制
- 目前,“华南-广州”、“华东-上海二”、“西南-贵阳一”区域暂不支持“GPU加速型”资源。
- 一个账号在同一个区域支持创建5个命名空间,且命名空间的名称在云容器实例中需全局唯一。
- 通用计算型和GPU加速型支持X86镜像。
命名空间与网络的关系
从网络角度,命名空间对应一个虚拟私有云(VPC)中一个子网,如图1所示,在创建命名空间时会关联已有VPC或创建一个新的VPC,并在VPC下创建一个子网。后续在该命名空间下创建的容器及其他资源都会在对应的VPC及子网之内。
通常情况下,如果您在同一个VPC下还会使用其他服务的资源,您需要考虑您的网络规划,如子网网段划分、IP数量规划等,确保有可用的网络资源。
创建方式
通过控制台创建命名空间
- 登录云容器实例管理控制台,左侧导航栏中选择“命名空间”。
- 当前云容器实例提供“通用计算型”和“GPU加速型”两种类型的资源,在对应类型的命名空间下单击“创建”,后续创建的负载中容器将运行在此类型的集群上。
表1 云容器实例类型 云容器实例类型
描述
通用计算型
支持创建含CPU资源的容器实例,适用于通用计算场景。
GPU加速型
支持创建含GPU资源的容器实例,适用于深度学习、科学计算、视频处理等场景。
- 在对应类型的命名空间下单击“创建”。
- 填写命名空间名称。
- 设置RBAC权限。开启RBAC鉴权后,用户使用命名空间下的资源将受到RBAC权限控制,详情请参见命名空间权限。
- 选择企业项目。CCI中每个命名空间对应一个企业项目,一个企业项目下可以有多个命名空间。
- 如果您开通了企业管理,使用账号登录云容器实例控制台时,您需要在账号下的容器镜像服务中给IAM用户添加权限,IAM用户才能使用账号下的私有镜像。给IAM用户添加权限有如下两种方法:
- 在镜像详情中为IAM用户添加授权,授权完成后,IAM用户享有读取/编辑/管理该镜像的权限,具体请参见在镜像详情中添加授权。
- 在组织中为IAM用户添加授权,使IAM用户对组织内所有镜像享有读取/编辑/管理的权限,具体请参见在组织中添加授权。
- 您开通了企业项目后,自动创建的网络、存储资源与命名空间在同一企业项目中。您在企业项目页面进行资源迁移时,建议一同迁移相关资源。 例如命名空间从项目1迁移至项目2,网络和存储资源也需要一同迁移,否则可能会导致该命名空间下的负载异常。
- 如果您开通了企业管理,使用账号登录云容器实例控制台时,您需要在账号下的容器镜像服务中给IAM用户添加权限,IAM用户才能使用账号下的私有镜像。给IAM用户添加权限有如下两种方法:
- 设置VPC。
选择使用已有VPC或新建VPC,新建VPC需要填写VPC网段,建议使用网段:10.0.0.0/8~22,172.16.0.0/12~22,192.168.0.0/16~22。
- 此处VPC和子网的网段不能为10.247.0.0/16,10.247.0.0/16是云容器实例预留给负载访问的网段。如果您使用此网段,后续可能会造成IP冲突,导致负载无法创建或服务不可用;如果您不需要通过负载访问,而是直接访问Pod,则可以使用此网段。
- 命名空间创建完成后,在“网络管理 > 容器网络”中可查看到VPC和子网信息。
- 设置子网网段。
您需要关注子网的可用IP数,确保有足够数量的可用IP,如果没有可用IP,则会导致负载创建失败。
图2 子网设置- 创建的namespace会在设置的子网中预热部分IP,默认个数为10个。
- 在高级设置中可以设置预热的个数。
- 创建namespace后,由于预热了部分IP,会影响设置的subnet和VPC的删除,需要删除namespace之后才能正常删除对应的subnet和VPC。
- 高级设置。
每个命名空间下都提供了一个IP池,申请IP需要一段时间,如果需要快速创建负载,减少IP的申请时间,可通过自定义资源池大小来实现。
例如,某业务线日常的负载数为200,当达到流量高峰时,IP资源池会自动扩容,瞬间将IP资源池扩容到500(IP资源池大小),同时会在回收间隔23h(IP资源池回收间隔)之后,进行回收超过资源池大小的部分即(500-200)个。
图3 高级设置- 预热IP资源池大小(个):为每个命名空间预热一个IP池,用来加速负载创建。预热IP资源池的大小不能超过500个。
- 预热IP资源池回收间隔(h):IP资源池弹性扩容出来的空闲IP资源, 在一定时间内可进行回收。
- 容器网络预准备:容器启动时,可能会没有网络连接。如果容器在启动时,需要立即连接网络, 可开启此处的“容器网络预准备”开关。
- 单击“创建”。
创建完成后,可以在命名空间详情中看到VPC、子网等信息。
后续相关操作
- CCI服务命名空间及对应网络配置,需关联安全组:
- 通过CCI界面创建命名空间时,会同步创建、关联前缀为kubernetes.io-default-sg的安全组。为保证客户业务正常可运行,该安全组允许负载端口被所有IP地址访问,即放通不限于22、443、3389端口等典型端口。
- 使用Bursting弹性到CCI使用的安全组继承CCE集群配置。
- 为进行安全加强,您可修改相应安全组规则为只允许IP地址段访问。请结合业务场景,谨慎操作仔细验证:
- 如果负载使用httpGet类型的健康检查配置,则需要放通VPC下所有子网。如果VPC为192.168.0.0/16,则需要放通此IP端口,可访问负载的端口。
- 如果VPC内存在VPCEP。请参考相关文档放通VPCEP业务网段,详见购买终端节点并关联已创建终端节点服务后,无法正常连通如何排查?
- 如果业务需要使用ELB,并配置了service/ingress等服务发现相关能力。 请参考相关文档放通ELB业务网段,详情请参考为什么100或214开头的IP在频繁访问后端服务器?
- 删除删除命名空间。