Label定义:
Label是Kubernetes系列中另外一个核心概念。是一组绑定到K8s资源对象上的key/value对。同一个对象的labels属性的key必须唯一。label可以附加到各种资源对象上,如Node,Pod,Service,RC等。

通过给指定的资源对象捆绑一个或多个不用的label来实现多维度的资源分组管理功能,以便于灵活,方便地进行资源分配,调度,配置,部署等管理工作。

#node的label
增:
kubectl label nodes kube-node label_name=label_value
增加worker 节点标签
kubectl label nodes  k8s-node1 node-role.kubernetes.io/worker=worker
删:kubectl label nodes kube-node label_name-
删除一个Label,只需在命令行最后指定Label的key名并与一个减号相连即可:
kubectl label nodes  k8s-node1 node-role.kubernetes.io/worker-
改:
增加方法的基础上 使用--overwrite 参数
kubectl label nodes kube-node label_name=label_value --overwrite
不加参数报错
直接修改配置
kubect edit node nodename

# 查看命名空间中 svc的label
kubectl -n test-k8s get svc --show-labels
# 选择labelkey名为app的svc 
kubectl -n test-k8s get svc --show-labels
# 选择app为web或者nginx的svc
kubectl -n test-k8s get svc -l  'app in (nginx, web)' --show-labels
# 选择app为web或者nginx但不包括env=nginxsvc的svc
kubectl  -n test-k8s get svc -l  env!=nginxsvc,'app in (nginx, web)' --show-labels
# 选择label的key名为app的svc:
kubectl  -n test-k8s  get svc -l app --show-labels
# 修改env标签的值为v2
kubectl -n test-k8s label svc nginx env=v2 --overwrite
# 删除app标签
kubectl -n test-k8s label svc app-

# 为pod资源打标签
[root@master~]# kubectl label pod nginx-pod version=1.0 -n dev
pod/nginx-podlabeled
# 为pod资源更新标签
[root@master~]# kubectl label pod nginx-pod version=2.0 -n dev --overwrite
# 查看标签
 [root@master~]# kubectl get pod nginx-pod  -n dev --show-labels

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐