K8S注解
注解为对象附加任意的非标识的元数据。客户端能获取这些元数据。
为对象附加元数据
使用标签或注解将元数据附加到K8S对象。标签可以用来选择对象和查找满足某些条件的对象集合。相反,注解不用于标识和选择对象,可以在同一对象的元数据中同时使用标签和注解。
注解和标签一样,是键/值对
"metadata":{
"annotations":{
"key1": "value1",
"key2": "value2"
}
}
Map中的键和值必须是字符串。不能使用数字、布尔值、列表或其他类型的键或值
那些信息可以使用注解来记录
- 由声明性配置所管理的字段
- 构建、发布或镜像信息
- 指向日志记录、监控、分析或审计仓库的指针
- 用于调试目的的客户端或工具信息
- 用户或者工具/系统的来源信息
- 轻量级上线工具的元数据信息
- 负责人员的电话或呼机号码,或指定在何处可以找到该信息的目录条目
- 从用户最终运行的指令,以修改行为或使用非标准功能
语法和字符集
注解存储的形式是键/值对。有效的注解键分为两部分: 可选的前缀和名称,以斜杠(/
)分隔。 名称段是必需项,并且必须在 63 个字符以内,以字母数字字符([a-z0-9A-Z]
)开头和结尾, 并允许使用破折号(-
),下划线(_
),点(.
)和字母数字。 前缀是可选的。如果指定,则前缀必须是 DNS 子域:一系列由点(.
)分隔的 DNS 标签, 总计不超过 253 个字符,后跟斜杠(/
)。 如果省略前缀,则假定注解键对用户是私有的。 由系统组件添加的注解 (例如,kube-scheduler
,kube-controller-manager
,kube-apiserver
,kubectl
或其他第三方组件),必须为终端用户添加注解前缀。
kubernetes.io/
和 k8s.io/
前缀是为 Kubernetes 核心组件保留的
例如:
apiVersion: v1
kind: Pod
metadata:
name: annotations-demo
annotations:
imageregistry: "https://hub.docker.com/"
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
交流群: