Kubernetes Label介绍及使用

一、Label的介绍

        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:

1.基于等式的Label Selector:

  • name=slave:选择所有包含Label中key="name"且value="slave"的对象。 
  • env!=production:选择所有包括Label中的key=“env”且value不等于“production”的对象。

2.基于集合的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

二、Label的使用

1.命令方式

#为pod资源打标签
kubectl label pod nginx-pod version=1.0 -n dev

#为pod资源更新标签
kubectl label pod nginx-pod version=2.0 -n dev --overwrite

#查看标签
kubectl get pod nginx-pod -n dev --show-labels

#筛选标签
kubectl get pod -n dev -l version=2.0 --show-labels
kubectl get pod -n dev -l version!=2.0 --show-labels

#删除标签(删除version标签)
kubectl label pod nginx-pod version- -n dev

2.配置方式

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  namespace: dev
  labels:
    version: "3.0"
    env: "test"
spec:
  containers:
    - image: nginx:1.17.1
      imagePullPolicy: IfNotPresent
      name: pod
      ports:
        - name: nginx-port
          containerPort: 80
          protocol: TCP

好了,Label内容就这了,学会了吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值