十八、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: null
  labels:
    app: nginx
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  strategy: {
   }
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nginx
    spec:
      nodeSelector:                                  # 增加标签选择,新加的标签
        subnet: "7"
      containers:
      - image: registry.cn-beijing.aliyuncs.com/dotbalo/nginx:1.15.12-alpine
        name: nginx
        resources: {
   }
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cyan_Jiang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值