Kubernetes Kubectl错误:对象已被修改;请将更改应用到最新版本,然后重试

Kubernetes Kubectl错误:对象已被修改;请将更改应用到最新版本,然后重试,kubernetes,kubectl,Kubernetes,Kubectl,尝试应用修补程序时出现以下错误: core@dgoutam22-1-coreos-5760 ~ $ kubectl apply -f ads-central-configuration.yaml Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply Error from server (Conflict): error wh

尝试应用修补程序时出现以下错误:

core@dgoutam22-1-coreos-5760 ~ $ kubectl apply -f ads-central-configuration.yaml
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
Error from server (Conflict): error when applying patch:
{"data":{"default":"{\"dedicated_redis_cluster\": {\"nodes\": [{\"host\": \"192.168.1.94\", \"port\": 6379}]}}"},"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"data\":{\"default\":\"{\\\"dedicated_redis_cluster\\\": {\\\"nodes\\\": [{\\\"host\\\": \\\"192.168.1.94\\\", \\\"port\\\": 6379}]}}\"},\"kind\":\"ConfigMap\",\"metadata\":{\"annotations\":{},\"creationTimestamp\":\"2018-06-27T07:19:13Z\",\"labels\":{\"acp-app\":\"acp-discovery-service\",\"version\":\"1\"},\"name\":\"ads-central-configuration\",\"namespace\":\"acp-system\",\"resourceVersion\":\"1109832\",\"selfLink\":\"/api/v1/namespaces/acp-system/configmaps/ads-central-configuration\",\"uid\":\"64901676-79da-11e8-bd65-fa163eaa7a28\"}}\n"},"creationTimestamp":"2018-06-27T07:19:13Z","resourceVersion":"1109832","uid":"64901676-79da-11e8-bd65-fa163eaa7a28"}}
to:
&{0xc4200bb380 0xc420356230 acp-system ads-central-configuration ads-central-configuration.yaml 0xc42000c970 4434 false}
**for: "ads-central-configuration.yaml": Operation cannot be fulfilled on configmaps "ads-central-configuration": the object has been modified; please apply your changes to the latest version and try again**
core@dgoutam22-1-coreos-5760 ~ $ 

您的yaml配置似乎是从生成的内容复制粘贴的,因此包含诸如
creationTimestamp
之类的字段,这些字段不属于声明性配置文件


检查你的yaml并把它清理干净。删除特定于实例的内容。您的最终yaml应该足够简单,您可以很容易地理解它。

我能够在我的测试环境中重现这个问题。复制步骤:

  • 从Kubernetes引擎>工作负载>部署创建部署
  • 输入应用程序名称、命名空间和标签
  • 选择群集或创建新群集
  • 您可以在此处查看YAML文件,以下是示例:

    ---
    apiVersion: "apps/v1"
    kind: "Deployment"
    metadata:
      name: "nginx-1"
      namespace: "default"
      labels:
        app: "nginx-1"
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: "nginx-1"
      template:
        metadata:
          labels:
            app: "nginx-1"
        spec:
          containers:
          - name: "nginx"
            image: "nginx:latest"
    ---
    apiVersion: "autoscaling/v2beta1"
    kind: "HorizontalPodAutoscaler"
    metadata:
      name: "nginx-1-hpa"
      namespace: "default"
      labels:
        app: "nginx-1"
    spec:
      scaleTargetRef:
        kind: "Deployment"
        name: "nginx-1"
        apiVersion: "apps/v1"
      minReplicas: 1
      maxReplicas: 5
      metrics:
      - type: "Resource"
        resource:
          name: "cpu"
          targetAverageUtilization: 80
    
    部署后,如果您转到Kubernetes引擎>工作负载>nginx-1(单击它)

    a、 )您将获得部署详细信息(概述、详细信息、修订历史记录、事件、YAML)
    b、 )单击YAML并从YAML选项卡复制内容
    c、 )创建新的YAML文件,粘贴内容并保存文件
    d、 )现在,如果运行命令
    $kubectl apply-f newyamlfile.yaml
    ,它将显示以下错误:

    Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
    Error from server (Conflict): error when applying patch:
    {"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{\"deployment.kubernetes.io/revision\":\"1\"},\"creationTimestamp\":\"2019-09-17T21:34:39Z\",\"generation\":1,\"labels\":{\"app\":\"nginx-1\"},\"name\":\"nginx-1\",\"namespace\":\"default\",\"resourceVersion\":\"218884\",\"selfLink\":\"/apis/apps/v1/namespaces/default/deployments/nginx-1\",\"uid\":\"f41c5b6f-d992-11e9-9adc-42010a80023b\"},\"spec\":{\"progressDeadlineSeconds\":600,\"replicas\":3,\"revisionHistoryLimit\":10,\"selector\":{\"matchLabels\":{\"app\":\"nginx-1\"}},\"strategy\":{\"rollingUpdate\":{\"maxSurge\":\"25%\",\"maxUnavailable\":\"25%\"},\"type\":\"RollingUpdate\"},\"template\":{\"metadata\":{\"creationTimestamp\":null,\"labels\":{\"app\":\"nginx-1\"}},\"spec\":{\"containers\":[{\"image\":\"nginx:latest\",\"imagePullPolicy\":\"Always\",\"name\":\"nginx\",\"resources\":{},\"terminationMessagePath\":\"/dev/termination-log\",\"terminationMessagePolicy\":\"File\"}],\"dnsPolicy\":\"ClusterFirst\",\"restartPolicy\":\"Always\",\"schedulerName\":\"default-scheduler\",\"securityContext\":{},\"terminationGracePeriodSeconds\":30}}},\"status\":{\"availableReplicas\":3,\"conditions\":[{\"lastTransitionTime\":\"2019-09-17T21:34:47Z\",\"lastUpdateTime\":\"2019-09-17T21:34:47Z\",\"message\":\"Deployment has minimum availability.\",\"reason\":\"MinimumReplicasAvailable\",\"status\":\"True\",\"type\":\"Available\"},{\"lastTransitionTime\":\"2019-09-17T21:34:39Z\",\"lastUpdateTime\":\"2019-09-17T21:34:47Z\",\"message\":\"ReplicaSet \\\"nginx-1-7b4bb7fbf8\\\" has successfully progressed.\",\"reason\":\"NewReplicaSetAvailable\",\"status\":\"True\",\"type\":\"Progressing\"}],\"observedGeneration\":1,\"readyReplicas\":3,\"replicas\":3,\"updatedReplicas\":3}}\n"},"generation":1,"resourceVersion":"218884"},"spec":{"replicas":3},"status":{"availableReplicas":3,"observedGeneration":1,"readyReplicas":3,"replicas":3,"updatedReplicas":3}}
    to:
    Resource: "apps/v1, Resource=deployments", GroupVersionKind: "apps/v1, Kind=Deployment"
    Name: "nginx-1", Namespace: "default"
    Object: &{map["apiVersion":"apps/v1" "metadata":map["name":"nginx-1" "namespace":"default" "selfLink":"/apis/apps/v1/namespaces/default/deployments/nginx-1" "uid":"f41c5b6f-d992-11e9-9adc-42010a80023b" "generation":'\x02' "labels":map["app":"nginx-1"] "annotations":map["deployment.kubernetes.io/revision":"1"] "resourceVersion":"219951" "creationTimestamp":"2019-09-17T21:34:39Z"] "spec":map["replicas":'\x01' "selector":map["matchLabels":map["app":"nginx-1"]] "template":map["metadata":map["labels":map["app":"nginx-1"] "creationTimestamp":<nil>] "spec":map["containers":[map["imagePullPolicy":"Always" "name":"nginx" "image":"nginx:latest" "resources":map[] "terminationMessagePath":"/dev/termination-log" "terminationMessagePolicy":"File"]] "restartPolicy":"Always" "terminationGracePeriodSeconds":'\x1e' "dnsPolicy":"ClusterFirst" "securityContext":map[] "schedulerName":"default-scheduler"]] "strategy":map["type":"RollingUpdate" "rollingUpdate":map["maxUnavailable":"25%" "maxSurge":"25%"]] "revisionHistoryLimit":'\n' "progressDeadlineSeconds":'\u0258'] "status":map["observedGeneration":'\x02' "replicas":'\x01' "updatedReplicas":'\x01' "readyReplicas":'\x01' "availableReplicas":'\x01' "conditions":[map["message":"Deployment has minimum availability." "type":"Available" "status":"True" "lastUpdateTime":"2019-09-17T21:34:47Z" "lastTransitionTime":"2019-09-17T21:34:47Z" "reason":"MinimumReplicasAvailable"] map["lastTransitionTime":"2019-09-17T21:34:39Z" "reason":"NewReplicaSetAvailable" "message":"ReplicaSet \"nginx-1-7b4bb7fbf8\" has successfully progressed." "type":"Progressing" "status":"True" "lastUpdateTime":"2019-09-17T21:34:47Z"]]] "kind":"Deployment"]}
    for: "test.yaml": Operation cannot be fulfilled on deployments.apps "nginx-1": the object has been modified; please apply your changes to the latest version and try again
    
    警告:kubectl apply应用于kubectl create--save config或kubectl apply创建的资源
    服务器错误(冲突):应用修补程序时出错:
    {“元数据”:{“注释”:{“kubectl.kubernetes.io/last applicated configuration”:“{”apiVersion\”:“apps/v1\”,“kind\”:“Deployment\”,“metadata\”:{“annotations\”:{“Deployment.kubernetes.io/revision\”:“1\”,“creationTimestamp\:“2019-09-17T21:34:39Z\,“generation\”,“generation\”,“generation\”:“labels\”:{“app\”:“app\”:“nginx\”,“ngi-1\”,“ngi-name\”,“ngi-namespace\”,“nx1\”默认\“,\“resourceVersion\”:\“218884\”,“selfLink\”:“/apis/apps/v1/namespaces/default/deployments/nginx-1\”,“uid\”:“f41c5b6f-d992-11e9-9adc-42010a80023b\”,“spec\”:{“progressDeadlineSeconds\”:600,\“副本\“:3,\“修订历史限制”:10,\“选择器\”:{“匹配标签”:“应用程序\:”nginx-1:“{“25%\”,“maxUnavailable\”:“25%\”,“type\”:“RollingUpdate\”,“template\”:{“metadata\”:{“creationTimestamp\”:null,\“labels\”:{“App1\”:{“spec\”:{“containers\”:[{“image\”:“nginx:latest\”,“imagePullPolicy\”:“Always\”,“name\”:“nginx\”,“resources\”,“resources\”:“:{“ResterminationLog\”,“Restermination\”,“,“/”终止消息路径:{terminationMessagePolicy\“:”文件\“,”dnsPolicy\“:”集群优先\“,”重启策略\“:”始终\“,”调度程序名\“:”默认调度程序\“,”安全上下文\“:”:{},\”终止GracePeriodSeconds \“:30}}},\”状态\“:{”可用复制程序\“:3,\”条件\“:[{”最后过渡时间\“:”2019-09-17T21:34:47Z \“,”更新时间\-2019消息\“:\”部署具有最低可用性。\”、\“原因\“:\”最小可复制时间\“、\”状态\“:\”真实\“、\”类型\“:\”可用\“,{\”lastTransitionTime\”:\“2019-09-17T21:34:39Z\”、\“lastUpdateTime\”:“2019-09-17T21:34:47Z\”、\“消息\“:”复制集\“nginx-1-7BB7FBF8\”已成功进行。\”、“新原因\\”复制集\\”\“,”status\“:”True\”,”type\“:”Progressing\”,”observedgegeneration\”:1、”readyReplicas\”:3、”replicas\”:3}\n},“generation”:1,“resourceVersion”:“218884”},“spec”:{“replicas”:3,“状态”:{“availableReplicas”:3,“observedgegeneration”:1,“readyReplicas”:3,“replicas”:3,“replicas”:3,“updatedReplicas”:3}
    致:
    资源:“应用程序/v1,资源=部署”,GroupVersionKind:“应用程序/v1,种类=部署”
    名称:“nginx-1”,命名空间:“默认”
    对象:&{map[“apiVersion”:“apps/v1”“metadata”:map[“name”:“nginx-1”“namespace”:“default”“selfLink”:“/api/apps/v1/namespaces/default/deployments/nginx-1”“uid”:“f41c5b6f-d992-11e9-9adc-42010a80023b”“generation”:“\x02”“labels”:map[“app:“nginx-1”“annotations”:map[“deployment.kubernetes.io/revision”:“1”]“resourceVersion”:“219951”creationTimestamp:“2019-09-17T21:34:39Z”]“spec”:映射[“副本”:“\x01”“选择器”:映射[“匹配标签”:映射[“应用程序”:“nginx-1”]“模板”:映射[“元数据”:映射[“标签”:映射[“应用程序”:“nginx-1”]“creationTimestamp”:“spec”:映射[“容器”:[映射[“imagePullPolicy”:“始终”“名称”:“nginx”“图像”:“nginx:最新的”“资源”:映射[]”“终止消息路径”:/开发/终止日志“terminationMessagePolicy”:“File”]]“restartPolicy”:“Always”“terminationGracePeriodSeconds”:“\x1e”“dnsPolicy”:“ClusterFirst”“securityContext”:映射[]“schedulerName”:“default scheduler”]]“strategy”:映射[“类型”:“RollingUpdate”“RollingUpdate”:映射[“maxUnavailable”:“25%”“maxSurge”:“25%”]]“revisionHistoryLimit”:“\n”progressDeadlineSeconds“'\u0258']”状态“:”映射[“observedGeneration”:“\x02'”副本“:”\x01'”更新的副本“:”\x01'”readyReplicas:“\x01'”可用的副本“:”\x01'”条件“:[映射[”消息“:”部署具有最低可用性“,”类型“:”可用的“,”状态“:”True“,”lastUpdateTime:”2019-09-17T21:34:47Z“lastTransitionTime”:”2019-09-17T21:34:47Z“原因”:“MinimumReplicasAvailable”]map[“lastTransitionTime”:“2019-09-17T21:34:39Z”“原因”:“NewReplicaSetAvailable”“消息”:“ReplicaSet\”nginx-1-7b4bb7fbf8\”已成功进行。“类型”:“进行中的”“状态”:“True”“lastUpdateTime:“2019-09-17T21:34:47Z”]]“种类”:“部署”]
    对于:“test.yaml”:无法在deployments.apps“nginx-1”上执行操作:对象已被修改;请将更改应用到最新版本,然后重试
    
    要解决此问题,您需要找到确切的yaml文件,然后根据需要对其进行编辑,然后可以运行
    $kubectl apply-f nginx-1.yaml


    希望这些信息对您有帮助。

    您可能已经编辑了相同的导出部署文件

    1-尝试通过以下方式重新导出:

    kubectl get deployment <DEPLOYMENT-NAME> -o yaml > deployment-file.yaml
    
    或:

    您可能希望直接编辑展开。请使用:

    kubectl编辑部署-o yaml

    如果需要,请更改默认编辑器
    kubectl apply -f deployment-file.yaml
    
      creationTimestamp:   
      resourceVersion:  
      selfLink:   
      uid: