# 创建命名空间
#### 操作场景
命名空间（Namespace）是对一组资源和对象的抽象整合。在同一个集群内可创建不同的命名空间，不同命名空间中的数据彼此隔离。使得它们既可以共享同一个集群的服务，也能够互不干扰。
例如可以将开发环境、测试环境的业务分别放在不同的命名空间。
#### 前提条件
至少已创建一个集群。
#### 约束与限制
每个命名空间下，创建的服务数量不能超过6000个。此处的服务对应kubernetes的service资源，即工作负载所添加的服务。
#### 命名空间类别
命名空间按创建类型分为两大类：集群默认创建的、用户创建的。
- 集群默认创建的：集群在启动时会默认创建default、kube-public、kube-system、kube-node-lease命名空间。
  - default：所有未指定Namespace的对象都会被分配在default命名空间。
  
  - kube-public：此命名空间下的资源可以被所有人访问（包括未认证用户），用来部署公共插件、容器模板等。
  
  - kube-system：所有由Kubernetes系统创建的资源都处于这个命名空间。
   
- 用户创建的：用户可以按照需要创建命名空间，例如开发环境、联调环境和测试环境分别创建对应的命名空间。或者按照不同的业务创建对应的命名空间，例如系统若分为登录和游戏服务，可以分别创建对应命名空间。
 
#### 创建命名空间
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在左侧导航栏中选择"命名空间"，在右上角单击"创建命名空间"。
3. 参照[表1]设置命名空间参数。
   
    表1命名空间基本信息 
   | 参数    | 参数说明                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|
   | 名称   | 新建命名空间的名称，命名必须唯一。                                                                                                                                                                                                                                                                                                                  |
   | 描述  | 输入对命名空间的描述信息。                                                                                                                                                                                                                                                                                                                       |
   | 配额管理 | 资源配额可以限制命名空间下的资源使用，进而支持以命名空间为粒度的资源划分。 须知： **建议根据需要在命名空间中设置资源配额，避免因资源过载导致集群或节点异常。** 请输入整型数值，不输入表示不限制该资源的使用。 若您需要限制CPU或内存的配额，则创建工作负载时必须指定CPU或内存请求值。 |
      
   
   
4. 配置完成后，单击"确定"。
 
#### 使用kubectl创建Namespace
使用如下方式定义Namespace。
```
apiVersion: v1 
kind: Namespace 
metadata: 
  name: custom-namespace
```
使用kubectl命令创建。
```
$ kubectl create -f custom-namespace.yaml
namespace/custom-namespace created
```
您还可以使用kubectl create namespace命令创建。
```
$ kubectl create namespace custom-namespace 
namespace/custom-namespace created
```
