Kubernetes-Namespace
1. 简介
Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为namespace
。
在一些文档里namespace
也称为命名空间
。
namespace
为资源提供了一个范围。
资源的名称需要在namespace
内是唯一的。
namespace
不能相互嵌套,每个 Kubernetes 资源只能在一个namespace
中。
2. quick start
2.1 查看namespace
初始状态下,Kubernetes 具有三个namespace
:
default
无namespace
对象的默认namespace
kube-system
由 Kubernetes 系统创建的对象的namespace
kube-public
自动创建且被所有用户可读的namespace
(包括未经身份认证的)。此namespace
通常在某些资源在整个集群中可见且可公开读取时被集群使用。此namespace
的公共方面只是一个约定,而不是一个必要条件。
或用下面的命令获取详细信息:
请注意,这些详情同时显示了资源配额(如果存在)以及资源限制区间。
资源配额跟踪并聚合 Namespace 中资源的使用情况,并允许集群运营者定义 Namespace 可能消耗的 Hard 资源使用限制。
限制区间定义了单个实体在一个 Namespace 中可使用的最小/最大资源量约束。
namespace
可以处于下列两个阶段中的一个:
Active
namespace
正在被使用中Terminating
namespace
正在被删除,且不能被用于新对象。
2.2 创建namespace
说明: 避免使用前缀
kube-
创建namespace
,因为它是为 Kubernetes 系统namespace
保留的。
-
新建一个名为
my-namespace.yaml
的 YAML 文件,并写入下列内容:然后运行:
-
或者,你可以使用下面的命令创建
namespace
:
2.3 删除namespace
-
使用资源文件删除:
-
使用命令删除:
警告: 这会删除
namespace
下的 所有内容 !
删除是异步的,所以有一段时间你会看到namespace
处于 Terminating
状态。
3. 理解使用namespace的动机
单个集群应该能满足多个用户及用户组的需求(以下称为 “用户社区”)。
Kubernetes namespace
帮助不同的项目、团队或客户去共享 Kubernetes 集群。
namespace
通过以下方式实现这点:
- 为资源设置作用域.
- 为集群中的部分资源关联鉴权和策略的机制。
使用多个namespace
是可选的。
每个用户社区都希望能够与其他社区隔离开展工作。
每个用户社区都有自己的:
- 资源(pods、服务、 副本控制器等等)
- 策略(谁能或不能在他们的社区里执行操作)
- 约束(该社区允许多少配额,等等)
集群运营者可以为每个唯一用户社区创建namespace
。
namespace
为下列内容提供唯一的作用域:
- 命名资源(避免基本的命名冲突)
- 将管理权限委派给可信用户
- 限制社区资源消耗的能力
用例包括:
- 作为集群运营者, 我希望能在单个集群上支持多个用户社区。
- 作为集群运营者,我希望将集群分区的权限委派给这些社区中的受信任用户。
- 作为集群运营者,我希望能限定每个用户社区可使用的资源量,以限制对使用同一集群的其他用户社区的影响。
- 作为群集用户,我希望与我的用户社区相关的资源进行交互,而与其他用户社区在该集群上执行的操作无关。
4. 理解namespace和 DNS
当你创建服务时,Kubernetes 会创建相应的 DNS 条目。 此条目的格式为 <服务名称>.<namespace名称>.svc.cluster.local
。 这意味着如果容器使用 <服务名称>
,它将解析为namespace
本地的服务。 这对于在多个namespace
(如开发、暂存和生产)中使用相同的配置非常有用。 如果要跨namespace
访问,则需要使用完全限定的域名(FQDN)。
__EOF__

本文链接:https://www.cnblogs.com/ludangxin/p/15680661.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏