Label 含义

Label其实就一对 key/value ,被关联到对象上,比如Pod,标签的使用我们倾向于能够标示对象的特殊特点,Labels的值对系统本身并没有什么含义,只是对用户才有意义。同一个资源对象的labels属性的key必须唯一,label可以附加到各种资源对象上,如Node,Pod,Service,RC等。一个资源拥有多个标签,可以实现不同维度的管理。标签(Label)的组成: key=value。Label可以在创建对象时就附加到对象上,也可以在对象创建后通过API进行额外添加或修改

Label 命名规范

label 必须以字母或数字开头,可以使用字母、数字、连字符、点和下划线,最长63个字符

使用 Label 原因

  • 当相同类型的资源越来越多,对资源划分管理是很有必要,此时就可以使用Label为资源对象 命名,以便于配置,部署等管理工作,提升资源的管理效率。label 作用类似Java包能对不同文件分开管理,让整体更加有条理,有利于维护

  • 通过Label来对对象进行引用

Label 使用

  1. 命令创建

    label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
  2. kubectl get pods 命令默认不会列出任何标签,使用 --show-labels 选项来查看

    kubectl get pods --show-labels
  3. 指定标签查看

    kubectl get pods -L creation_method,env
  4. 查看匹配标签条件的node

    kubectl get nodes -l 标签key=标签values
    kubectl get nodes -l  app=tomcat
  5. 查看匹配 标签key的pod

    kubectl get pods -L  app
  6. 给名为 tomcat 的 Pod 添加 label app=tomcat

    kubectl label pods tomcat  app=tomcat
  7. 把名为 tomcat 的 Pod 修改 label 为 app=tomcat1,且覆盖现有的value

    kubectl label --overwrite pods tomcat app=tomcat1
  8. 把 namespace 中的所有 pod 添加 label

    kubectl label pods --all test=test
  9. 删除名为app的 label 。(使用-减号相连)

    kubectl label pods tomcat app-
  10. yaml 创建 label
    为 tomcat 的 Pod 添加了两个 Label,分别为 app: tomcatrelease: tomcat

    
    apiVersion: v1
    kind: Pod
    metadata:
    name: tomcat
    labels:
     app: tomcat
     release: stable
    spec:
    containers:
  • name: tomcat
    image: tomcat
    ports:
    • containerPort: 80

Label 常用的多维度标签分类

  • 版本标签(release):stable(稳定版),canary(金丝雀版本),beta(测试版)

  • 环境类(environment):dev(开发),qa(测试),production(生产),op(运维)

  • 应用类(applaction):ui(设计),as(应用软件),pc(电脑端),sc(网络方面)

  • 架构层(tier):frontend(前端),backend(后端),cache(缓存)

  • 分区标签(partition):customerA(客户),customerB

  • 品控级别(track):daily(每天),weekly(每周)

apiVersion: v1
kind: Pod
metadata:
  name: label-pod-test
  labels:       #使用labels字段来定义标签,可以一次定义多个标签,这里定义3个标签
    release: stable   #版本:稳定版
    env: qa              #环境:测试
    tier: frontend   #架构类:前端
spec:
  containers:
  - name: testTomcatLabel
    image: tomcat    #部署的是tomcat服务
点赞(1)

评论列表 共有 0 评论

暂无评论

微信服务号

微信客服

淘宝店铺

support@elephdev.com

发表
评论
Go
顶部