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

十八、Label 和 Selector

Label 是键值对,用来标识 Kubernetes 资源(如 Pod、Node、Service 等)的属性。它们并不直接影响资源的行为,但可以帮助用户快速组织、查询和操作这些资源。标签可以用于选择、过滤和分组。

Label: 标签对 k8s 中各种资源进行分类、分组,如Pod节点进行分组。通过添加kev=value格式的标签,用于区分同样的资源不同的分组。
Selector: 通过一个过滤的语法进行查找到对应标签的资源。标签选择器可以通过根据资源的标签查询出精确的对象信息。


Selector主要从资源角度。比如有50个pod,怎么去确定deployment管理的是哪些pod呢,就用Seletcor可以管理哪些资源的pod。
Label主要是pod或者node角度。基本上多有的东西都能打上标签。

… Service 通过 selector 匹配后端的 Pods,只有符合标签条件的 Pods 才会被加入到 Service 的负载均衡范围内。 …

在这里插入图片描述
在这里插入图片描述

不同资源的标签不要写成一样的

一般不修改pod的标签,一般都是更改node标签,给node打上标签,创建deployment可以指定标签。


一、 定义Label

应用案例:

有一条专属的高速光纤通道,此通道只能与 10.1.7.0 网段进行通信,因此只能将与这个网段通信应用部署到 10.1.7.0 网段所在的节点上。

此时可以对节点添加 Label:

[root@k8s-master01 ~]# kubectl label  node k8s-node01 k8s-node02 subnet=7
node/k8s-node01 labeled
node/k8s-node02 labeled

然后可以通过 Selector 对其筛选

[root@k8s-master01 ~]#kubectl get no -l subnet=7
NAME         STATUS   ROLES    AGE   VERSION
k8s-node01   Ready    <none>   70d   v1.28.0
k8s-node02   Ready    <none>   70d   v1.28.0

最后在 Deployment 或其他控制器中指定将 Pod 部署到该节点:

apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:app: nginxname: nginx
spec:replicas: 3selector:matchLabels:app: nginxstrategy: {}template:metadata:creationTimestamp: nulllabels:app: nginxspec:nodeSelector:                                  # 增加标签选择,新加的标签subnet: "7"containers:- image: registry.cn-beijing.aliyuncs.com/dotbalo/nginx:1.15.12-alpinename: nginxresources: {}
status: {}

生成pod,可以查看新生成的Pod在node1和node2的两个节点上。固定在某写节点上。

[root@k8s-master01 practice]#kubectl create -f nginx-deploy.yaml
deployment.apps/nginx created
[root@k8s-master01 practice]#kubectl get po
NAME                    READY   STATUS    RESTARTS   AGE
nginx-df69b94b7-55m7g   1/1     Running   0          5s
nginx-df69b94b7-kmvp7   1/1     Running   0          5s
nginx-df69b94b7-vv5hs   1/1     Running   0          5s
[root@k8s-master01 practice]#kubectl get po -owide
NAME                    READY   STATUS    RESTARTS   AGE   IP              NODE         NOMINATED NODE   READINESS GATES
nginx-df69b94b7-55m7g   1/1     Running   0          13s   172.16.58.206   k8s-node02   <none>           <none>
ngi
http://www.lryc.cn/news/503481.html

相关文章:

  • 实现按键按下(低电平)检测到下降沿
  • 解析 SSM 垃圾分类系统,助力生态平衡
  • 软件工程 设计的复杂性
  • Nginx 限制只能白名单 uri 请求的配置
  • QT c++ 同时使用sqlite 和mysql数据库的问题
  • redis集群 服务器更换ip,怎么办,怎么更换redis集群的ip
  • 【C++习题】19.数组中第K个大的元素
  • JIS-CTF: VulnUpload靶场渗透
  • BGP-面试
  • Git-安装与常用命令
  • 回归预测 | Matlab实现基于BiLSTM-Adaboost双向长短期记忆神经网络结合Adaboost集成学习回归预测
  • 微信小程序跳转其他小程序以及跳转网站
  • Not using native diff for overlay2, this may cause degraded performance……
  • 【自用】管材流转项目 数据库恢复之 PIPE 表 二维码相关 各个表恢复 SQL
  • 【渗透测试】信息收集二
  • 测试工程师八股文04|计算机网络 和 其他
  • 定时/延时任务-Kafka时间轮源码分析
  • 如何用状态图进行设计05
  • 【计算机视觉】边缘检测
  • 林曦词典|无聊
  • LabVIEW光栅衍射虚拟仿真系统
  • 【NumPy进阶】:内存视图、性能优化与高级线性代数
  • 从YOLOv5到训练实战:易用性和扩展性的加强
  • Prim 算法在不同权重范围内的性能分析及其实现
  • canal安装使用
  • python爬虫常用数据保存模板(Excel、CSV、mysql)——scrapy中常用数据提取方法(CSS、XPATH、正则)(23)
  • You need to call SQLitePCL.raw.SetProvider()
  • IoTDB AINode 报错,call inference 301: Error ocurred while executing inference
  • LLM之RAG实战(五十)| FastAPI:构建基于LLM的WEB接口界面
  • 项目-移动端适配的几种方案