更新时间:2025-02-18 GMT+08:00
创建命名空间
操作场景
命名空间(Namespace)是对一组资源和对象的抽象整合。在同一个集群内可创建不同的命名空间,不同命名空间中的数据彼此隔离。使得它们既可以共享同一个集群的服务,也能够互不干扰。
例如可以将开发环境、测试环境的业务分别放在不同的命名空间。
前提条件
至少已创建一个集群。
约束与限制
每个命名空间下,创建的服务数量不能超过6000个。此处的服务对应kubernetes的service资源,即工作负载所添加的服务。
命名空间类别
命名空间按创建类型可分为以下几类:
- 集群默认创建的命名空间:集群在启动时会默认创建default、kube-public、kube-system、kube-node-lease命名空间。
- default:所有未指定Namespace的对象都会被分配在default命名空间。
- kube-public:此命名空间下的资源可以被所有人访问(包括未认证用户),使集群中的某些资源可以在整个集群范围内可见可读。 该命名空间为Kubernetes预留的命名空间,其公共属性只是一种约定而并非要求。
- kube-system:所有由Kubernetes系统创建的资源都处于这个命名空间。
- kube-node-lease:每个节点在该命名空间中都有一个关联的“Lease”对象,该对象由节点定期更新。NodeStatus和NodeLease都被视为来自节点的心跳,在v1.13之前的版本中,节点的心跳只有NodeStatus,NodeLease特性从v1.13开始引入。NodeLease比NodeStatus更轻量级,该特性在集群规模扩展性和性能上有明显提升。
- 用户创建的命名空间:用户可以按照需要创建命名空间,例如开发环境、联调环境和测试环境分别创建对应的命名空间。或者按照不同的业务创建对应的命名空间,例如系统若分为登录和游戏服务,可以分别创建对应命名空间。
- 服务网格命名空间:使用ASM服务时将自动创建名为istio-system、asm-system、istio-operator、mantis-system的命名空间。这些命名空间不支持进行配额管理。如果您手动创建名称相同的命名空间,这些命名空间也将会受到该限制。
使用控制台创建命名空间
- 登录CCE控制台,单击集群名称进入集群。
- 在左侧导航栏中选择“命名空间”,在右上角单击“创建命名空间”。
- 参照表1设置命名空间参数。
- 配置完成后,单击“确定”。
使用kubectl命令创建命名空间
- 使用kubectl连接集群,详情请参见通过kubectl连接集群。
- 您可以使用以下方式创建命名空间。
- 方式一:通过YAML文件定义命名空间配置,然后通过kubectl apply命令创建命名空间。
- 创建一个名为custom-namespace.yaml的文件,内容如下:
apiVersion: v1 kind: Namespace metadata: name: custom-namespace
- 使用以下kubectl命令创建命名空间。
kubectl apply -f custom-namespace.yaml
回显如下:
namespace/custom-namespace created
- 创建一个名为custom-namespace.yaml的文件,内容如下:
- 方式二:使用kubectl create namespace命令创建。
kubectl create namespace custom-namespace
- 方式一:通过YAML文件定义命名空间配置,然后通过kubectl apply命令创建命名空间。
- 创建命名空间后,可以使用以下命令来验证命名空间是否创建成功。
kubectl get namespaces
您应该会看到custom-namespace命名空间出现在列表中。
更多关于命名空间的配置,请参见管理命名空间的内存、CPU和API资源。