首页/云/云与容器速查/kubectl 命名空间操作
Kubernetes68 条

kubectl 命名空间操作

命名空间是资源与权限的隔离边界:创建、切换默认命名空间、查看配额。多团队共用集群时,命名空间规划比命令本身更值得先想清楚。

云与容器速查云更新于 2026-10-13

kubectl 命名空间操作是什么

命名空间既是资源的组织单位,也是权限与配额的隔离边界。命令本身很简单:创建、切换默认命名空间、查看配额与限制,但真正决定集群是否好管的是规划——多团队共用集群时,先按团队与环境的矩阵划分命名空间,再配合资源配额、默认限制、网络策略与 RBAC 做实际隔离。删除命名空间是级联删除,其中所有资源会被一并清理,几乎无法回退。

基本信息

创建与删除kubectl create ns dev;kubectl delete ns dev 会清空其中全部资源
切换默认kubectl config set-context --current --namespace=dev
查看方式kubectl get ns;kubectl get resourcequota -n dev
隔离手段配合 ResourceQuota、LimitRange、NetworkPolicy 与 RBAC
删除影响级联清理命名空间内资源,包括其中的持久卷声明

典型使用场景

  • 按团队与环境划分资源边界,避免所有人的资源堆在一个空间里
  • 给每个命名空间设置资源配额,防止单个团队耗尽集群容量
  • 用网络策略限制跨命名空间的访问,收窄服务之间的可达范围
  • 灰度或临时环境用完即删,保持集群整洁、减少资源浪费
  • 权限按命名空间授予,把误操作的影响范围限制在边界之内

使用示例

使用示例
kubectl create ns staging
kubectl config set-context --current --namespace=staging   # 切换默认命名空间
kubectl get ns --show-labels
kubectl get resourcequota,limitrange -n staging
kubectl get all -n staging   # 删除前先盘点命名空间内的资源

隔离能力对照

能力依赖对象解决的问题
资源配额ResourceQuota防止单个命名空间耗尽集群资源
默认限制LimitRange未声明资源的 Pod 自动获得默认请求与上限
网络隔离NetworkPolicy限制跨命名空间的网络访问
权限隔离Role 与 RoleBinding团队只能操作自己的命名空间
删除命名空间是级联且难以恢复的:执行前先确认其中的持久卷声明、密钥与外部依赖,别把它当作清理环境的快捷方式。
命名空间删除后长期停留在 Terminating,通常是其中某个资源的 finalizer 在阻挡:需要逐个处理这些对象,反复执行删除命令不会有任何进展。

易错点

  • 命令默认落在默认命名空间,资源被创建到了别处,排查时全场都找不到
  • 只建命名空间不配配额与网络策略,隔离形同虚设,一个团队足以影响全集群
  • 删除命名空间时才发现里面有持久卷声明,数据一并被清理且无法恢复
  • 删除卡在 Terminating 不排查 finalizer,反复执行删除命令,白白浪费时间

数据来源与参考

  • Kubernetes Docs:Namespaces
  • Kubernetes Docs:Resource Quotas

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌