千家信息网

Kubernetes特别属性的标签Label有什么作用

发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,今天小编给大家分享一下Kubernetes特别属性的标签Label有什么作用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章
千家信息网最后更新 2025年11月10日Kubernetes特别属性的标签Label有什么作用

今天小编给大家分享一下Kubernetes特别属性的标签Label有什么作用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

前言

Label:对k8s中各种资源进行分类、分组,添加一个具有特别属性的标签

Selector:通过一个过滤的语法进行查找到对应标签的资源

Label是k8s中一个比较重要的概念。一个Label的一个key=value的键值对,可以附加到各种资源上。

现总结后讲解

Label的匹配规则:

  • name=nginx:这类是直接匹配

  • name!=nginx:匹配标签中没有name=nginx的资源

  • name in (A,B):匹配所有具有name=A和name=B标签的资源

  • name not in (A):匹配所有不具有标签A的资源

通过上图可以看到:frontend通过service服务匹配到backend服务器,当service的标签是app=nginx时那么会匹配到backend的两组服务器,但是当service中筛选加上Role=backend-app时,Selector只会筛选到backend服务器组中包含这两种标签的服务器然后进行匹配。

通过下面这条命令可以看到Pod的标签:通过–show-labels参数
最后一列LABELS是Pod的标签

[root@k8s-master01 ~]# kubectl get pod --show-labels NAME                        READY   STATUS    RESTARTS       AGE   LABELSbusybox                     1/1     Running   28 (16h ago)   9d    hpa-nginx-bd88bdd8f-h8vx7   1/1     Running   0              18h   app=hpa-nginx,pod-template-hash=bd88bdd8f

那么我们就可以尝试着用kubectl给Pod添加标签:从上列代码中我们是可以看到busybox是没有标签,通过下面这条命令在查看发现已经有标签app=busybox了。

[root@k8s-master01 ~]# kubectl label pod busybox app=busyboxpod/busybox labeled[root@k8s-master01 ~]# kubectl get pod --show-labels NAME                        READY   STATUS    RESTARTS       AGE   LABELSbusybox                     1/1     Running   28 (16h ago)   9d    app=busyboxhpa-nginx-bd88bdd8f-h8vx7   1/1     Running   0              18h   app=hpa-nginx,pod-template-hash=bd88bdd8f

如果一个集群中Pod非常多的时候,我们就可以通过用标签筛选的方式找到想要的Pod;-A参数是查看所有的Pod,但是加上-l app=busybox后只会找到符合这个条件的Pod。

[root@k8s-master01 ~]# kubectl get pod -A -l app=busyboxNAMESPACE   NAME      READY   STATUS    RESTARTS       AGEdefault     busybox   1/1     Running   28 (16h ago)   9d

那么问题来了,要是我们不想要这个标签了或者说需要修改这个标签了怎么办?

删除标签:

[root@k8s-master01 ~]# kubectl label pod busybox app-pod/busybox unlabeled[root@k8s-master01 ~]# kubectl get pod --show-labels NAME                        READY   STATUS    RESTARTS       AGE   LABELSbusybox                     1/1     Running   28 (16h ago)   9d    hpa-nginx-bd88bdd8f-h8vx7   1/1     Running   0              18h   app=hpa-nginx,pod-template-hash=bd88bdd8f

修改标签:可以看出标签已经是修改后的了。

[root@k8s-master01 ~]# kubectl get pod --show-labels NAME                        READY   STATUS    RESTARTS       AGE   LABELSbusybox                     1/1     Running   28 (16h ago)   9d    app=busyboxhpa-nginx-bd88bdd8f-h8vx7   1/1     Running   0              18h   app=hpa-nginx,pod-template-hash=bd88bdd8f[root@k8s-master01 ~]# kubectl label pod busybox app=busybox22222 --overwrite pod/busybox labeled[root@k8s-master01 ~]# kubectl get pod --show-labels NAME                        READY   STATUS    RESTARTS       AGE   LABELSbusybox                     1/1     Running   28 (16h ago)   9d    app=busybox22222hpa-nginx-bd88bdd8f-h8vx7   1/1     Running   0              18h   app=hpa-nginx,pod-template-hash=bd88bdd8f

Labels是很简单的一个东西,接下来我们看看Selector是怎么用的

我想过滤出多个条件的pod又该怎么做呢?

[root@k8s-master01 ~]# kubectl get pod -A --show-labels NAMESPACE              NAME                                         READY   STATUS    RESTARTS         AGE   LABELSdefault                busybox                                      1/1     Running   29 (3m19s ago)   9d    app=busybox22222default                hpa-nginx-bd88bdd8f-h8vx7                    1/1     Running   0                18h   app=hpa-nginx,pod-template-hash=bd88bdd8fkube-system            calico-kube-controllers-5dffd5886b-4blh7     1/1     Running   2 (2d1h ago)     9d    k8s-app=calico-kube-controllers,pod-template-hash=5dffd5886bkube-system            calico-node-fvbdq                            1/1     Running   2 (2d1h ago)     9d    controller-revision-hash=79878cdc56,k8s-app=calico-node,pod-template-generation=1kube-system            calico-node-g8nqd                            1/1     Running   0                9d    controller-revision-hash=79878cdc56,k8s-app=calico-node,pod-template-generation=1kube-system            calico-node-mdps8                            1/1     Running   0                9d    controller-revision-hash=79878cdc56,k8s-app=calico-node,pod-template-generation=1kube-system            calico-node-nf4nt                            1/1     Running   1 (4d1h ago)     9d    controller-revision-hash=79878cdc56,k8s-app=calico-node,pod-template-generation=1kube-system            calico-node-sq2ml                            1/1     Running   1 (2d1h ago)     9d    controller-revision-hash=79878cdc56,k8s-app=calico-node,pod-template-generation=1kube-system            calico-typha-8445487f56-mg6p8                1/1     Running   0                9d    k8s-app=calico-typha,pod-template-hash=8445487f56kube-system            calico-typha-8445487f56-pxbpj                1/1     Running   1 (2d1h ago)     9d    k8s-app=calico-typha,pod-template-hash=8445487f56kube-system            calico-typha-8445487f56-tnssl                1/1     Running   0                9d    k8s-app=calico-typha,pod-template-hash=8445487f56kube-system            coredns-5db5696c7-67h79                      1/1     Running   1 (2d1h ago)     9d    k8s-app=kube-dns,pod-template-hash=5db5696c7kube-system            metrics-server-6bf7dcd649-5fhrw              1/1     Running   2 (4d1h ago)     9d    k8s-app=metrics-server,pod-template-hash=6bf7dcd649kubernetes-dashboard   dashboard-metrics-scraper-7fcdff5f4c-9kk86   1/1     Running   1 (2d1h ago)     9d    k8s-app=dashboard-metrics-scraper,pod-template-hash=7fcdff5f4ckubernetes-dashboard   kubernetes-dashboard-85f59f8ff7-js9j2        1/1     Running   12 (2d1h ago)    9d    k8s-app=kubernetes-dashboard,pod-template-hash=85f59f8ff7

以上就是我们的所有Pod了,我想要找到标签中包含kubernetes-dashboard和kube-dns的容器:

[root@k8s-master01 ~]# kubectl get pod -A -l 'k8s-app in (kubernetes-dashboard,kube-dns)'NAMESPACE              NAME                                    READY   STATUS    RESTARTS        AGEkube-system            coredns-5db5696c7-67h79                 1/1     Running   1 (2d1h ago)    9dkubernetes-dashboard   kubernetes-dashboard-85f59f8ff7-js9j2   1/1     Running   12 (2d1h ago)   9d

找到了这两个Pod,说明这两个Pod中包含这两个标签,可以在上面的所有容器列表里看看这两个Pod是否含有这两个标签。

还有一种情况是比如我有一批Pod的标签是这样:

我想查看其中不包含ABB=X的所有Pod,可以这样写:

kubectl get po -l ABB!=X,APC=A

这样的话只会找到Pod02和Pod03。

以上就是"Kubernetes特别属性的标签Label有什么作用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

标签 资源 两个 服务 服务器 知识 篇文章 属性 中包 作用 内容 参数 命令 容器 就是 条件 面的 不同 很大 重要 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库和程序版本不匹配怎么办 计算机网络技术能上什么大学 铁岭市网络安全工作落实情况 五金服务器管理系统 档案网络安全应急演练 湖北好的软件开发售后保障 润联软件开发 数据库一般是什么 美凯龙爱家科技互联网有限公司 江苏潮流软件开发价格服务标准 常德跑腿app软件开发费用 连云港多点控制led大屏服务器 大理高密度存储服务器多少钱 智能电表能把数据传给服务器吗 深受顾客欢迎的企业内网网络安全 网络安全儿童简易读本 移动网络技术岗工资 网络安全与管理笔记 服务器 美国法律保护 软件开发是什么样工作 ceic数据库 大连理工 官兵关于手机网络安全的危害 mysql的数据库技术 申报网络安全 网络安全现状及发展趋势 接触软件开发的职位 网络安全法发条 金融行业软件开发发展阶段 网络安全工程师考哪个大学 宜良综合软件开发价格信息
0