Kubernetes-标签和注解

作者: Hughman | 来源:发表于2020-01-02 18:45 被阅读0次

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字段值

相关文章

  • Kubernetes-标签和注解

    1 标签 1.1 为什么要有标签?   在微服务架构中,部署的微服务数量很容器达到几十个,这些组件可能是副本(部署...

  • 说说 Java 注解

    Java 注解可以看做是 Javadoc 和 Xdoclet 标签的延伸和发展,我们可以自定义注解标签,并通过 J...

  • 3.6 注解pod+3.7 使用命名空间对资源进行分组

    3.6 注解pod 除标签外,pod和其他对象还可以包含注解。注解也是键值对,所以它们本质上与标签非常相似。但与标...

  • Spring AOP之注解和配置的异同

    Spring AOP之注解和配置的异同 1、标签解析器 注解使用的实现类:AspectJAutoProxyBean...

  • java注解

    java注解起到给源代码加上标签的作用,加上和删除对源码没有影响。 外部工具访问标签(注解),然后做了处理。比如I...

  • 注解

    什么是注解 注解就是标签,同 class 和 interface 一样,注解也属于一种类型。它是在 Java SE...

  • kotlin-注解

    什么是注解 注解实际上类似标签,例如时间管理大师就是某某的标签,苹果手机就是乔布斯的标签。在代码的世界里,注解就是...

  • Kubernetes 部署

    更新链接: https://github.com/mushuanli/wsue/wiki/Kubernetes-%...

  • Java 注解 (Annotation)你可以这样学

    注解如同标签 初学者可以这样理解注解:想像代码具有生命,注解就是对于代码中某些鲜活个体的贴上去的一张标签。简化来讲...

  • Java的注解-元注解

    元注解 元注解是一种基本注解,它能够应用到其它的注解上面。元标签有: @Retention、@Documented...

网友评论

    本文标题:Kubernetes-标签和注解

    本文链接:https://www.haomeiwen.com/subject/uisrnctx.html