你可以使用 Kubernetes 注解为对象附加任意的非标识的元数据。客户端程序(例如工具和库)能够获取这些元数据信息。
您可以使用标签或注解将元数据附加到 Kubernetes 对象。 标签可以用来选择对象和查找满足某些条件的对象集合。 相反,注解不用于标识和选择对象。 注解中的元数据,可以很小,也可以很大,可以是结构化的,也可以是非结构化的,能够包含标签不允许的字符。
注解和标签一样,是键/值对:
"metadata": {
"annotations": {
"key1" : "value1",
"key2" : "value2"
}
}
以下是一些例子,用来说明哪些信息可以使用注解来记录:
从用户到最终运行的指令,以修改行为或使用非标准功能。
您可以将这类信息存储在外部数据库或目录中而不使用注解,但这样做就使得开发人员很难生成用于部署、管理、自检的客户端共享库和工具。
注解 存储的形式是键/值对。有效的注解键分为两部分:可选的前缀和名称,以斜杠(/
)分隔。 名称段是必需项,并且必须在63个字符以内,以字母数字字符([a-z0-9A-Z]
)开头和结尾,并允许使用破折号(-
),下划线(_
),点(.
)和字母数字。 前缀是可选的。 如果指定,则前缀必须是DNS子域:一系列由点(.
)分隔的DNS标签,总计不超过253个字符,后跟斜杠(/
)。
如果省略前缀,则假定注释键对用户是私有的。 由系统组件添加的注释(例如,kube-scheduler
,kube-controller-manager
,kube-apiserver
,kubectl
或其他第三方组件),必须为终端用户添加注释前缀。
kubernetes.io /
和 k8s.io /
前缀是为Kubernetes核心组件保留的。
例如,这是Pod的配置文件,其注释为 imageregistry:https:// hub.docker.com /
:
apiVersion: v1
kind: Pod
metadata:
name: annotations-demo
annotations:
imageregistry: "https://hub.docker.com/"
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
进一步了解标签和选择器。
此页是否对您有帮助?
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问 Stack Overflow. 在 GitHub 仓库上登记新的问题 报告问题 或者 提出改进建议.