当前位置: 首页 > news >正文

Kubernetes Label 和 Selector新手入门学习

介绍

本实验主要探索 Kubernetes 中的 Label(标签)和 Selector(选择器)机制,这是 Kubernetes 中用于资源分类和组织的重要功能。通过本实验,我们能够:

  1. 理解 Label 和 Selector 的基本概念及其在 Kubernetes 集群管理中的作用

  2. 掌握节点标签的添加、查看、修改和删除操作

  3. 学习如何使用节点选择器(nodeSelector)将 Pod 调度到特定节点

  4. 熟悉标签选择器的各种匹配条件和查询方式

  5. 了解 Kubernetes 污点(Taint)机制及其与调度的关系

实验内容包括为节点添加自定义标签、使用选择器筛选节点、通过节点选择器控制 Pod 部署位置、修改和删除标签等操作,涵盖了 Label 和 Selector 的日常管理场景。

1.自定义Label

# 为某个节点添加标签 Label并查看
kubectl label nodes node1 subnet=ip7
kubectl get node -l subnet=ip7

在 deployment 或其他控制器中指定将 Pod 部署到该节点

vim nginx-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:nodeSelector:subnet: ip7    # 选择带有 subnet=ip7 标签的节点containers:- name: nginximage: nginx:1.20.0ports:- containerPort: 80

kubectl create -f nginx-deploy.yaml# pod已添加到node01节点上
kubectl get po -o wide

2.污点信息

# 查看master的污点信息,该master为禁调度节点
kubectl describe nodes master | grep Taints# 可通过该命令去除master节点的禁调度污点,但正常情况下不允许这么做,因为master节点是管理node 节点的,不需要进行负载
kubectl taint node master node-role.kubernetes.io/control-plane-

3.为各节点设置Label

# 为master节点设置master角色标签
kubectl label node master role=master# 为node节点设置node角色标签
kubectl label nodes node1 node2 role=node

4.Selector

# 查看所有节点的标签
kubectl get nodes --show-labels# 匹配标签,匹配规则:role这个key的value在master和node之间
kubectl get nodes -l 'role in (master, node)'# 选择匹配role为master或node且不包括subnet=ip7的node
kubectl get nodes -l subnet!=ip7,'role in (master, node)'# 匹配标签的key为subnet的node
kubectl get nodes -l subnet

5.修改标签

# 覆盖现有标签
kubectl label nodes node1 subnet=ip10 --overwrite# 验证修改结果
kubectl describe node node1 | grep Labels -A5

6.删除标签

# 删除单个标签并查看
kubectl label nodes node1 subnet-
kubectl get nodes node1 --show-labels# 批量删除标签# 先为多个节点设定标签
kubectl label nodes master node1 node2 type=haha
# 通过选择器删除所有节点的 type 标签
kubectl label nodes -l type type-
# 循环删除特定节点标签(适用于规律命名的节点)
for i in 1 2;do kubectl label nodes node$i type-;done

实验结论

  1. 标签管理有效性验证:实验成功验证了 Kubernetes 标签管理的基本操作流程,包括标签的添加、修改、查询和删除。标签系统为 Kubernetes 资源提供了灵活的分类和组织方式。

  2. 节点选择器功能验证:通过 nodeSelector 成功将 Nginx Pod 定向调度到具有特定标签(subnet=ip7)的节点上,证明了节点选择器在 Pod 调度控制中的有效性。

  3. 标签选择器灵活性:实验展示了标签选择器的强大匹配能力,包括精确匹配(=)、排除匹配(!=)、集合匹配(in)等多种查询方式,能够满足不同场景下的资源筛选需求。

  4. 批量操作可行性:通过命令行循环和选择器批量操作,验证了 Kubernetes 标签管理的可扩展性,能够高效处理大规模集群中的标签管理需求。

  5. 污点机制理解:通过查看和修改 master 节点的污点设置,加深了对 Kubernetes 调度保护机制的理解,认识到生产环境中 master 节点通常应保持不可调度状态的重要性。

  6. 标签命名规范性:实验中发现合理的标签命名规范(如 role=master/node)对于集群管理至关重要,能够提高资源管理的清晰度和效率。

本实验为 Kubernetes 集群的资源组织和调度控制提供了实践基础,这些技能在实际运维工作中对于实现精细化调度、多环境隔离等场景具有重要意义。

相关文章:

  • 【Axure高保真原型】动态地图路线
  • 考研408-计算机组成原理冲刺考点(4-5章)
  • SpringSecurity+JWT
  • C语言 | C语言入门基础之指针详解,编程技巧、规则、注意事项、易出问题、问题如何解决
  • Windows 桌面个性高效组件工具
  • Java—— 四道算法经典题
  • AI与软件测试的未来:如何利用智能自动化改变测试流程
  • 设计模式(工厂模式)
  • VUE篇之树形特殊篇
  • 探寻软件稳定性的奥秘
  • 【最新 MCP 战神手册 09】利用资源和提示增强上下文
  • 【记录】Python调用大模型(以Deepseek和Qwen为例)
  • 使用 np.zeros_like(label) 保存预测概率时发现数据类型不匹配导致的隐式类型转换
  • 局域网视频会议软件BeeWorks Meet
  • 软考高项(信息系统项目管理师)第 4 版全章节核心考点解析(力扬老师课程精华版)
  • MES系列-ISO95 IEC/ISO 62264
  • 推荐系统中 Label 回收机制之【时间窗口设计】
  • Agent开源工具:mcp快速接入,mcp-use上手指南
  • 极客天成参与”AI助力智慧城市构建”主题演讲暨招商引智专题推介活动
  • 哈希表笔记(一 )
  • 这就是上海!
  • 美国参议院投票通过戴维·珀杜出任美国驻华大使
  • 东风着陆场近日气象条件满足神舟十九号安全返回要求
  • 东风着陆场做好各项搜救准备,迎接神舟十九号航天员天外归来
  • 日本希望再次租借大熊猫,外交部:双方就相关合作保持密切沟通
  • 古籍新书·2025年春季|中国土司制度史料集成