首页 / 项目管理 / 命名空间 / 创建命名空间

创建命名空间

在项目关联的集群下,基于项目可用配额,创建新的命名空间。

新的命名空间将使用项目已有的资源(内存、CPU 等),且一个命名空间的所有资源只能来源于同一个集群。

创建命名空间

  1. 项目管理 视图,单击待创建命名空间的 项目名称

  2. 在左侧导航栏中,单击 命名空间 > 命名空间

  3. 单击 创建命名空间

  4. 配置 基本信息

    参数 说明
    所属集群 在项目已关联的集群中,选择一个要创建命名空间的集群。
    命名空间 命名空间的名称,名称的固定前缀为项目名称。
  5. (可选)配置 资源配额

    命名空间下每指定一个容器的计算或存储资源限额(limits),或者每新增一个 Pod 或 PVC,都将占用此处所设配额。

    说明

    • 命名空间的资源配额,来源于集群分配给项目的配额。对于某一种资源,可设置的最高配额为在项目中的尚未使用的资源配额,如果任意一种资源的可使用量为 0,将无法继续创建命名空间,请联系平台管理员获得支持。

    • 仅当集群中部署了 GPU(vGPU 或 pGPU)资源时,支持配置 GPU 资源配额。当 GPU 资源为 vGPU 资源时,同时支持配置 显存 配额。

      GPU 单位:100 个单位的虚拟核心等于 1 个物理核心(1 颗 pGPU = 1 核 = 100 vGPU),pGPU 的单位为颗,只能整颗分配;1 个单位的显存为 256 Mi,1024 Mi = 1 Gi。

    • 如果未输入某类资源的配额,默认为 不限制。即命名空间可按需占用集群已分配给项目的可用的相应类型的资源,无限额。

    配额参数说明

    分类 配额类型 值和单位 说明
    存储配额 全部 Gi 此命名空间中所有的持久卷声明(PVC),其请求的存储容量的总和不能超过该值。
    存储类 此命名空间中,与所选存储类关联的所有持久卷声明(PVC),其请求的存储容量的总和不能超过该值。

    注意:请提前将存储类分配至命名空间所在的项目。
    扩展资源 从配置字典(ConfigMap)中获取,具体请参考 扩展资源说明 - 若不存在对应配置字典,则此分类不显示。
    其他配额 输入自定义配额,具体输入规则请参考 其他配额说明 - 为了避免出现资源重复定义的问题,不允许使用以下值作为配额类型:
    • limits.cpu
    • limits.memory
    • requests.cpu
    • requests.memory
    • pods
    • cpu
    • memory
  6. (可选)配置 容器限制范围

    使用 Kubernetes LimitRange 作为准入控制器,为所有未指定计算资源的容器设置默认的请求值和限制值,并持续跟踪容器使用量,确保命名空间中不存在超出最大值的资源。

    说明:容器的资源请求为资源限制与集群超售比的比值。资源请求值供调度器调度容器时参考和判断。调度器会检测每个节点可用于分配的资源(资源总额 - 已调度到节点上 Pod 内的容器的资源请求之和),当新建的 Pod 内容器的资源请求总和超过了节点的剩余可用资源,该 Pod 将不会被调度到此节点上。

    参数 说明
    默认请求值、默认限制值 用于指定命名空间下容器运行所需的资源默认值。
    最大值 用于指定命名空间下容器运行允许使用的最大资源值。
  7. (可选)容器组安全策略可以限制容器组中的容器使用哪些特权或功能,以及规定容器组中的容器如何运行,平台基于 PSA(Pod Security Admission)实现了更加细粒度的容器组安全策略。它定义了三种安全安全模式和安全标准:

    • 安全模式:Kubernetes 中的安全模式(Security Mode)是一种控制安全策略的机制,用于定义 Kubernetes 如何处理违反安全策略的容器组。更多更多细节请参考 官方文档 ,安全模式可以分为以下三种:

      • Enforce 模式:当容器组违反了安全策略时,Kubernetes 将拒绝该容器组的创建或修改,并返回错误信息,适合对安全要求较高的生产环境使用。

      • Audit 模式:当容器组违反了安全策略时,Kubernetes 将记录该事件,并将记录存储在审计日志中。这种模式通常用于了解集群中的安全事件,以便进行后续的调查和分析。

      • Warn 模式:当容器组违反了安全策略时,Kubernetes 将允许该容器组的创建或修改,并返回警告信息。这种模式通常用于测试或过渡期,以便管理员可以逐步调整安全策略而不会对应用程序造成影响。

    • 安全标准:Pod 安全性标准定义了三种不同的策略(Policy),以广泛覆盖安全应用场景,更多细节请参考 官方文档

      • Privileged 标准:容器组中的容器拥有特权访问,允许所有操作,没有任何限制。

      • Baseline 标准:限制容器组中的容器使用宿主机的命名空间、网络、文件系统、进程等。这是一种默认的安全标准,通常适用于大多数场景。

      • Restricted 标准:进一步限制容器组中的容器使用宿主机的资源,包括限制容器使用文件系统、网络等。这是一种高度安全的标准,适用于对安全性要求非常高的场景。 这些安全标准可以通过 Kubernetes 中的 Admission Controller 对容器组进行验证,以确保容器组中的容器不会破坏 Kubernetes 集群的安全性。

  8. (可选)在 更多配置 区域,为当前命名空间添加标签(labels)、注解(annotations)。

    提示:可通过标签定义命名空间的属性,或通过注解为命名空间补充附加信息,两者均可用于过滤、筛选命名空间。

  9. 单击 创建

相关操作

删除/移除命名空间

在指定的项目下,删除/移除一个命名空间。

删除命名空间:删除命名空间并清理命名空间下已有资源,释放命名空间占用的配额资源。

移除命名空间:移除命名空间只是将该命名空间移除出项目,不影响命名空间下已有资源。例如:应用、持久卷声明、配置、计算、命名空间成员及其角色等。
移除后的命名空间,可导入其他关联了该命名空间所在集群的项目下管理。具体操作请参考 导入命名空间

相关说明

其他配额说明

自定义配额名称格式必须符合如下规范:

扩展资源说明

扩展资源中的 配额类型 从配置字典(ConfigMap)中获取,若不存在对应配置字典,则此分类不显示。

配置字典字段说明

字段 说明
data.dataType 指定值(value)的数据类型。
data.defaultValue 设置默认值。若该字段不存在或值为空,则表示无默认值。
data.descriptionEn 英文提示信息,可单击值右侧的 图标进行查看。
data.descriptionZh 中文提示信息,可单击值右侧的 图标进行查看。
data.excludeResources 互斥的资源。此字段用于添加不能同时配置的资源,多个资源间使用 , 进行分隔。
data.group 组别
data.groupI18n 组别的中英文名称,可在配额类型对应的下拉选项中进行查看和选择。适用于同一个资源存在一个或多个值的情况。
data.key 指定键(key)的值,一个配置字典只能描述一个 key。
data.labelEn/data.labelZh 资源的英文/中文名称,可在配额类型对应的下拉选项中进行查看和选择。此字段和 data.groupI18n 字段的功能相同,但仅适用于同一个资源只有一个值的情况,可以兼容旧版配置字典(ConfigMap)。
data.limits 是否为资源配置 limits 值。可填写的值包括:disabled 表示禁用即不可为资源配置 limits 值、required 表示必须输入、optional 表示可选输入。
data.requests 是否为资源配置 requests 值。可填写的值包括:disabled 表示禁用即不可为资源配置 requests 值、required 表示必须输入、optional 表示可选输入、fromLimits 表示和 limits 一样使用相同配置。
data.relatedResources 关联的资源。此字段为预留字段,目前不可使用。
data.resourceUnit 资源的单位,需输入英文字母,暂不支持输入中文。
data.runtimeClassName 需要的运行时类,默认为空,可选值 nvidia。
metadata.labels
  • features.cpaas.io/type: CustomResourceLimitation,此 Label 为必填项,不可更改。
  • features.cpaas.io/group: <groupName>,此 Label 为必填项,需将 groupName 修改为对应组别。
  • features.cpaas.io/enabled: “true”,此 Label 为必填项,表示是否启用,默认为 true。
metadata.name 格式为 cf-crl-<groupName>-<name>,其中,
  • cf-crl 为固定字段,不可更改。
  • groupName 为资源对应组别的名称,例如:gpu-manager, galaxy 等。
  • name 为资源名:
    • 资源名可以是标准资源类型名称,如:cpu、memory、pods 等。其中,标准资源名称必须符合 Kubernetes 的 合格名称 规则,且在 Kubernetes 已定义的标准资源类型中存在。
    • 资源名也可以是以特定前缀,如:hugepages- 或 requests.hugepages- 开始的特殊资源类型。
metadata.namespace 必须指定为 kube-public 命名空间,不可更改。

配置字典配置示例

本文档仅提供了物理 GPU、GPU Manager 核心数及显存、MPS 核心数及显存的 YAML 配置示例,若需使用其他资源,请参考上述字段说明进行自定义。