资源调度 —— Label 和 Selector:标签和选择器
一、Label 和 Selector
一)标签(Label)
1、通过配置文件配置标签
在各类资源的 metadata.labels / spec.labels 中进行配置
apiVersion: v1
kind: Pod
metadata:
name : nginx-po
labels:
type: app
version: 1.0.0
namespace: 'default'
spec:
containers:
2、通过 kubectl 配置标签
a、临时创建 label
kubectl label po <资源名称> app=hello
b、修改已经存在的标签
kubectl label po <资源名称> app=hello2 --overwrite
c、查看 label
# selector 按照 label 单值查找节点
kubectl get po -A -l app=hello
# 查看所有节点的 labels
kubectl get po --show-labels
二)选择器(Selector)
1、配置文件
在各对象的配置 spec.selector 或其他可以写 selector 的属性中编写
例如:
spec:
selector:
matchLabels:
app: nginx-deploy
2、kubectl
# 匹配单个值,查找 app=hello 的 pod
kubectl get po -A -l app=hello
# 匹配多个值
kubectl get po -A -l 'k8s-app in (metrics-server, kubernetes-dashboard)'
或
# 查找 version!=1 and app=nginx 的 pod 信息
kubectl get po -l version!=1,app=nginx
# 不等值 + 语句
kubectl get po -A -l version!=1,'app in (busybox, nginx)'