侧边栏壁纸
  • 累计撰写 45 篇文章
  • 累计创建 15 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

【kubernetes】Label(标签)和Selector(选择器)

Administrator
2024-12-01 / 0 评论 / 0 点赞 / 25 阅读 / 3233 字 / 正在检测是否收录...

Label一般用于对各类资源进行分组管理。

Selector主要用于资源的匹配,只有符合条件的资源才会被调用或使用,可以使用该方法对集群中的各类资源进行分配。

1. 添加标签

kubectl label node k8s-worker02 key1=value1

在k8s-worker02上添加key1=value1的标签。

其他资源可以使用该方法添加标签,比如service等:

kubectl label svc canary-v1 -n canary-production env=canary version=v1

2. 查看标签

# kubectl get node k8s-worker02 --show-labels
NAME           STATUS   ROLES    AGE    VERSION   LABELS
k8s-worker02   Ready    <none>   170d   v1.28.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,key1=value1,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-worker02,kubernetes.io/os=linux

会列出被查对象的所有标签。

# kubectl get node -l key1=value1
NAME           STATUS   ROLES    AGE    VERSION
k8s-worker02   Ready    <none>   170d   v1.28.2

会将有符合条件的标签的资源显示出来。

# kubectl get node -l 'key in (value1, value2)' --show-labels
NAME           STATUS   ROLES    AGE    VERSION   LABELS
k8s-worker01   Ready    <none>   170d   v1.28.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,key=value1,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-worker01,kubernetes.io/os=linux
k8s-worker02   Ready    <none>   170d   v1.28.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,key=value2,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-worker02,kubernetes.io/os=linux

选择匹配key为value1或者values的node。

# kubectl get node -l version!=v1 'key in (value1, value2)' --show-labels

选择匹配key为value1或value2但不包括version=1的node。

3. 修改标签

比如将上面的 key1=value1 改为 key1=value2:

# kubectl label node k8s-worker02 key1=value2 --overwrite
node/k8s-worker02 labeled

# kubectl get node k8s-worker02 --show-labels
NAME           STATUS   ROLES    AGE    VERSION   LABELS
k8s-worker02   Ready    <none>   170d   v1.28.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,key1=value2,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-worker02,kubernetes.io/os=linux

4. 删除标签

将上面的key1=value2标签进行删除:

# kubectl label node k8s-worker02 key1-
node/k8s-worker02 unlabeled

# kubectl get node k8s-worker02 --show-labels
NAME           STATUS   ROLES    AGE    VERSION   LABELS
k8s-worker02   Ready    <none>   170d   v1.28.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-worker02,kubernetes.io/os=linux

查出需要的标签,可写入到相应的资源yaml中,实现选择器的功能。

0
博主关闭了所有页面的评论