resource deployments/my-app缺少kubectl所需的kubectl.kubernetes.io/last-applied-configuration注解

wrrgggsh  于 12个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(193)

我试图实现使用kubectl apply -f没有这个警告:

PS C:\Users\me> kubectl apply -f manifest.yml
Warning: resource deployments/myapp is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.

字符串
我尝试通过使用此清单文件修复此问题:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cool-app
  labels:
    app: cool-app
spec:
  replicas: 1
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  selector:
    matchLabels:
      app: cool-app
  template:
    metadata:
      labels:
        app: cool-app
    spec:
      containers:
        - name: cool-app
          image: cool:latest
          imagePullPolicy: Always


但是运气不好,还是收到这个警告。我怎么修复它?

hjzp0vay

hjzp0vay1#

出现警告是因为这是你第一次创建资源。因此,kubectl无法使用annotation来确定在客户端需要修补和更改的内容。
你总是会在本地得到警告,除非你从k8 s中得到当前呈现的清单,并从API中得到正确的注解,更改它并重新应用它,或者自己添加一个空注解到清单中。
比如说

annotations:
  kubectl.kubernetes.io/last-applied-configuration: ""

字符串
另一种解决方案是不使用客户端应用,而是让k8应用清单服务器端。所以你自己不需要注解。这是最近推荐的。
所以你可以用kubectl apply -f $yourmanifest.yaml --server-side
有关服务器端应用的更多信息,请查看文档here

相关问题