一、标签(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

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部