【问题标题】:What is the difference between. annotations and labels in in Kubernetes?有什么区别。 Kubernetes 中的注释和标签?
【发布时间】:2021-07-17 06:18:58
【问题描述】:

我正在努力解决注释和标签之间的区别。

我对注解的理解是,它是元数据,它添加了 Kubernetes 无法用于识别/过滤资源的键值对。

另一方面,标签是元数据键值对,Kubernetes 可以使用它来识别/过滤资源。

这是对的吗?如果是这样,那么注释的实际用途是什么?跟性能有关系吗?标签在 Kubernetes 的扫描仪下用于过滤器和注释纯粹是为了添加只是提供信息的元数据?

但我已经看到部署需要 Nginx 或使用注释的入口功能的情况。那么如何搜索或使用它。为什么这里不用标签?

我们什么时候在标签上使用注释,反之亦然?各有什么优缺点?

我的理解在这里相当有限,但是阅读官方文档并没有真正帮助我理解何时使用注释与标签的用例。

【问题讨论】:

    标签: kubernetes deployment devops admin kubernetes-apiserver


    【解决方案1】:

    标签是为识别目的而分配给对象的元数据。例如,服务使用 pod 上的标签选择后端 pod。

    注释是可以开放式的附加元数据。它可以用于文档目的,也可以用于配置对象。例如,Nginx 入口控制器读取正在运行的 pod 上的这些注解,并使用它们来配置底层 NGinx 实例。如何使用注解完全取决于实现。

    【讨论】:

      【解决方案2】:

      标签在 Etcd 中被索引并且可以被搜索。注释不能。

      【讨论】:

        【解决方案3】:

        标签是可以附加到 Kubernetes 对象的键/值对 例如 Pod 和 ReplicaSet。它们可以是任意的,并且很有用 用于将识别信息附加到 Kubernetes 对象。标签 为对象分组提供基础。

        另一方面,注解提供了一种存储机制, 类似于标签:注释是键/值对,旨在保存 可以被工具利用的非识别信息和 图书馆。

        -- Kubernetes 启动和运行,第 6 章

        标签用于识别资源

        标签可以做什么的例子:

        • 查找具有与键关联的值的所有 pod

          kubectl get pods -l key=val,key2=val2

        • 合并和流式传输共享相同标签的各种 pod 的日志

          kubectl logs -l key=val

        标签被用作选择器而不是注释的原因是因为大多数Kubernetes实现在etcd中索引标签。

        注解用于存储资源本身的数据

        这通常由机器生成的数据组成,甚至可以存储为 JSON 格式。

        例子:

        • 最后更新
        • 管理人
        • sidecar 注入配置等

        【讨论】:

        猜你喜欢
        • 2018-01-14
        • 2022-01-21
        • 2012-11-10
        • 2019-01-25
        • 1970-01-01
        • 1970-01-01
        • 2019-03-05
        • 2018-11-23
        • 2013-07-07
        相关资源
        最近更新 更多