侧边栏壁纸
博主头像
小周的知识站 博主等级

行动起来,活在当下

  • 累计撰写 80 篇文章
  • 累计创建 12 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录
K8S

K8S资源管理之Label

Administrator
2024-07-15 / 0 评论 / 0 点赞 / 7 阅读 / 0 字

K8S资源管理之Label

1 Label标签概述

如果K8S集群节点数量非常多,可以将节点打上对应的标签,然后通过标签进行筛选及查看,更好的镜像资源对象的相关选择与匹配

  • 一个Label会以key/value键值对的形式附加到各种对象上,如Node、Pod、Service等等

  • 一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上

  • Label通常在资源对象定义时确定,也可以在对象创建后动态添加或者删除

常用的Label示例如下:

版本标签:"version":"1.0"

环境标签:"environment":"dev","environment":"test"

架构标签:"tier":"frontend","tier":"backend"

2 查看标签信息

查看node节点标签:--show-labels
# kubectl get node --show-labels

查看pod标签:--show-labels
# kubectl get pod --show-labels

3 设置标签信息

为pod打version标签:label
# kubectl label pod nginx -n test version=1.0


查看pod标签:--show-labels
# kubectl get pod -n test --show-labels


再次为该pod打标签(一个资源可以定义任意数量的Label)
# kubectl label pod nginx -n test env=test


查看pod标签:--show-labels
# kubectl get pod -n test --show-labels

4 更新标签信息

更新version标签:--overwrite

将pod版本标签更新为2.0
# kubectl label pod nginx -n test version=2.0 --overwrite
​
​
查看pod标签
# kubectl get pod -n test --show-labels
​


YAML文件形式更新标签

kubectl explain pod.metadata #在metadata属性中指定标签信息

# vim test_ngx_pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: test
  labels:           #定义标签
   version: "3.0"   #标签信息
spec:
  containers:
  - name: nginxpod
    image: nginx:1.18.0
​

更新资源
# kubectl apply -f test_ngx_pod.yaml
​
​
查看标签
# kubectl get pod -n test --show-labels
​


5 标签选择器

标签定义完毕以后还要考虑标签的筛选,标签选择器主要有2类:

  • 等值关系: =, !=

  • 集合关系: KEY in (VALUE1, VALUE2......)

案例:根据标签选择器筛选pod

等式筛选:筛选test空间"version=3.0"标签的pod
# kubectl get pod -l "version=3.0" -n test --show-labels
​
​
等式筛选:筛选test空间"version!=3.0"标签的pod
# kubectl get pod -l "version!=3.0" -n dev --show-labels
​
​
集合筛选:version in(3.0) 包含3.0
# kubectl get pod -l "version in (3.0)" -n test --show-labels
​
​
集合筛选:version notin(3.0) 排除3.0
kubectl get pod -l "version notin (3.0)" -n test --show-labels
​


6 标签删除

使用key加一个 - (减号)的写法来删除标签

删除标签:标签名-
# kubectl label pod nginx -n test version-


查看标签
# kubectl get pod nginx -n test --show-labels

0
K8S
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区