使用命名空间与标签进行组织
使用命名空间实现隔离,并使用标签和选择器对集群资源进行分组和查询
使用命名空间与标签进行组织 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
为什么要组织?
真实的集群会运行来自多个团队的许多应用。命名空间和标签是 Kubernetes 内置的工具,用于让所有这些对象保持整齐且可查询。
什么是命名空间?
命名空间是集群内部的虚拟集群。在一个命名空间内,资源名称必须唯一;但同一个名称可以在不同命名空间中重复。
默认命名空间
每个集群都会自带几个命名空间:default(除非另有指定,否则您的对象会放置于此)、kube-system(集群组件)以及 kube-public。
kubectl get namespaces创建命名空间
创建一个新的命名空间,以便分隔例如某个团队或某个环境。
kubectl create namespace team-a在命名空间中操作
使用 -n 为每条命令指定命名空间,或者为您的上下文设置默认命名空间,这样就不用反复输入该标志。
kubectl get pods -n team-a命名空间并不提供完全隔离
命名空间限定名称的作用域,并支持配额和 RBAC,但仅靠命名空间本身无法隔离网络流量——您需要添加网络策略来实现这一点。
什么是标签?
标签是附加到对象上的键值对。它们承载面向用户的含义——例如 app: web 或 env: prod——并支持分组。
metadata:
labels:
app: web
env: prod使用 kubectl 添加标签
即时为现有对象附加标签。
kubectl label pod nginx tier=frontend按标签选择
使用 -l 按标签查询对象。这样您就能一次对整个组执行操作。
kubectl get pods -l app=web,env=prod选择器将各部分连接起来
标签并不只是给人看的:服务和部署使用标签选择器来查找它们管理的容器组。这种松散耦合是 Kubernetes 的核心。
selector:
matchLabels:
app: web注解与标签的区别
注解同样存储键值数据,但用于非标识性元数据(构建信息、工具提示),并且不会被选择器使用。
快速检查
标签和命名空间有什么区别?
回顾
现在您可以让集群保持井然有序:
- 命名空间限定名称的作用域并支持配额/RBAC;使用
-n指定命名空间 - 标签是键值标记;使用
-l查询 - 选择器将服务和部署连接到容器组
- 注解保存非标识性元数据
这些基本机制可以从一个应用扩展到繁忙的多团队集群。
常见问题解答
「使用命名空间与标签进行组织」课时是免费的吗?
是的 — 「使用命名空间与标签进行组织」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「使用命名空间与标签进行组织」这节课中我会学到什么?
使用命名空间实现隔离,并使用标签和选择器对集群资源进行分组和查询 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「使用命名空间与标签进行组织」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Kubernetes 架构
- Pod:最小单元
- kubectl 命令基础
- 使用命名空间与标签进行组织