一、标签(Label)
用于给Kubernetes资源(如Pod、Service、Deployment等)打上自定义的键值对标识。以便更方便地管理和操作这些资源。
在各类资源的 metadata.labels
中进行配置。可以通过改配置文件的方式打标签。
apiVersion: v1
kind: Pod
metadata: # Pod 相关的元数据,用于描述 Pod 的数据
name: nginx-demo
labels: # 定义 Pod 的标签
type: app # 自定义 label 标签,名字为 type,值为 app
test: 1.0.0 # 自定义 label 标签,描述 Pod 版本号
spec:
containers: # 对于 Pod 中的容器描述
- name: nginx
也可以通过命令行的方式打标签。
# 临时创建标签 app=hello
kubectl label po [Name] app=hello
# 修改已经存在的标签 app 的值改为 hello2
kubectl label po [Name] app=hello2 --overwrite
# 按照 label 单值查找节点
kubectl get po -A -l app=hello
# 查看所有节点的 labels
kubectl get po --show-labels [-n nameSpace]
# 删除标签
# <Name>是要删除标签的资源的名称,<label-key>是要删除的标签的键。
kubectl label node <Name> <label-key>-
二、选择器(Selector)
用于根据标签来选择匹配的资源的机制。选择器可以用来查询、过滤和选择具有特定标签的资源。
在各对象的配置 spec.selector
或其他可以写 selector 的属性中编写。
# 匹配单个值,查找 app=hello 的 pod
kubectl get po -A -l app=hello
# 匹配多个值
kubectl get po -A -l 'app in (hello, hello2, hello3)'
# 查找 version!=1.0.1 and type=app 的 pod 信息
kubectl get po -l test!=1.0.1,type=app
# 不等值 + 语句
kubectl get po -A -l version!=1.0.0,'app in (hello, nginx)'
-A :
-A
或--all-namespaces
表示在所有命名空间中执行操作
-l:-l
或--selector
可以指定选择器(Selector),用于筛选出特定标签的 Pod
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 【 k8s 标签与选择器 】
发表评论 取消回复