
# 命名空间
#### 使用场景
命名空间（Namespace）是用于在多个用户间划分资源的一种方法，特别适用于拥有多个团队或项目的用户。当项目和人员数量较多时，可以根据项目属性（如生产、测试、开发等）创建不同的命名空间，以实现部分环境的隔离。
#### 约束与限制
- 目前，"华南-广州"、"华东-上海二"、"西南-贵阳一"区域暂不支持"GPU加速型"资源。
- 一个账号在同一个区域支持创建5个命名空间，且命名空间的名称在云容器实例中需全局唯一。
- 通用计算型和GPU加速型支持X86镜像。
 
#### 命名空间与网络的关系
从网络角度，命名空间对应一个虚拟私有云（VPC）中一个子网，如[图1]所示，在创建命名空间时会关联已有VPC或创建一个新的VPC，并在VPC下创建一个子网。后续在该命名空间下创建的容器及其他资源都会在对应的VPC及子网之内。
通常情况下，如果您在同一个VPC下还会使用其他服务的资源，您需要考虑您的网络规划，如子网网段划分、IP数量规划等，确保有可用的网络资源。
图1命名空间与VPC子网的关系   
![](https://support.huaweicloud.com/usermanual-cci/zh-cn_image_0201693831.png)
#### 创建方式
您可以[通过控制台创建命名空间]或[使用kubectl创建命名空间]。
 #### 通过控制台创建命名空间
1. 登录云容器实例管理控制台，左侧导航栏中选择"命名空间"。
2. 当前云容器实例提供"通用计算型"和"GPU加速型"两种类型的资源，在对应类型的命名空间下单击"创建"，后续创建的负载中容器将运行在此类型的集群上。 
   表1云容器实例类型 
   | 云容器实例类型 | 描述                                    |
   |:---|:---|
   | 通用计算型   | 支持创建含CPU资源的容器实例，适用于通用计算场景。            |
   | GPU加速型  | 支持创建含GPU资源的容器实例，适用于深度学习、科学计算、视频处理等场景。 |
      
   
   
3. 在对应类型的命名空间下单击"创建"。
4. 填写命名空间名称。
5. 设置RBAC权限。开启RBAC鉴权后，用户使用命名空间下的资源将受到RBAC权限控制，详情请参见[命名空间权限](https://support.huaweicloud.com/usermanual-cci/cci_01_0093.html#cci_01_0093__section944114820217)。
6. 选择企业项目。CCI中每个命名空间对应一个企业项目，一个企业项目下可以有多个命名空间。 
   ![](https://support.huaweicloud.com/usermanual-cci/public_sys-resources/note_3.0-zh-cn.png)
   - 如果您开通了[企业管理](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0123692049.html)，使用账号登录云容器实例控制台时，您需要在账号下的容器镜像服务中给IAM用户添加权限，IAM用户才能使用账号下的私有镜像。给IAM用户添加权限有如下两种方法：
     - 在镜像详情中为IAM用户添加授权，授权完成后，IAM用户享有读取/编辑/管理该镜像的权限，具体请参见[在镜像详情中添加授权](https://support.huaweicloud.com/usermanual-swr/swr_01_0015.html)。
     
     - 在组织中为IAM用户添加授权，使IAM用户对组织内所有镜像享有读取/编辑/管理的权限，具体请参见[在组织中添加授权](https://support.huaweicloud.com/usermanual-swr/swr_01_0015.html)。
      
   
   
   
   - 您开通了企业项目后，自动创建的网络、存储资源与命名空间在同一企业项目中。您在企业项目页面进行资源迁移时，建议一同迁移相关资源。 例如命名空间从项目1迁移至项目2，网络和存储资源也需要一同迁移，否则可能会导致该命名空间下的负载异常。
    
   
   
7. 设置VPC。 
   选择使用已有VPC或新建VPC，新建VPC需要填写VPC网段，建议使用网段：10.0.0.0/8\~22，172.16.0.0/12\~22，192.168.0.0/16\~22。
   ![](https://support.huaweicloud.com/usermanual-cci/public_sys-resources/notice_3.0-zh-cn.png)
   - 此处VPC和子网的网段不能为10.247.0.0/16，10.247.0.0/16是云容器实例预留给负载访问的网段。如果您使用此网段，后续可能会造成IP冲突，导致负载无法创建或服务不可用；如果您不需要通过负载访问，而是直接访问Pod，则可以使用此网段。
   
   - 命名空间创建完成后，在"网络管理 \> 容器网络"中可查看到VPC和子网信息。
    
   
   
8. 设置子网网段。 
   您需要关注子网的可用IP数，确保有足够数量的可用IP，如果没有可用IP，则会导致负载创建失败。
   图2子网设置   
   ![](https://support.huaweicloud.com/usermanual-cci/zh-cn_image_0200479351.png)
   ![](https://support.huaweicloud.com/usermanual-cci/public_sys-resources/note_3.0-zh-cn.png)
   - 创建的namespace会在设置的子网中预热部分IP，默认个数为10个。
   
   - 在[高级设置]中可以设置预热的个数。
   
   - 创建namespace后，由于预热了部分IP，会影响设置的subnet和VPC的删除，需要删除namespace之后才能正常删除对应的subnet和VPC。
    
   
   
9. 高级设置。
   
   每个命名空间下都提供了一个IP池，申请IP需要一段时间，如果需要快速创建负载，减少IP的申请时间，可通过自定义资源池大小来实现。
   例如，某业务线日常的负载数为200，当达到流量高峰时，IP资源池会自动扩容，瞬间将IP资源池扩容到500（IP资源池大小），同时会在回收间隔23h（IP资源池回收间隔）之后，进行回收超过资源池大小的部分即（500-200）个。
   图3高级设置   
   ![](https://support.huaweicloud.com/usermanual-cci/zh-cn_image_0000001288986966.png)
   - 预热IP资源池大小(个)：为每个命名空间预热一个IP池，用来加速负载创建。预热IP资源池的大小不能超过500个。
   
   - 预热IP资源池回收间隔（h）：IP资源池弹性扩容出来的空闲IP资源， 在一定时间内可进行回收。
   
   - 容器网络预准备：容器启动时，可能会没有网络连接。如果容器在启动时，需要立即连接网络， 可开启此处的"容器网络预准备"开关。
   
   
   
   
10. 单击"创建"。 
    创建完成后，可以在命名空间详情中看到VPC、子网等信息。
    
    
 
 #### 使用kubectl创建命名空间
使用kubectl创建命名空间请参见[Namespace和Network](https://support.huaweicloud.com/devg-cci/cci_05_0023.html)。
#### 后续相关操作
- 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业务网段，详见[购买终端节点并关联已创建终端节点服务后，无法正常连通如何排查？](https://support.huaweicloud.com/vpcep_faq/zh-cn_topic_0138838187.html)
  
  - 如果业务需要使用ELB，并配置了service/ingress等服务发现相关能力。 请参考相关文档放通ELB业务网段，详情请参考[为什么100或214开头的IP在频繁访问后端服务器？](https://support.huaweicloud.com/elb_faq/elb_faq_0068.html)
   
- 删除[删除命名空间]。
 
 #### 删除命名空间
![](https://support.huaweicloud.com/usermanual-cci/public_sys-resources/notice_3.0-zh-cn.png)
删除命名空间将会删除该命名空间相关的所有数据资源（工作负载、ConfigMap、Secret、SSL证书等）。
1. 登录云容器实例管理控制台，左侧导航栏中选择"命名空间"，单击要删除的命名空间，进入命名空间详情页面。
2. 单击右上角"删除"，并输入DELETE，然后单击"确认"。 
   ![](https://support.huaweicloud.com/usermanual-cci/public_sys-resources/note_3.0-zh-cn.png)
   如需删除VPC、Subnet请前往[虚拟私有云](https://console.huaweicloud.com/vpc/?#/vpcs)。
   
   
 
