(二十)Kubernetes实战入门 -- Label

一、概念

label是kubernetes中一个重要概念,它的作用是在资源上添加标识,用来对他们进行区分和选择。
label的特点:
1)一个label会以key/value键值对的形式附加到各种对象上,如Node、Pod、Service等
2)一个资源对象可以定义任意数量的label,同一个label也可以被添加到任意数量的资源对象上去
3)label通常在资源对象定义时确定,当然也可以在对象创建后动态添加或者删除。

二、label selector

  1. 可以通过标签实现资源的多维度分组,以便灵活、方便的进行资源分配、调度、配置、部署等管理工作、
    一些常用的label实例如下:
    版本信息:“version”:“release”
    环境信息:“environment”:“dev”
    架构信息:“tier”:“frontend”
    标签定义完成之后,需要考虑到标签的选择,这就要用到label selectot, label用于给某个资源对象进行标识,label selector用于查询和筛选拥有某些标签的资源对象。
    当前有两种label selector:
    1)基于等式的label selector
    name = slave: 选择所有包含label中key=name且value=slave的对象
    env != prod:选择所有包含label中key=env且value!=prod的对象
    2)基于集合的label selector
    name in (master, slave) 选择所有包含label中key=name且value=master或slave的对象
    name not in (master, slave) 选择所有包含label中key=name且value!=master且!=slave的对象
  2. 标签的选择可以有多个,此时将多个label selector进行组合,使逗号隔开,例如: name in (master, slave), env != prod

三、标签的使用

  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
#筛选标签
kebectl get pod -n dev -l "version=2.0" --show-labels
#删除标签tier
kubectl label pod nginx -n dev tier-
  1. 配置方式
    创建一个pod-nginx.yaml,配置文件指定label
apiVersion: v1
kind: Pod
metadata: 
	name: nginx
	namespace: dev
	label: 
		version: 1.0
		env: dev
spec:
	containers:
	- image: nginx:1.17.1
	  imagePullPolicy: IfNotPresent
	  name: pod
	  port: 
	  - name: nginx-port
	    containerPort: 80
	    protocol: TCP

执行对应的更新命令:

kubectl apply -f pod-nginx.yaml

》》》博主长期更新学习心得,推荐点赞关注!!!
》》》若有错误之处,请在评论区留言,谢谢!!!

猜你喜欢

转载自blog.csdn.net/qq_41622739/article/details/114177769
今日推荐