当前位置: 首页 > news >正文

杭州品牌网站设计四川住房建设部官方网站

杭州品牌网站设计,四川住房建设部官方网站,长安公司网站建设,怎么快速优化关键词label和label selector 标签和标签选择器 1、label 标签: 一个label就是一个key/value对 label 特性: label可以被附加到各种资源对象上一个资源对象可以定义任意数量的label同一个label可以被添加到任意数量的资源上 2、label selector 标签选择器 L…

label和label selector 标签和标签选择器

1、label 标签: 一个label就是一个key/value对

        label 特性:

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

2、label selector 标签选择器

        Label selector是Kubernetes核心的分组机制,通过label selector客户端/用户能够识别一组有共同特征或属性的资源对象。

查询条件:

selector:matchLabels:app: mywebmatchExpressions:- {key: tier, operator: In, values: [frontend]}- {key: environment, operator: NorIn, values: [dev]}

        matchLabels用于定义一组Label,与直接写在Selector中作用相同:matchExpression用于定义一组基于集合的筛选条件,可用的条件运算符包括:In、NotIn、Exists和DoesNotExist。

        如果同时设置了matchLabels和matchExpression,则两组条件为“AND”关系,即所有条件需要满足才能完成Selector的筛选。

3、示例

  • 定义标签
#可以多创建几个deploy 方便演示
[root@k8s-master-1 test]# vim deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: label-test
spec:selector:matchLabels:app: nginxenv: prodreplicas: 1template:metadata:labels:app: nginxenv: prodspec:containers:- image: nginx:1.17.1name: nginx[root@k8s-master-1 test]# kubectl apply -f deployment.yaml 
deployment.apps/label-test created
#创建完成就可以看到他的标签
[root@k8s-master-1 test]# kubectl get pod --show-labels
NAME                          READY   STATUS    RESTARTS   AGE   LABELSlabel-test-7787b4694b-jvrz5   1/1     Running   0          16s   app=nginx,env=prod,pod-template-hash=7787b4694b[root@k8s-master-1 test]# kubectl get pod --show-labels -owide
NAME                          READY   STATUS    RESTARTS   AGE   IP             NODE         NOMINATED NODE   READINESS GATES   LABELSlabel-test-7787b4694b-jvrz5   1/1     Running   0          46s   10.244.0.164   k8s-node-1   <none>           <none>            app=nginx,env=prod,pod-template-hash=7787b4694b#查看所有标签  -A
[root@k8s-master-1 ~]# kubectl get pod -A --show-labels
NAMESPACE     NAME                                    READY   STATUS    RESTARTS   AGE     LABELS
default       busybox                                 1/1     Running   11         2d17h   <none>
default       label-test-7787b4694b-jvrz5             1/1     Running   2          41h     app=nginx,env=prod,pod-template-hash=7787b4694b
default       web-96d5df5c8-vmxgr                     1/1     Running   2          2d23h   app=web,pod-template-hash=96d5df5c8
kube-system   coredns-6b774d79bb-4ssxb                1/1     Running   48         18d     k8s-app=kube-dns,pod-template-hash=6b774d79bb
kube-system   kube-flannel-ds-amd64-7bpfs             1/1     Running   16         18d     app=flannel,controller-revision-hash=76ccd4ff4f,pod-template-generation=1,tier=node
kube-system   kube-flannel-ds-amd64-8d8fj             1/1     Running   17         18d     app=flannel,controller-revision-hash=76ccd4ff4f,pod-template-generation=1,tier=node
kube-system   kubernetes-dashboard-567f98444d-d9zb4   1/1     Running   2          2d23h   k8s-app=kubernetes-dashboard,pod-template-hash=567f98444d
kube-system   metrics-server-6f6c655778-66q5g         1/1     Running   2          2d23h   k8s-app=metrics-server,pod-template-hash=6f6c655778
kube-system   metrics-server-6f6c655778-m6r7g         1/1     Running   3          3d17h   k8s-app=metrics-server,pod-template-hash=6f6c655778#命令行方式给容器、node节点、deploy、等等添加标签
[root@k8s-master-1 ~]# kubectl label node k8s-node01 k8s-node02 env=test
[root@k8s-master-1 ~]# kubectl label pod busybox app=v1
pod/busybox labeled[root@k8s-master-1 ~]# 
[root@k8s-master-1 ~]# kubectl get pod --show-labels
NAME                          READY   STATUS    RESTARTS   AGE     LABELS
busybox                       1/1     Running   11         2d18h   app=v1[root@k8s-master-1 ~]# 
##修改标签使用  --overwrite
[root@k8s-master-1 ~]# kubectl label pod busybox app=v2 --overwrite
pod/busybox labeled
[root@k8s-master-1 ~]# [root@k8s-master-1 ~]# kubectl get pod --show-labels
NAME                          READY   STATUS    RESTARTS   AGE     LABELS
busybox                       1/1     Running   11         2d18h   app=v2
#删除标签
[root@k8s-master-1 ~]# kubectl label pod busybox app-
pod/busybox labeled
  • label selector

         命令行方式过滤

1、过滤出所有包含env=prod的pod
[root@k8s-master-1 test]# kubectl get pod -l env=prod --show-labels
NAME                          READY   STATUS    RESTARTS   AGE   LABELS
label-test-7787b4694b-jvrz5   1/1     Running   0          34m   app=nginx,env=prod,pod-template-hash=7787b4694b
2、过滤出包含env=prod,app=nginx的pod
[root@k8s-master-1 test]# kubectl get pod -l 'env=prod,app=nginx' --show-labels
NAME                          READY   STATUS    RESTARTS   AGE   LABELS
label-test-7787b4694b-jvrz5   1/1     Running   0          38m   app=nginx,env=prod,pod-template-hash=7787b4694b
'env=prod,app in (nginx,nginx02,nginx03)',逗号分隔2个条件,表示要同时的满足
3、过滤出来不包含app=nginx1和app=nginx3的pod。语法:'app notin (nginx,nginx03)' ,用notin来实现
[root@k8s-master-1 test]# kubectl get pod -l 'app notin (nginx1,nginx2)' --show-labels
4、过滤出来不包含app=nginx的pod。  语法:'env != dev'
[root@k8s-master-1 test]# kubectl get pod -l 'app !=nginx' --show-labels
NAME                  READY   STATUS    RESTARTS   AGE   LABELSweb-96d5df5c8-vmxgr   1/1     Running   1          31h   app=web,pod-template-hash=96d5df5c8

4、yaml配置中的标签选择表达式

  •  基于等式的匹配
创建一个service[root@k8s-master-1 test]# vim deployment-service.yaml 
apiVersion: v1
kind: Service
metadata:name: service-label
spec:ports:- name: 80-80port: 80targetPort: 80selector: #标签选择器,选择标签为env: prod的podenv: prod
[root@k8s-master-1 test]# kubectl apply -f deployment-service.yaml 
service/service-label created
[root@k8s-master-1 test]# kubectl get svc service-label -owide
NAME            TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE    SELECTORservice-label   ClusterIP   10.0.0.254   <none>        80/TCP    6m8s   env=prod
# 如下图,可以看到,service恰好就是关联到了这2个pod上了。
[root@k8s-master-1 ~]# kubectl get endpoints service-label
NAME            ENDPOINTS                         AGE
service-label   10.244.0.166:80,10.244.0.167:80   5h18m
[root@k8s-master-1 ~]# 
[root@k8s-master-1 ~]# 
[root@k8s-master-1 ~]# kubectl get pod -l env=prod -owide
NAME                          READY   STATUS    RESTARTS   AGE    IP             NODE         NOMINATED NODE   READINESS GATES
busybox                       1/1     Running   18         3d1h   10.244.0.166   k8s-node-1   <none>           <none>
label-test-7787b4694b-jvrz5   1/1     Running   2          2d1h   10.244.0.167   k8s-node-1   <none>           <none>

  • 基于集合的匹配

注意:job、deployment、replicaset、daemonset不仅仅支持基于等式的匹配,也支持基于集合的匹配

如第三个步骤,创建的deployment,matchlabels用于匹配一组的标签,与直接在selector中的作用相同

在yaml文件中基于集合的方式匹配
语法:
spec:  #  selector:#matchLabels: #matchlabels用于匹配一组的标签,与直接在selector中的作用相同app: nginx06#env: online#[root@k8s-master-1 test]# 
[root@k8s-master-1 test]#  kubectl get deployment label-test -owide
NAME         READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS   IMAGES         SELECTOR
label-test   1/1     1            1           2d1h   nginx        nginx:1.17.1   app=nginx,env=prod[root@k8s-master-1 test]# kubectl get pod -owide
NAME                          READY   STATUS    RESTARTS   AGE    IP             NODE         NOMINATED NODE   READINESS GATES
busybox                       1/1     Running   18         3d1h   10.244.0.166   k8s-node-1   <none>           <none>
label-test-7787b4694b-jvrz5   1/1     Running   2          2d1h   10.244.0.167   k8s-node-1   <none>           <none>[root@k8s-master-1 test]# 
[root@k8s-master-1 test]# kubectl get pod label-test-7787b4694b-jvrz5 -owide --show-labels
NAME                          READY   STATUS    RESTARTS   AGE    IP             NODE         NOMINATED NODE   READINESS GATES   LABELS
label-test-7787b4694b-jvrz5   1/1     Running   2          2d1h   10.244.0.167   k8s-node-1   <none>           <none>            app=nginx,env=prod,pod-template-hash=7787b4694b#这样,deployment就和要控制、管理的pod进行了关联。另外,在集合的方式里,matchExpression也可以作为匹配的操作
spec:  selector:matchLabels:app: nginx06env: onlinematchExpressions:- {key: release, operator: In, values: [stable] }- {key: app,operator: NotIn, values: [nginx02,nginx03] }
语法:matchExpressions:- {key: release, operator: In, values: [stable] }- {key: app,operator: NotIn, values: [nginx02,nginx03] }

http://www.15wanjia.com/news/189344.html

相关文章:

  • 深圳博大建设集团网站网站怎样做的高大上
  • 钓鱼网站网站怎么做server wordpress
  • 海口专门做网站免费网站注册
  • 管理网站怎么做的展览展示设计公司排名
  • 制作网页和网站的区别科技感强的网站
  • 浙江建设继续教育学院网站一条龙平台
  • 长沙建站网站模板建设项目安监备案网站
  • 输变电壹级电力建设公司网站有赞微商城登录
  • 优门设 网站vps怎么上传网站程序
  • 网站建设营销的技巧杭州 商城网站开发
  • 制作一个营销型网站学校网站建设哪家好
  • 家政门户网站源码上海 网站建设google
  • 17网站一起做网店新塘wordpress 去版权
  • 山东建设厅官方网站二建报名企业门户网站建站
  • 廊坊网站推广网站开发的技术选型
  • 支付网站开发费可以做无形资产汽车配件生产企业网站模板
  • 网站建设找朝云科技如何建立公司自己的网站
  • 微信网站怎么做中关村手机之家官网
  • 平面设计常用网站毕业设计做网站应该学什么
  • 站长工具seo综合查询网定制化软件
  • 网站开发开票内容个人app
  • 哪个网站可以做简历建站公司费用情况
  • 做守望同人的网站绵阳观察怎么登录不上
  • 东莞企业网站模板建站微信小程序开发制作
  • 绥化北京网站建设湖南营销型网站建设磐石网络
  • 购物网站技术方案建筑公司网站背景图
  • 手机 网站编辑器环球网最新消息
  • 自建网站与平台建站网站设计 案例
  • python做网站好用吗网站建设动态页面修改删除
  • 高水平大学建设大学网站电子商务网站建设与管理王生春