zoukankan      html  css  js  c++  java
  • Kubernetes-标签和注解

    1 标签

    1.1 为什么要有标签?

      在微服务架构中,部署的微服务数量很容器达到几十个,这些组件可能是副本(部署同一组件的多个副本)和多个不同的发布版本(stable、beta、canary等)同时运行。导致K8S系统中会出现多个pod,如果没有机制去组织这些组件,极容易产生混乱。需要一种能够基于任意标准将上述pod组织成更小群体的方式,这个时候就产生了标签,标签可以组织pod和其他K8S对象。

    1.2 标签介绍

      标签是一种简单却功能强大的K8S特性,可以附加到K8S资源的任意键值对,可以通过标签选择器筛选出需要寻找的确切标签的资源。在资源内标签的key需唯一,一个资源可拥有多个标签。
      K8S中的任意API对象都是通过Label进行标识、实质是一系列key/value键值对,其中key与value由用户自己指定。

    金丝雀发布:在部署新版本时,先只让一小部分用户体验新版本以观察新版本的表现,然后再向所有用户进行推广,这样可防止暴露有问题的版本给过多的用户。

    1.3 标签命令

    列出pods的标签
    $ kubectl get po --show-labels
    查看具体标签
    $ kubectl get po -L label_key1, label_key2
    添加标签
    $ kubectl label po po_name label_key=label_value
    其中,po_name表示pod名,label_key表示标签的名称,label_value表示标签的值。
    修改标签
    $ kubectl label po po_name label_key=label_new_value --overwrite
    其中,po_name表示pod名,label_key表示标签的名称,label_new_value表示标签的新值。

    2 标签选择器

    2.1 标签选择器介绍

      标签选择器允许选择标记有特定标签的pod子集,并且对这些pod进行操作,它是一种能够根据是否包含某个特定值的特定标签过滤资源。

    2.2 标签选择器过滤条件

    1)包含或不包含使用特定键的标签;
    2)包含具有特定键和值的标签;
    3)包含具有特定键的标签,但其值与指定的不同;

    2.3 标签选择器的使用

    使用标签选择器查看某键值的标签的pod
    $ kubectl get po -l label_key=label_value
    列出所有包含某标签的pod
    $ kubectl get po -l label_key
    列出所有没有某标签的pod
    $ kubectl get po -l '!label_key'

    2.4 标签选择器约束pod调度

      大部分创建的pod都是随机调度到工作节点上,在某些特殊情况下,如果需要将pod调度到指定类型的节点上,如硬件基础设施不是同质,某些工作节点需要使用机械硬盘,某些节点使用固态硬盘,此时需要通过节点标签和节点标签选择器完成。
      如需要将pod调度到GPU计算的节点上。
    给节点添加标签
    $ kubectl label node node_name gpu=true
    将pod调度到特定节点
    spec.nodeSelector.gpu=true,届时创建pod后,K8S会通过标签和标签选择器从只包含gpu=true的节点上选择并调度。

    3 注解

    3.1 注解简介

      注解是键值对,类似于标签,主要作用是保存标识信息,不可以用于对对象分组。与标签相比而言,注解包含数据更多一些,总共不超过256KB。

    3.2 注解命令

    添加注解
    $ kubectl annotate pod pod_name annotate_key="annotate_value"
    其中,pod_name为pod名称,annotate_key为注解键,annotate_value为注解值;
    查看注解
    $ kubectl describe pod pod_name
    查看Annotations字段值

  • 相关阅读:
    JS高级知识部分【4】
    关于python3 使用pycharm+unittest+html+HTMLTestRunner 测试用例运行正常,但却不能生成测试报告的解决方法
    python生成HTMl报告(unittest)
    Linux系统下安装jenkins使用
    jenkins使用
    UI定位元素大全(跟App定位元素差不多哦)
    UI自动化前置代码
    python+selenium+pytest+html报告
    jenkins解决python不是内部命令
    如何做好APP功能测试?
  • 原文地址:https://www.cnblogs.com/Andya/p/12508601.html
Copyright © 2011-2022 走看看