注解
你可以使用 Kubernetes 注解(Annotations) 为对象附加任意的非标识的元数据,客户端程序(例如工具和库)能够获取这些元数据信息。
官方文档参考
| 文档 | 链接 |
|---|---|
| 注解(中文) | https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/annotations/ |
| Annotations(英文,内容补充参考) | https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ |
为对象附加元数据
你可以使用标签或注解将元数据附加到 Kubernetes 对象,但两者的定位不同:
| 对比项 | 标签(Labels) | 注解(Annotations) |
|---|---|---|
| 用途 | 选择对象、查找满足条件的对象集合 | 附加非标识元数据,不用于标识和选择对象 |
| 值的大小 | 最长 63 字符 | 可以很小也可以很大(单对象全部注解合计上限 256 KiB) |
| 值的内容 | 受字符集限制 | 结构化或非结构化均可,可包含标签不允许的字符 |
| 能否共存 | 可以在同一对象的 metadata 中同时使用标签和注解 | 同左 |
注解和标签一样,是键/值对:
"metadata": {
"annotations": {
"key1" : "value1",
"key2" : "value2"
}
}
键和值都必须是字符串
映射中的键和值必须是字符串——不能使用数字、布尔值、列表或其他类型。
以下是一些适合记录在注解中的信息:
| 类别 | 示例 |
|---|---|
| 声明式配置层管理的字段 | 与客户端/服务端默认值、自动生成字段、自动扩缩容系统设置的字段区分开 |
| 构建/发布/镜像信息 | 时间戳、发布 ID、git 分支、PR 编号、镜像哈希、镜像仓库地址 |
| 指针类信息 | 指向日志、监控、分析或审计仓库的地址 |
| 客户端库/工具信息 | 用于调试的名称、版本、构建信息 |
| 来源信息 | 用户或工具/系统的来源,例如来自其他生态组件的相关对象的 URL |
| 灰度发布工具元数据 | 例如配置或检查点(checkpoints) |
| 责任人信息 | 负责人的电话或寻呼机号码,或指明信息位置的目录条目(如团队网站) |
| 行为指令 | 最终用户向实现层发出的、用于修改行为或启用非标准特性的指令 |
这些信息也可以存到外部数据库或目录中,但那样做会使得为部署、管理、内省等场景构建共享的客户端库和工具变得困难得多。