概念

Edit This Page

注解

你可以使用 Kubernetes 注解为对象附加任意的非标识的元数据。客户端程序(例如工具和库)能够获取这些元数据信息。

为对象附加元数据

您可以使用标签或注解将元数据附加到 Kubernetes 对象。 标签可以用来选择对象和查找满足某些条件的对象集合。 相反,注解不用于标识和选择对象。 注解中的元数据,可以很小,也可以很大,可以是结构化的,也可以是非结构化的,能够包含标签不允许的字符。

注解和标签一样,是键/值对:

"metadata": {
  "annotations": {
    "key1" : "value1",
    "key2" : "value2"
  }
}

以下是一些例子,用来说明哪些信息可以使用注解来记录:

从用户到最终运行的指令,以修改行为或使用非标准功能。

您可以将这类信息存储在外部数据库或目录中而不使用注解,但这样做就使得开发人员很难生成用于部署、管理、自检的客户端共享库和工具。

语法和字符集

注解 存储的形式是键/值对。有效的注解键分为两部分:可选的前缀和名称,以斜杠(/)分隔。 名称段是必需项,并且必须在63个字符以内,以字母数字字符([a-z0-9A-Z])开头和结尾,并允许使用破折号(-),下划线(_),点(.)和字母数字。 前缀是可选的。 如果指定,则前缀必须是DNS子域:一系列由点(.)分隔的DNS标签,总计不超过253个字符,后跟斜杠(/)。 如果省略前缀,则假定注释键对用户是私有的。 由系统组件添加的注释(例如,kube-schedulerkube-controller-managerkube-apiserverkubectl 或其他第三方组件),必须为终端用户添加注释前缀。

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

接下来

进一步了解标签和选择器

反馈