首页 > 其他分享 >k8s-label和selector

k8s-label和selector

时间:2023-10-28 17:14:08浏览次数:36  
标签:selector ns app label nginx env pod k8s

说明

k8s通过lable来为资源打上标签,通过selector来查找。而不是像传统mysql对象之间关联使用强关联外键属性

比如deployment需要关联RS 则通过RS打上标签,deployment通过配置select选择器去查找

标签的特性

label有如下的一些特点:

  • label可以被附加到各种资源对象上
  • 一个资源对象可以定义任意数量的label
  • 同一个label可以被添加到任意数量的资源对象上

lable+select组合的作用

当我们给一组对象,比如有10个pod,打上不同的标签之后,当我们需要选择期中的部分,或者全部作为使用目标的时候,就可以使用label selector来实现这个操作,标签选择器中指定具体的过滤的条件,然后就能在10个pod中过滤出满足我们要求的这些pod

定义标签方式

pod文件定义

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-label
  labels:
    app: nginx-label
  namespace: ns-label
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
      env: label
  template:
    metadata:
      labels:
        app: nginx
        env: label
    spec:
      containers:
      - name: label-nginx
        image: nginx:1.15
        ports:
        - containerPort: 80
      restartPolicy: Always

命令行临时定义

1.为命名空间下的指定节点打上app:hello标签

kubectl label po <po名称> app=hello -n kube-public

2.修修改指定po的标签将app的value改为hello2

kubectl label po  <po名称> nginx-po app=hello2 --overwrite

选择器查找lable语法

1.查找pod 标签含有app=java的

kubectl get po -l app=java

2.in查询test标签值含有1.0.0,1.1.0,1.2.0

kubectl get po -l 'test in (1.0.0,1.1.0,1.2.0)'

3.多条件and version!=1.2.0 and type=app

kubectl get po -l version!=1.2.0,type=app

 

kubectl get po -l 'test!=1.0.0,type=app,author in (xxx,xxx,xiaoliu,wolfcode)'

其他常用

#在ns(命名空间):ns-label下,过滤出包含env=nginx,env=label的pod
kubectl -n ns-label get pod -l 'env=nginx,env=label' --show-labels
#在ns(命名空间):ns-label下,过滤出包含env=ngin或者env=label或者env=ssd的pod
kubectl -n ns-label get pod -l 'env in (nginx,label,ssd)' --show-labels
#在ns(命名空间):ns-label下,过滤出包含env=ngin或者env=label或者env=ssd,同时app=nginx的pod
kubectl -n ns-label get pod -l 'app=nginx,env in (nginx,label,ssd)' --show-labels
#在ns(命名空间):ns-label下,过滤出不包含env=ngin或者env=label或者env=ssd的pod
kubectl -n ns-label get pod -l 'env notin (nginx,label,ssd)' --show-labels
#在ns(命名空间):ns-label下,过滤出不是env=nginx,env=label的pod
kubectl -n ns-label get pod -l 'env!=nginx,env!=label' --show-labels

yml配置方式

  selector:
    matchLabels:
      app: nginx
      env: online
    matchExpressions:
     - {key: release, operator: In, values: [stable] }
     - {key: app,operator: NotIn, values: [nginx02,nginx03] }
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx06
        env: online
        release: stable

 

标签:selector,ns,app,label,nginx,env,pod,k8s
From: https://www.cnblogs.com/LQBlog/p/17794284.html

相关文章

  • shell 脚本一键部署 k8s 高可用集群
    github地址:https://github.com/Johnny-Demo/deploy/tree/k8s-cluster有不理解的地方可以私信我......
  • k8s接入外部metrics数据进行hpa扩缩容
    一般来说我们只会按照系统设置的cpu和mem去动态扩缩容,但是其实这样很不灵活,比如,jvm占的大小并不等同于真正应用所占的内存,如果有一种可能,可以再监控数据里拿出来一个衡量指标数据,然后依照这个数据进行动态扩缩容,这样的话就会灵活很多,研究了2天,今天终于研究明白了,赶紧记录一下第一......
  • k8s之基础篇
        相关概念: kube-apierver:控制平面组件,负责kubernetes api, 处理接受的请求工作  kube-controller-manager:控制平面组件, 负责运行控制器进程  kube-scheduler:控制平面组件, 负责见识新创建,未指定运行节点的pods,选择节点让pod运行 cloud-controller-manager......
  • K8S 权限管理
    k8s权限管理目录k8s权限管理1、k8s用户1.1、k8s用户概念1.2、User&ServiceAccount的区别1.3、k8s用户创建1.3.1、创建用户私钥1.3.2、创建证书签名请求1.3.3、集群证书签署2、k8s角色2.1、Role&ClusterRole2.1.1、Role2.1.2、ClusterRole2.2、Rolebinding&ClusterRoleBindi......
  • html中如何设置label自动换行
    html中如何设置label自动换行在HTML中,我们经常需要设置label标签,这是一种非常常见且重要的标签。在有些情况下,我们的label标签中的文本可能会超出一行,这时就需要设置自动换行。为了实现在label标签中自动换行,我们需要使用CSS语言中的white-space属性,将其设置为"pre-wrap"或"pre......
  • K8s - 安装部署Kafka、Zookeeper集群教程(支持从K8s外部访问)
    本文演示如何在K8s集群下部署Kafka集群,并且搭建后除了可以K8s内部访问Kafka服务,也支持从K8s集群外部访问Kafka服务。服务的集群部署通常有两种方式:一种是 StatefulSet,另一种是 Service&Deployment。本次我们使用 StatefulSet 方式搭建 ZooKeeper 集群,使用 Service&Deployme......
  • k8s service访问偶发超时问题
    问题现象在某个集群节点上的服务访问service服务:端口,会出现偶发timeout的问题,集群有的节点不会出现访问timeout的问题问题处理查看bridge-nf-call-iptables参数是否开启cat/proc/sys/net/bridge/bridge-nf-call-iptables0问题解决开启内核参数echo"net.bridge.br......
  • VS添加SunnyUI控件时报错:创建组件UILabel失败
    在引用中将sunnyui和sunnyui.common移除在引用中重新从本地引用上面两个dll文件......
  • k8s 相关命令
    查看podkubectlgetpod-A重新部署kubectlrolloutrestartdeployment<deployment_name>-n<namespace>kubectlrolloutrestartdeploymentwebdatamanager-nbds扩容kubectlscaledeployment<deploymentname>-n<namespace>--replicas=......
  • 一图秒懂!从传统大数据平台到云原生大数据平台,再到云原生K8s大数据平台
    如果你还在使用传统大数据平台并且觉得它确实有点坑;如果你听说过云原生大数据平台但却不知道它为啥这么火?如果你想使用云原生大数据平台却无从下手现在,一张图“大数据平台的三级跳”带你轻松了解以上信息废话不多说,上图!传统大数据平台,即Hadoop、Spark、Kafka等集群组件,各自为战。这......