我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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的资源

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

通过上图可以看到: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    <none>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    <none>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的标签是这样:

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

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

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

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

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

HTML label标签的for属性有什么用

HTML label标签的for属性用于指定与之关联的表单元素。当一个label元素的for属性的值与一个表单元素的id属性的值相同时,点击label元素时,表单元素将获得焦点或被选中。这样可以提高用户体验,使用户可以更方便地通过点击lab
2023-10-11

HTML标签的target属性有什么作用

HTML标签的target属性用于指定链接的目标窗口或框架。它有以下几个常用的值:- _blank:在新窗口或标签页中打开链接。- _self:在当前窗口中打开链接(默认值)。- _parent:在父级框架中打开链接。- _top:在顶级框
2023-09-13

HTML label标签的作用是什么

HTML 标签用于定义表单控件的标签。它可以设置表单控件的关联文本,使用户点击文本时,对应的表单控件获得焦点或执行特定操作。标签的作用包括:改进表单的可用性:用户可以通过点击标签来选择表单控件,提高易用性和可访问性。提供额外的说明或提示
2023-10-23

HTML标签的radiogroup属性有什么用

HTML的radiogroup属性是用来将一组相关的单选按钮(radio button)进行分组的。这个属性是放在input标签中的,用来指示一组单选按钮的名称。这样做的好处是可以让浏览器识别出这些单选按钮是一组,从而可以应用一些组合效果。
2023-10-11

HTML标签的nowrap属性有什么用

HTML标签的nowrap属性用于指定文本是否应该在同一行上显示,而不进行换行。当nowrap属性设置为nowrap时,文本内容将水平地显示在同一行上,直到到达行的末尾。如果文本内容超出行的宽度,则会被截断。这个属性常用于表格单元格或者其他
2023-09-13

HTML标签的cellpadding属性有什么用

cellpadding属性用于定义表格单元格内容与单元格边框之间的空白区域大小。它控制单元格内容与单元格边框之间的间距,使表格更加美观易读。通过设置cellpadding属性,可以调整单元格内容与单元格边框之间的空白区域大小,使表格内容更加
2023-09-05

HTML5 a标签的href属性有什么用

HTML5中的标签用于创建一个超链接,它的href属性用于指定链接的目标。href属性可以包含以下几种不同的值:1. 网址(URL):可以直接将一个网址作为href的值,点击链接后会打开该网址。2. 本地文件路径:可以指定一个本地文件的路径
2023-10-12

HTML a标签的href属性有什么用

HTML中的a标签是用来创建一个超链接(hyperlink)的。超链接可以指向另一个网页、同一网页中的某个位置、文件、电子邮件地址等。a标签的href属性用来指定超链接的目标地址。可以是一个URL(统一资源定位符),也可以是一个相对路径或锚
2023-10-10

HTML table标签的border属性有什么用

HTML中的table标签是用来创建表格的元素,而border属性是用于指定表格的边框样式的属性。border属性有以下几种用法:1. 指定边框的宽度:可以使用像素值(如border="1px")或者其他长度单位(如border="1em"
2023-10-11

HTML iframe标签的scrolling属性有什么用

HTML iframe 标签的 scrolling 属性用于控制 iframe 元素中的内容是否可以滚动。scrolling 属性有两个可选值:1. scrolling="yes":表示内容可以滚动。如果 iframe 中的内容超出了 if
2023-09-05

HTML textarea标签的autofocus属性有什么用

HTML textarea标签的autofocus属性用于指定页面加载时该文本区域是否自动获得焦点。当autofocus属性被设置为autofocus时,页面加载后文本区域将自动获得焦点,用户可以直接在该文本区域中输入内容,而无需单击或选择
2023-10-12

HTML select标签的multiple属性有什么用

HTML select标签的multiple属性用于指定是否允许选择多个选项。当设置为multiple时,用户可以通过按住Ctrl键或Shift键来选择多个选项。如果不设置该属性,默认情况下只能选择一个选项。使用multiple属性可以方便
2023-09-05

HTML textarea标签的readonly属性有什么用

HTML textarea标签的readonly属性用于指定该文本区域是否为只读状态。当设置为只读状态时,用户无法编辑或修改文本内容,只能查看文本。这在某些情况下很有用,例如在表单中展示只读文本内容或为用户提供一个不可编辑的文本区域用于展示
2023-10-12

HTML中input标签的readonly属性有什么用

input标签的readonly属性用于指定输入框只读,即用户可以看到输入框中的内容,但不能进行任何编辑操作。这个属性的一个常见用途是在表单中展示默认值,防止用户更改这个值。例如,可以使用readonly属性在表单中展示已保存的用户信息,而
2023-09-07

HTML滚动标签marquee的属性有什么用

HTML滚动标签marquee的属性可以用于控制滚动文本或图像的行为和样式。以下是marquee标签常用的属性:1. direction:设置滚动的方向,可取值为"up"、"down"、"left"、"right",分别表示向上、向下、向左
2023-10-18

CSS标签模式display属性有什么用

这篇文章主要介绍了CSS标签模式display属性有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下所示:
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录