智能
助手
最大化  清空记录 停止  历史记录
翻译选中文本
选中一段文本后进行翻译
名词解释
选中一段文本后进行名词解释
知识图谱生成
通过图谱展示知识信息
登录用户在知识浏览页面可用
答案生成
AI自动回答一个问答功能中的问题
登录用户在问答浏览页面,且问题开放回答中可用
知识摘要
自动为当前知识生成摘要
知识浏览页面可用
知识问答
针对当前知识进行智能问答
知识浏览面可用
   36  
查询码: 00000228
6.8.3 ns (Namespace) 名称空间管理案例
作者: 文艺范儿 于 2026年01月08日 发布在分类 / Docker & K8S / K8S基础 ,于 2026年01月08日 编辑
K8S

6.8.3 ns (Namespace) 名称空间管理案例

简介

Namespace 是 Kubernetes 的逻辑隔离机制,用于将集群资源划分到不同的虚拟分区。

  • 同一 Namespace 内的资源名称必须唯一,但不同 Namespace 可使用相同名称。
  • 它不是硬隔离(网络、资源仍需额外策略),但提供组织、权限、配额上的边界。
  • 默认情况下,Kubernetes 集群至少有一个 defaultNamespace,另外还有 kube-systemkube-public内置 Namespace

Namespace 的核心作用

作用 说明 场景

资源隔离

按环境、业务线、团队划分资源,避免命名冲突

dev/test/prod 环境隔离

权限控制

结合 RBAC,限制用户/ServiceAccount 只能访问特定 Namespace

开发人员仅能操作 dev 命名空间

资源配额

通过 ResourceQuota 限制 Namespace 的总资源用量(CPU/内存/PVC)

防止某团队耗尽集群资源

网络隔离

配合 NetworkPolicy 实现 Namespace 级网络策略

限制 frontend 命名空间不能直连 database 命名空间

生命周期管理

可按项目/活动创建临时 Namespace,结束后整体删除

大数据计算任务、CI/CD 流水线临时环境

Kubernetes 内置 Namespace

名称 用途 是否可删除

default

未指定 Namespace 的资源默认归属

❌ 不可删除

kube-system

Kubernetes 系统组件(如 kube-apiserver、kube-proxy、CoreDNS)

❌ 不可删除

kube-public

集群公共可读资源(如 cluster-info)

❌ 不可删除

kube-node-lease

节点心跳 lease 对象(高可用选举)

❌ 不可删除

生产环境建议不要在这些内置 Namespace 中部署业务 Pod

案例1:创建与切换 Namespace

  1. 创建 Namespace
# 方法1:命令式
kubectl create namespace dev

# 方法2:声明式 YAML
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Namespace
metadata:
  name: test
  labels:
    env: test
EOF
  1. 查看 Namespace
kubectl get namespaces
  1. 切换默认操作的 Namespace(Context 级)
# 临时指定(单次命令生效)
kubectl get pods -n dev

# 永久修改 Context(kubectl 默认 namespace)
kubectl config set-context --current --namespace=dev
# 验证
kubectl config view --minify | grep namespace:

案例2:在特定 Namespace 部署应用

# 创建 Deployment 到 dev 命名空间
kubectl create deployment nginx-dev --image=nginx:1.21 -n dev

# 暴露 Service 到 dev 命名空间
kubectl expose deployment nginx-dev --port=80 --target-port=80 -n dev

# 验证
kubectl get all -n dev

同一集群中可以在不同 Namespace 创建同名资源,例如 devtest各有一个 nginx-devDeployment,互不冲突。

案例3:删除 Namespace 及资源清理

# 删除整个 Namespace(会级联删除其中的所有资源)
kubectl delete namespace test

⚠️ 谨慎操作:一旦删除 Namespace,其中的 Deployment、Service、PVC、PV(若 reclaimPolicy=Delete)都会被清除。

笔记
0人参与


 历史版本

备注 修改日期 修改人
创建版本 2026-01-08 01:31:17[当前版本] 文艺范儿

  目录
    文艺知识分享平台 -V 5.2.5 -wcp