zoukankan      html  css  js  c++  java
  • Label

    Label是kubenetes系统中的一个重要概念。其作用就是在资源上添加一个标识,用来对它们进行分区和选择。

    Label的特点:

    • 一个Label会以Key/value的形式附加到各种对象上,如Node,Pod,Service等
    • 一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上去
    • Label通常在资源对象定义时确定,当然也可以在对象创建后动态添加或者删除

    可以通过Label实现资源的多维度分组,以便灵活,方便的进行资源分配、调度、配置、部署等管理工作

    一些常用的Label示例如下:
      版本标签: "version":"release","version":"stable"....
      
      环境标签: "environment":"dev","environment":"test","environment":"pro"
      
      架构标签: "tier":"frontend","tier":"backend"
    

    标签定义完毕之后,还要考虑到标签的选择,这就要使用到Label Selector, 即:

    Label用于给某个资源对象定义标识

    Label Seletor用于查询和筛选拥有某些标签的资源对象

    当前有两种Label Seletor:

    • 基于等式的Label Seletor

      name = slave: 选择所有包含Label中Key="name"且value="slave"的对象

      env != production: 选择所有包括Label中的key="env"且value不等于"production的对象

    • 基于集合的Label Selector

      name in (master,slave):选择所有包含Label中的key="name"且value="master"或"slave"的对象

      name not in (frontend):选择所有包含Label中的key="name"且value不等于"frontend"的对象

    标签的选择条件可以使用多个,此时将多个Label Seletor进行组合,使用逗号","进行分隔即可。例如;

    name=slave,env!=prodution
    name not in(frontend),envv!=prodution
    

    命令方式创建

    #为pod资源打上标签
    kubectl label pod nginx-pod version=1.0 -n dev
    
    #为pod资源更新标签
    kubectl label pod nginx-pod version=2.0 -n dev --overwrite
    
    #查看标签
    kubectl get pod nginx-pod -n dev --show-labels
    
    #筛选标签
    kubectl get pod -l version=2.0 -n dev --show-labels
    kubectl get pod -l version!=2.0 -n dev --show-labels
    
    #删除标签
    kubectl label pod nginx -n dev version-
    

    配置方式创建

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      namespace: dev
      labels:
        version: "1.0"
        env: pro
    spec:
      containers:
      - image: nginx:1.17.1
        name: pod
        ports:
        - name: nginx-prot
          containerPort: 80
          protocol: TCP
    
    kubectl apply -f nginx-label.yml
    
  • 相关阅读:
    qrcode在手机上不显示的问题
    css 文本溢出省略号
    css解决字段不换行
    vue小程序ref和v-for结合使用得到ref数组的一些问题
    Nginx CORS 跨域资源共享问题
    基于k8s使用helm安装Jenkins
    nginx通过自定义http header 进行服务转发
    基于Kubernetes部署nacos配置中心
    基于Centos 7.8 和Kubeadm部署k8s高可用集群
    Jenkins学习以及配置
  • 原文地址:https://www.cnblogs.com/diqiyao/p/15509592.html
Copyright © 2011-2022 走看看