You need to enable JavaScript to run this app.
导航
命名空间
最近更新时间:2024.12.06 12:08:42首次发布时间:2024.12.06 12:08:42

Kubernetes 支持在一个物理集群中创建多个虚拟集群以支持跨团队跨项目的使用场景,这种虚拟集群被称为命名空间。更多详细介绍参见:Kubernetes 官网文档

命名空间概述

命名空间分类

按照创建方式,可以将集群中的命名空间分为两类,包括:系统命名空间、用户自建命名空间。

  • 系统命名空间:随集群启动时默认创建,包括:default、kube-public、kube-system、kube-node-lease。
命名空间名称说明
default所有未指定 Namespace 的对象都会被分配在 default 命名空间。
kube-public此命名空间下的资源可以被所有人访问(包括未认证用户),用来部署公共插件、容器模板等。
kube-system所有由 Kubernetes 系统创建的资源都处于这个命名空间。
kube-node-lease用于与各个节点相关的租约(Lease)对象。 节点租期允许 kubelet 发送心跳,由此控制平面能够检测到节点故障。
  • 自建命名空间:用户根据业务需要自定义创建的命名空间,例如以开发环境、测试环境和生产环境命名的命名空间。

命名空间划分实践

  • 按照团队划分:为独立的项目或团队创建命名空间,便于后期基于命令空间维度管理团队的权限和资源配额。
  • 按照环境划分:通常应用的发布需要涉及到开发环境、测试环境、生产环境等。不同环境中的应用大体相同,可以通过命名空间进行环境的隔离,确保各环境中的应用独立维护,互不干扰。
  • 按照应用划分:对于应用较多的场景,可以按照工作负载间的关联关系,将工作负载分组,部署在不同的命名空间,分批次管理。

创建命名空间

  1. 登录 容器服务控制台
  2. 在集群管理页面的左侧导航栏,选择 集群,并在集群管理页面,单击目标注册集群名称。
  3. 在注册集群左侧导航栏选择 命名空间,进入命名空间管理页面。
  4. 单击 创建命名空间,根据引导提示配置参数。所有参数配置完成后单击 确定,即可开始创建命名空间。

alt

配置项说明
名称自定义命名空间名称,同一个集群中不允许重名。命名规则:长度 1-63 个字符;由小写字母、连字符、数字组成并以字母、数字开头和结尾;不能以kube-开头。

标签

对应 Kubernetes 中的 Lable,用于识别命名空间的键值对,配合选择器,帮助 Kubernetes 快速筛选目标命名空间。
可使用键值对方式按需配置命名空间的标签。

注解

对应 Kubernetes 中的 Annotation,主要记录用于应用部署、安全策略、调度策略的附加信息,不用于标识和区分资源。
可使用键值对方式按需配置命名空间的注解,默认自带kubeadmiral.io/schedulingkubeadmiral.io/syncing两个注解。

设置资源配额

对应 Kubernetes 中的 ResourceQuota,用于多团队或多用户的共享集群资源场景下,限制团队、用户可以使用的资源总量,包括限制命名空间下创建某一类型对象(容器、服务)的数量以及消耗计算资源(CPU、内存)的总量。

说明

若您通过 kubectl 或者 Kubernetes 原生 API 方式设置资源配额(即不通过上述控制台配置方法)时,请确保 ResourceQuota 名称和 NameSpace 名称相同,否则控制台上的 查看详情 处无法正常显示资源配额详情。

  1. 登录 容器服务控制台
  2. 在集群管理页面的左侧导航栏,选择 集群,并在集群管理页面,单击目标注册集群名称。
  3. 在注册集群左侧导航栏选择 命名空间,进入命名空间管理页面。
  4. 单击目标命名空间右侧操作列 ... 中的 设置资源配额,按需配置该命名空间的资源配额,完成后单击 确定
名称描述
CPU 请求指定本命名空间所有 runningwaiting 状态 Pod 的 CPU 请求总和的上限。
内存请求指定本命名空间所有 runningwaiting 状态 Pod 的内存请求总和的上限。
CPU 上限指定本命名空间所有 runningwaiting 状态 Pod 的 CPU 总和的上限。
内存上限指定本命名空间所有 runningwaiting 状态 Pod 的内存总和的上限。
存储请求总量指定本命名空间中所有 PVC 的存储资源需求总量的上限。
存储卷声明数量指定本命名空间所允许的 PVC 总数的上限。
容器组数量指定本命名空间所允许的 runningwaiting 状态 Pod 总数上限。
保密字典数量指定本命名空间所允许的 Secret 总数上限。
配置项数量指定本命名空间允许的 ConfigMap 总数的上限。
服务数量指定本命名空间所允许的 Service 总数上限。

设置资源限制

对应 Kubernetes 中的 LimitRange,资源使用限制有利于资源的合理分配和管理,提高集群资源的利用率和可用性。

  1. 登录 容器服务控制台
  2. 在集群管理页面的左侧导航栏,选择 集群,并在集群管理页面,单击目标注册集群名称。
  3. 在注册集群左侧导航栏选择 命名空间,进入命名空间管理页面。
  4. 单击目标命名空间右侧操作列 ... 中的 设置资源限制,按需配置该命名空间的资源限制,完成后单击 确定

说明

  • 如果命名空间中的容器没有声明容器中 CPU、内存等资源限制,那么 Kubernetes 会将预先设置的资源限制应用到本命名空间中的容器中。
  • 若您通过 kubectl 或者 Kubernetes 原生 API 方式设置资源限制(即不通过上述控制台配置方法)时,请确保 LimitRange 名称和 NameSpace 名称相同,否则控制台上的 查看详情 处无法正常显示资源限制详情。
名称描述
默认 CPU 请求容器没有声明 CPU 限制的情况下,本命名空间中每个容器执行请求占用 CPU 的最小值。
默认 CPU 上限容器没有声明 CPU 限制的情况下,本命名空间中每个容器执行请求占用 CPU 的最大值。
默认内存请求容器没有声明内存限制的情况下,本命名空间中每个容器执行请求占用内存的最小值。
默认内存上限容器没有声明内存限制的情况下,本命名空间中每个容器执行请求占用内存的最大值。
最小 CPU设置容器最小 CPU 使用量。设置后,默认 CPU 请求、默认 CPU 上限需大于等于最小 CPU,且不可为空。
最大 CPU设置容器最大 CPU 使用量。设置后,默认 CPU 请求、默认 CPU 上限需小于等于最大 CPU,且不可为空。
最小内存设置容器最小内存使用量。设置后,默认内存请求、默认内存上限需大于等于最小内存,且不可为空。
最大内存设置容器最大内存使用量。设置后,默认内存请求、默认内存上限需小于等于最大内存,且不可为空。
最大 CPUPod 最大 CPU 使用量。
最大内存Pod 最大内存使用量。
最小存储请求PVC 最小存储使用量。
最大存储请求PVC 最大存储使用量。

管理命名空间

命名空间创建完成后,将返回资源管理页面。单击资源列表顶部操作按钮或右侧操作列...中的操作按钮,可执行对应管理操作。详细说明如下:

操作说明
使用 Yaml 创建使用 Yaml 创建资源,推荐直接粘贴已经根据业务需求配置的 Yaml 内容。相较于使用控制台创建资源,使用 Yaml 方式支持的参数更全面。
更新通过控制台方式更新命名空间配置。
编辑 Yaml编辑已经创建命名空间的文件,更新配置信息。
设置资源配额自定义设置命名空间的资源配额,对应 Kubernetes 中的 ResourceQuota。资源配额用于多团队或多用户的共享集群资源场景下,限制团队、用户可以使用的资源总量,包括限制命名空间下创建某一类型对象(容器、服务)的数量以及消耗计算资源(CPU、内存)的总量。
设置资源限制自定义设置命名空间的资源限制,对应 Kubernetes 中的 LimitRange。资源使用限制有利于资源的合理分配和管理,提高集群资源的利用率和可用性。

删除

删除目标工作负载。

注意

删除命名空间将会同步销毁该命名空间下的所有资源,操作不可逆,请谨慎操作。

创建命名空间的 Yaml 测试示例如下,具体参数和配置以实际使用场景中各云厂商的定义为准。

apiVersion: v1
kind: Namespace
metadata:
  name: users-namespace # adjust name for your namepsace