在我的kubernetes部署文件中,我有一个注释如下
spec:
template:
metadata:
annotations:
prometheus.io/port: "24231"
prometheus.io/scrape: "true"但是,当我应用部署文件时,它将被替换为
spec:
template:
metadata:
creationTimestamp: null
labels:
app: my-app
version: 4.0.5-164不知道为什么我的注释不来了。它将被元数据部分中的数据替换,如下所示
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: my-app
appid: xxxxx-xxxx-xxxx
groupid: DEFAULT
version: 4.0.5-164K8s版本1.18
发布于 2022-02-16 07:06:24
您在这里向我们展示了部署清单的不同部分,因此我认为您混淆了同一个文件中不同的元数据部分。
第一部分.metadata应用于部署本身。
.spec.template.metadata部分应用于部署创建的吊舱,这些注释不会出现在部署的顶部.metadata部分。
摘要
如果要为部署指定标签/注释,请使用.metadata部分。
如果要指定应用于pod的标签/注释,请使用.spec.template.metadata部分。
如果要为两者指定标签/注释,请在两处指定它们。
示例:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: MYAPP
# labels/annotations that are applied to the deployment
labels:
app: MYAPP
appid: xxxxx-xxxx-xxxx
groupid: DEFAULT
version: 4.0.5-164
annotations:
whatever: isapplied
spec:
...
template:
metadata:
# labels/annotations that are applied to the pods
labels:
app: MYAPP
appid: xxxxx-xxxx-xxxx
groupid: DEFAULT
version: 4.0.5-164
annotations:
prometheus.io/port: "24231"
prometheus.io/scrape: "true"发布于 2022-02-16 06:56:45
不确定您要在哪里放置注释
spec:
template:
metadata:理想情况下,它应该出现在部署元数据或pod中。
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就像这样
metadata:
name: annotations-demo
annotations:
imageregistry: "https://hub.docker.com/"它应该是第一个元数据部分,而不是spec.template元数据部分。
https://stackoverflow.com/questions/71137291
复制相似问题