应用Deployment与Service时出现kubectl注解缺失警告的排查求助
问题描述
应用包含Deployment、Service及ConfigMap的Kubernetes配置文件时,收到两条警告,提示相关资源缺少kubectl.kubernetes.io/last-applied-configuration注解。已确认配置使用test命名空间,ConfigMap名称为nginx-config,Pod运行正常,咨询该警告产生的原因。
警告信息
警告:资源deployments/nginx缺少kubectl apply所需的kubectl.kubernetes.io/last-applied-configuration注解。kubectl apply仅应用于通过kubectl create --save-config或kubectl apply声明式创建的资源。缺失的注解将被自动修补。
deployment.apps/nginx已配置
警告:资源services/nginx缺少kubectl apply所需的kubectl.kubernetes.io/last-applied-configuration注解。kubectl apply仅应用于通过kubectl create --save-config或kubectl apply声明式创建的资源。缺失的注解将被自动修补。
配置代码
apiVersion: v1 kind: ConfigMap metadata: name: nginx-config namespace: test data: nginx.conf: ' events { } http { server { listen 80; location / { return 200 "Hello world 2024!"; } } } ' --- apiVersion: apps/v1 kind: Deployment metadata: name: nginx namespace: test spec: selector: matchLabels: app: nginx strategy: type: Recreate template: metadata: labels: app: nginx spec: containers: - image: nginx:latest #- image: registry.gitlab.peruprop.com/root/freetest:1.0 name: nginx ports: - containerPort: 80 name: web volumeMounts: - name: config-vol mountPath: /etc/nginx/ volumes: - name: config-vol configMap: name: nginx-config items: - key: nginx.conf path: nginx.conf --- apiVersion: v1 kind: Service metadata: labels: app: nginx name: nginx namespace: test spec: ports: - name: 80-80 port: 80 protocol: TCP targetPort: 80 selector: app: nginx type: ClusterIP
原因解析
这个警告的核心和Kubernetes声明式管理机制直接相关,具体原因如下:
- 注解的核心作用:
kubectl.kubernetes.io/last-applied-configuration是kubectl apply用来追踪资源最后一次应用的完整配置的注解。当你用kubectl apply更新资源时,它会对比这个注解里的旧配置和当前提交的新配置,只变更有差异的部分,实现增量更新。 - 资源创建方式不匹配:出现警告说明你的Deployment和Service不是通过
kubectl apply或kubectl create --save-config创建的——比如之前可能用kubectl create -f(不带--save-config)、UI工具或者其他方式创建过同名资源,导致这些资源没有带上这个关键注解。现在你用kubectl apply来管理已有资源,工具会自动补上注解并给出提示。 - ConfigMap无警告的原因:要么这个ConfigMap是第一次用
kubectl apply创建的,要么之前创建时已经带上了该注解,所以不会触发警告。 - 警告不影响运行:正如你观察到的,Pod运行完全正常,这个警告只是提示工具在自动修复注解,后续再用
kubectl apply更新这些资源时,就不会再出现该警告。
内容的提问来源于stack exchange,提问作者DDave
相关产品推荐
相关产品推荐

