【Kubernetes知识点问答题】Namespace(命名空间)

目录

[1. 什么是 K8s 的 namespace?](#1. 什么是 K8s 的 namespace?)

[2. 系统默认创建了哪几个 namespace?](#2. 系统默认创建了哪几个 namespace?)

总结


在 Kubernetes(K8s)中,随着集群规模的扩大和用户数量的增加,如何高效、灵活地管理资源成为一个重要的课题。为了在同一个集群中实现资源的隔离和组织,Kubernetes 引入了 Namespace(命名空间) 这一概念。

1. 什么是 K8s namespace

Kubernetes 中的 Namespace 是一种资源隔离机制,它将同一个集群中的资源划分为不同的组,允许多个用户或项目在同一个 Kubernetes 集群中并行运行,而不会相互干扰。每个 Namespace 都是独立的,其资源管理、配额、网络策略等都是相互隔离的。通过 Namespace,可以提高集群资源的使用效率,避免资源冲突,保证系统的安全性和稳定性。

Namespace 的作用仅限于那些带有命名空间的对象。例如:

  • Deployment:可以在不同的 Namespace 中创建同名的 Deployment。

  • Service:每个命名空间内的服务是相互隔离的。

但是,命名空间不适用于集群范围的资源。例如:

  • StorageClass:这是一个集群级别的对象,在不同命名空间中是共享的。

  • Node:节点是整个集群的资源,和命名空间无关。

  • PersistentVolume (PV):也不属于任何命名空间,而是集群级别的资源。

2. 系统默认创建了哪几个 namespace

default:用户创建资源对象时的默认命名空间。大多数情况下,用户的资源都会放在这个命名空间下。

kube-node-lease:包含用于与各个节点关联的 lease(租约)对象,lease 保证 kubelet 可 以向 api-server 发送心跳,以确保控制面能够检测到节点的健康状况。以便控制面能够检测到节点故障。

kube-public:所有的客户端(包括未经身份验证的客户端)都可以读取该命名空间。通常,系统级的公共资源(如集群的公共配置或文档)会放在这个命名空间中。

kube-system:该命名空间用于 Kubernetes 系统创建的对象。这里的资源通常由 K8s 自己管理,比如控制面组件(如 kube-apiserver, kube-scheduler)和一些集群管理工具(如 DNS、网络插件等)。这些资源是集群正常运行所必需的。

总结

Kubernetes 的 Namespace 是一种强大的机制,可以帮助我们在集群中进行资源的隔离和管理。通过合理的命名空间设计,开发团队可以在同一个集群内创建多个独立的工作环境,防止资源冲突,并提高集群的可管理性。

相关推荐
安易算力2 小时前
PUE优化工程实践:从1.5到1.2的制冷架构与气流组织改造路径
网络·python·容器·架构·kubernetes
天天喝旺仔7 小时前
分布式服务容错实战:用 Sentinel 实现限流、熔断与降级
分布式·微服务·云原生·sentinel
逐流人10 小时前
Containerd容器管理实战:从架构原理到nerdctlcrictl工具链
linux·运维·云原生·容器·云计算·containerd
kuroomi21 小时前
Ingress-Nginx与kubernetes 网络
linux·运维·网络·kubernetes
运维开发王义杰1 天前
跨项目直连数据库:是架构反模式,还是现实的工程妥协?
云原生
程序猿阿越1 天前
containerd如何创建Pod
后端·kubernetes·源码阅读
安易算力1 天前
昇腾生态开发深度实践:CANN算子库架构解析与MindSpore模型优化
网络·容器·架构·kubernetes·vllm
宋均浩1 天前
告警规则 243 砍到 27:Prometheus 降噪实战,日均打扰 47 次 → 3 次
云原生·监控·devops
运维老郭1 天前
别再让 Liveness Probe 背锅了:initialDelaySeconds 和 failureThreshold 的坑,一次讲透
云原生
容器魔方1 天前
基于 KubeEdge 为云边协同 AI 流数据分析提供基础设施
大数据·云原生·容器·开源·边缘计算