k8s中更新deployment和service时提示409冲突
项目组在自动化更新service的yaml时,遇到如下报错提示必须指定metadata.resourceVersion字段,查看k8s官网中更新service的示例如下:$ curl -X PUT -H 'Content-Type: application/yaml' --data 'apiVersion: v1kind: Servicemetadata:name: deployment-exam
·
项目组在自动化更新service的yaml时,遇到如下报错
提示必须指定metadata.resourceVersion字段,查看k8s官网中更新service的示例如下:
$ curl -X PUT -H 'Content-Type: application/yaml' --data '
apiVersion: v1
kind: Service
metadata:
name: deployment-example
resourceVersion: "2205995"
spec:
clusterIP: 10.183.250.161
ports:
- name: http
nodePort: 32417
port: 80
protocol: TCP
targetPort: 8080
selector:
app: nginx
sessionAffinity: None
type: LoadBalancer
' http://127.0.0.1:8001/api/v1/namespaces/default/services/deployment-example
因此更新的时候必须带上resourceVersion字段,另外该字段的值必须是当前正在运行的最新值,否则会提示如下错误,调接口会报409冲突。
如图,提示更换成最新的版本。注意,更新失败也会导致resourceVersion的值变化。
尝试更新deployment的yaml时发现,请求体中不论含不含resourceVersion字段均可以更新成功,为了避免错误,建议尽量不要带reourceVersion字段。
更多推荐
已为社区贡献16条内容
所有评论(0)