Kubernetes名称空间
Kubernetes名称空间基础
名称空间(Namespace)
- 是Kubernetes集群提供对内部资源进行“软隔离”的机制,以方便用户管理和组织集群资源
- 可以将其想像成虚拟的"子集群"
管理名称空间
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缩小查找范围,从而对减少搜索延迟和提升性能有一定的帮助
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程