Kubernetes名称空间
Kubernetes名称空间基础
名称空间(Namespace)
- 是Kubernetes集群提供对内部资源进行“软隔离”的机制,以方便用户管理和组织集群资源
- 可以将其想像成虚拟的"子集群"
![image]()
管理名称空间
Kubernetes的名称空间可以划分为两种类型
- 系统级名称空间:由Kubernetes集群默认创建,主要用来隔离系统级的资源对象
- 自定义名称空间:由用户按需创建
系统级名称空间
- default:默认的名称空间,为任何名称空间级别的资源提供的默认设定
- kube-system:Kubernetes集群自身组件及其它系统级组件使用的名称空间,Kubernetes自身的关键组件均部署在该名称空间中
- kube-public:公众开放的名称空间,所有用户(包括Anonymous)都可以读取内部的资源
- kube-node-lease:节点租约资源所用的名称空间
- 分布式系统通常使用“租约(Lease)”机制来锁定共享资源并协调集群成员之间的活动
- Kubernetes上的租约概念由API群组coordination.k8s.io群组下的Lease资源所承载,以支撑系统级别的功能需求,例如节点心跳(node heartbeats)和组件级的领导选举等
- Kubernetes集群的每个节点,在该名称空间下都有一个与节点名称同名的Lease资源对象
~# kubectl -n kube-system get lease
所有的系统级名称空间均不能进行删除操作,而且除default外,其它三个也不应该用作业务应用的部署目标
需要使用名称空间的情形
- 环境管理
- 需要在同一Kubernetes集群上隔离研发、预发和生产等一类的环境时,可以通过名称空间进行
- 隔离
- 多个团队的不同产品线需要部署于同一Kubernetes集群时,可以使用名称空间进行隔离
- 资源控制
- 名称空间可用作资源配额的承载单位,从而限制其内部所有应用可以使用的CPU/Memory/PV各自的资源总和
- 需要在产品线或团队等隔离目标上分配各自总体可用的系统资源时,可通过名称空间实现
- 权限控制
- 基于RBAC鉴权体系,能够在名称空间级别进行权限配置
- 提高集群性能
- 进行资源搜索时,名称空间有利于Kubernetes API缩小查找范围,从而对减少搜索延迟和提升性能有一定的帮助


浙公网安备 33010602011771号