Label是kubernetes系统中的一个重要概念。它的作用就是在资源上添加标识,用来对它们进行区分和选择。

Label的特点:

  • 一个Label会以key/value键值对的形式附加到各种对象上,如Node、Pod、Service等等

  • 一个资源对象可以定义任意数量的Label ,同一个Label也可以被添加到任意数量的资源对象上去

  • Label通常在资源对象定义时确定,当然也可以在对象创建后动态添加或者删除

可以通过Label实现资源的多维度分组,以便灵活、方便地进行资源分配、调度、配置、部署等管理工作。

一些常用的Label 示例如下:

  • 版本标签:"version":"release", "version":"stable"......

  • 环境标签:"environment":"dev","environment":"test","environment":"pro"

  • 架构标签:"tier":"frontend","tier":"backend"

标签定义完毕之后,还要考虑到标签的选择,这就要使用到Label Selector,即:

Label用于给某个资源对象定义标识

Label Selector用于查询和筛选拥有某些标签的资源对象

当前有两种Label Selector:

  • 基于等式的Label Selector

    name = slave: 选择所有包含Label中key="name"且value="slave"的对象

    env != production: 选择所有包括Label中的key="env"且value不等于"production"的对象

  • 基于集合的Label Selector

    name in (master, slave): 选择所有包含Label中的key="name"且value="master"或"slave"的对象

    name not in (frontend): 选择所有包含Label中的key="name"且value不等于"frontend"的对象

标签的选择条件可以使用多个,此时将多个Label Selector进行组合,使用逗号","进行分隔即可。例如:

name=slave,env!=production

name not in (frontend),env!=production

命令方式

# 为pod资源打标签
[root@master ~]# kubectl label pod nginx-pod version=1.0 -n dev
pod/nginx-pod labeled
​
# 为pod资源更新标签
[root@master ~]# kubectl label pod nginx-pod version=2.0 -n dev --overwrite
pod/nginx-pod labeled
​
# 查看标签
[root@master ~]# kubectl get pod nginx-pod  -n dev --show-labels
NAME        READY   STATUS    RESTARTS   AGE   LABELS
nginx-pod   1/1     Running   0          10m   version=2.0
​
# 筛选标签
[root@master ~]# kubectl get pod -n dev -l version=2.0  --show-labels
NAME        READY   STATUS    RESTARTS   AGE   LABELS
nginx-pod   1/1     Running   0          17m   version=2.0
[root@master ~]# kubectl get pod -n dev -l version!=2.0 --show-labels
No resources found in dev namespace.
​
#删除标签
[root@master ~]# kubectl label pod nginx-pod version- -n dev
pod/nginx-pod labeled

配置方式

apiVersion: v1
kind: Pod
metadata:name: nginxnamespace: devlabels:version: "3.0" env: "test"
spec:containers:- image: nginx:latestname: podports:- name: nginx-portcontainerPort: 80protocol: TCP

然后就可以执行对应的更新命令了:kubectl apply -f pod-nginx.yaml

Kubernetes-Label相关推荐

  1. Jenkins 使用 Kubernetes Plugin 完成持续构建与发布

    介绍 基于Kubernetes和Jenkins来实现CI/CD. 所有需要跑任务的jenkins slave(pod)通过模版动态创建,当任务执行结束自动删除. 系统整体架构 job流程 环境 kub ...

  2. Kubernetes更优雅的监控工具Prometheus Operator

    Kubernetes更优雅的监控工具Prometheus Operator [TOC] 1. Kubernetes Operator 介绍 在 Kubernetes 的支持下,管理和伸缩 Web 应用 ...

  3. 基于Kubernetes/K8S构建Jenkins持续集成平台(一)

    目录 Kubernetes实现Master-Slave分布式构建方案 传统Jenkins的Master-Slave方案的缺陷 Kubernates+Docker+Jenkins持续集成架构图 Kube ...

  4. 从Jenkins迁移到Jenkins X:一场持续交付之旅\n

    这篇文章将介绍dailymotion(一家总部位于巴黎的视频分享网站)从Jenkins迁移到Jenkins X的故事,包括我们遇到的问题以及我们如何解决它们. 背景 在dailymotion,我们信奉 ...

  5. AWS — AWS 上的 5G 网络

    目录 文章目录 目录 AWS 上的 E2E 5G 网络 AWS 上的 5G Core Network Service Based Architecture CP 的高可用部署 UP 的多网络平面 St ...

  6. k8s中通过Jenkins蓝绿/灰度发布微服务

    1.滚动发布 常用发布方式有蓝绿发布.灰度发布.滚动发布,由于k8s中deployment的特性,默认情况下是滚动发布,其实只要更新deployment中的镜像标签,即是滚动发布,通过spec.str ...

  7. Tekton系列之实践篇-由Jenkins改成Tekton

    微信公众号:运维开发故事,作者:乔克 在<Tekton系列之实践篇-我的第一条Pipeline>中我们已经实现了第一条流水线,但是这条流水线还是比较简单,完成了基础的功能.这篇文章带你怎么 ...

  8. 《k3s 源码解析4 ---- k3s重要数据结构》

    k3s完全兼容k8s,我解释一下是为什么: 因为k3s的底层数据结构(写入etcd/mysql/sqlite/dsqlite数据库的格式),是完全照搬k8s的数据结构.api完全兼容. 对外表现相同, ...

  9. KubeSphere DevOps流水线部署

    文章目录 一. 安装 1.1 下载yaml 1.2 设置默认StorageClass 1.3 安装 1.4 配置 1.5 查看 1.6 页面 二. 流水线部署 2.1 开启流水线设置 2.1.1 未安 ...

  10. k8s+jenkins发布java服务

    Centos7安装k8s容器集群请查阅: 一.准备的基础环境 1.gitlab环境(已有),如无则搭建,这里使用docker部署 $ mkdir /home/docker/gitlab -p $ do ...

最新文章

  1. CentOS7_装机软件推荐
  2. codevs 4560 NOIP2015 D2T2 子串
  3. C++ 术语(C++ Primer)
  4. 微软发布 SQL Server 2019 新版本
  5. HTTP Status 500 - 问题
  6. 一些SharePoint 2007开发的在线课程
  7. 如何用python批量下载数据_Python实现批量下载文件
  8. POJ 3037 SPFA
  9. http://ilinuxkernel.com/?p=1328
  10. VS2019详细安装教程
  11. 直博人数远大于硕士人数,清华计算机系到底有多强?
  12. 面试反问环节“你有什么问题想问的”踩雷一记
  13. 走进龙芯3A3000(三)在Gentoo N64上安装xorg-server
  14. XML与java对象互转文档
  15. PDF怎么合并?分享几种非常简单的合并方法
  16. Excel一键求得单元格内数值个数的操作!
  17. csdn里的KaTex 公式语法
  18. 实现自动WiFi连接
  19. EasyExcel · 写excel
  20. Fiddler抓包6-打断点(bpu)

热门文章

  1. Model-View-Presenter模式之 Step by Step
  2. Spark数据倾斜的完美解决
  3. chrome获取xpath元素-f12工具
  4. dapper使用时性能优化
  5. linux脚本实现scp命令自动输入密码和yes/no等确认信息
  6. lua IDE all
  7. 【echarts】echarts开发流程详解
  8. 在JSP页面中使用Ajax主题时的引入
  9. 【哈希和哈希表】Beads
  10. 采访 | Dou. 愿你背着相机出行,归来仍是少年。