首页 > 解决方案 > 使用 kubernetes 注释时出现问题

问题描述

我已经阅读了 kubernetes 注释的文档。

但我找不到有关使用此注释的基本示例。例如;

我有一个如下的部署 yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    test_value: "test"
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.13
        ports:
        - containerPort: 80

我如何使用这个名为 test_value 的注释以及在哪里。

此致...

标签: kubernetesmicroservices

解决方案


就像Labels,Annotations是表示附加到 Kubernetes 对象的元数据的键值对。但与Labels内部用于查找满足特定条件的对象集合相反, 的目的Annotations只是附加相关元数据,不应将其用作识别这些对象的过滤器。

如果我们想描述谁负责生成特定的 .yaml 文件怎么办?

我们可以将这些信息附加到 Kubernetes 的对象上,这样当我们需要知道是谁创建了这样的对象时,我们可以简单地运行kubectl describe ...

另一个有用的示例可能是Deployment在推出之前向 a 添加注释,说明在新版本的 Deployment 对象上发生了哪些修改。稍后可以在检查部署版本的历史记录时检索该信息。

但是正如您在示例中所意识到的那样IngressAnnotations我们还可以对此类对象执行高级配置。这不仅限于 Ingress,例如您还可以提供在 Kubernetes 集群上运行 Prometheus 的配置。您可以在此处查看详细信息。


推荐阅读