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

参考书籍
《k8s in action》
《Kubernetes权威指南》

Kubernetes-标签和注解(二十二)相关推荐

  1. GUI的演化和python编程——Python学习笔记之二十二

    GUI的演化和python编程--Python学习笔记之二十二 写完了有关长寿的两篇博文,本该去完成哥德尔那个命题六的.对计算机图形界面的好奇,让我把注意力暂时离开那个高度抽象难读的哥德尔,给转到计算 ...

  2. Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试...

    最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...

  3. 【转载】 javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册 - 孤傲苍狼 - 博 http://www.cnblogs.com/xdp-gacl/

    javaweb学习总结(二十二)--基于Servlet+JSP+JavaBean开发模式的用户登录注册 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+Ja ...

  4. 程序员编程艺术第一 二十二章集锦与总结(教你如何编程)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 程序员编 ...

  5. 程序员编程艺术第一~二十二章集锦与总结(教你如何编程)

    程序员编程艺术第一~二十二章集锦与总结(教你如何编程) 作者:July.编程艺术室. 出处:http://blog.csdn.net/v_JULY_v . 题记 好久没更新博客了,虽只有一个月,但对我 ...

  6. 2021年大数据Hadoop(二十二):MapReduce的自定义分组

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 MapReduce的自定义分组 需求 分析 实现 第一步: ...

  7. 一位中科院自动化所博士毕业论文的致谢:二十二载风雨求学路,他把自己活成了光.........

    4月18日,中国科学院官方微博发布消息,披露了这篇论文为<人机交互式机器翻译方法研究与实现>,作者是2017年毕业于中国科学院大学的工学博士黄国平. 这篇论文中情感真挚的<致谢> ...

  8. iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2)

    iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2) 此时,当用户轻拍按钮后,一个叫tapButton()的方法就会被触发. 注意:以上这一种方式是动作声明和关联一起进行的,还有一种先 ...

  9. 实验二十二 SCVMM中的SQL Server配置文件

    实验二十二 SCVMM中的SQL Server配置文件 在VMM 2012中管理员可以使用 SQL Server 配置文件,在部署完成虚拟机之后,实现 SQL Server 数据库服务自动化部署并交付 ...

  10. 插入DLL和挂接API——Windows核心编程学习手札之二十二

    插入DLL和挂接API --Windows核心编程学习手札之二十二 如下情况,可能要打破进程的界限,访问另一个进程的地址空间: 1)为另一个进程创建的窗口建立子类时: 2)需要调试帮助时,如需要确定另 ...

最新文章

  1. 学会对mysql的增删改查_Go实现对MySQL的增删改查
  2. 第一阶段:Java基础之变量
  3. OpenCV图像操作
  4. 在Windows Media Center中收听超过100,000个广播电台
  5. java mic波形识别_会议季Mic Drop:您不应该错过的13场Java演讲
  6. java学习(70):GUL图形用户界面初识
  7. 如何将SAP数据传输到其他系统(Transferring Data from SAP to Other Systems)
  8. 用Python一键生成炫酷九宫格图片,火了朋友圈
  9. C# 可空类型和空接合运算符(??)
  10. 【leetcode】963. Minimum Area Rectangle II
  11. 国内物联网平台初探(五) ——机智云IoT物联网云服务平台及智能硬件自助开发平台...
  12. 全渠道数字化营销平台
  13. qq浏览器android flash,支持flash游戏 安卓QQ浏览器2.0预览版体验
  14. matlab tic和toc单位,matlab toc tic 的用法
  15. Maven pom 继承聚合
  16. 乐高机器人EV3的PID巡线控制——附源程序
  17. 入门系列之改进小波阈值降噪
  18. 全球与中国DIN导轨式信号调理器市场现状及未来发展趋势
  19. 非常不错的地区三级联动,js简单易懂。封装起来了(转)
  20. ZZULIOJ 1114-1130 数组专题 参考代码

热门文章

  1. 使用PyCharm连接云主机教程
  2. 压缩版styleGAN(Mobile StyleGAN)参数更少、计算复杂度更低
  3. AMD、CMD、CommonJs、ES6的对比
  4. StringUtils详细介绍
  5. phpcms内容页 调用 上一级栏目id,catname等信息 - 代码篇
  6. win10快速运行vue项目跑起来 - 方法篇
  7. python操作excel命令_python操作Excel读写(使用xlrd和xlrt)[转帖]
  8. 两台电脑usb直连传数据_如何通过一根USB数据线把手机/平板充当电脑的第二个显示器...
  9. 戴尔服务器t110做系统,戴尔服务器T110
  10. php zip 归档使用工具,PHP 压缩与归档扩展 Zip_编程学问网