在kubernetes中还有一个定义是注解,注解和标签一同填写在对象的metadata节点下,例如:
metadata: annotations: k8s.kuboard.cn/displayName: nginx
这个注解主要是做什么的呢?
其实注解对于我们的理解他主要是用来存储标记此对象的一些含义,例如上面的注解,我们可以很清晰的表名,这个对象的显示名称为nginx。
注解也是使用map的数据结构,为 key:value这样的形式存在。那么我们一般使用注解存储哪些信息呢?例如:
1、声明式配置层用到的状态信息。 2、Build、release、image信息,例如 timestamp、release ID、git branch、PR number、image hash、registry address 3、日志、监控、分析、审计系统的参数 4、第三方工具所需要的信息,例如 name、version、build information、URL 5、轻量级的发布工具用到的信息,例如,config、checkpoint 6、负责人的联系方式,例如,电话号码、网址、电子信箱 7、用户用来记录备忘信息的说明,例如,对标准镜像做了什么样的修改、维护过程中有什么特殊信息需要记住
在填写注解的时候,key一般我们分为两部分,两部分之间使用/斜杠来进行区分。第一部分是注解前缀,第二部分是注解名。
注解前缀的规范是:
1、注解前缀部分是可选的 2、如果指定,必须是一个DNS的子域名,例如:k8s.eip.work 3、不能多于 253 个字符 4、使用 / 和标签名分隔
注解名的规范是:
1、标签名部分是必须的 2、不能多于 63 个字符 3、必须由字母、数字开始和结尾 4、可以包含字母、数字、减号-、下划线_、小数点.
在使用的时候,我们尽量都标记下注解前缀,特别是kubernetes自身的组件一般都会标记上注解前缀,如果某个注解没有注解前缀,那么一般我们认为这个注解是专属于某个用户的。
备注:
1、一般我们在生产环境都会强硬要求注解携带注解前缀,这样可以落实这些对象的创建归属人,如果出现问题,可以直接对应到某个人来解决。
还没有评论,来说两句吧...