通过curl调用 k8s service api 无法修改 spec.port
Posted fengjian1585
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过curl调用 k8s service api 无法修改 spec.port相关的知识,希望对你有一定的参考价值。
由于使用模板替换生成的 yaml 文件,端口号deployment service 是一致的,但是在发布时不能确定jar应用的端口号(真不配合,没办法)
造成要修改端口号,deployment 替换模板后直接调用 curl PUT 可以更新,但是service 出现问题,
前期是删除sevice,造成 nignx 或 其他服务调用,出现服务无法识别, 解决办法:
1. 强制规范 service port全部为80端口, targetport 是服务端口,targetport 可以通过curl 修改。
2. curl 调用 service api patch方法,修改ports.name 名字,在修改端口号
使用更新的yaml文件
[root@harbor ~]# cat nginx-service.yaml spec: ports: - port: 81 protocol: TCP targetPort: 80 selector: app: nginx type: NodePort
curl --cacert /data/deployment_git/ca.pem --cert /data/deployment_git/admin.pem --key /data/deployment_git/admin-key.pem --insecure -H \'Content-Type: application/strategic-merge-patch+json\' -X PATCH --data \' {"spec":{"ports":[{"name":"nginx","port":80,"protocol":"UDP","targetPort":8080}]}}\' \'https://172.16.230.51:6443/api/v1/namespaces/default/services/nginx\' 注意 name: ”nginx1” 不能相同,否则包冲突错误 curl --cacert /data/deployment_git/ca.pem --cert /data/deployment_git/admin.pem --key /data/deployment_git/admin-key.pem --insecure -H \'Content-Type: application/stategic-merge-patch+json\' -X PATCH --data \' {"spec":{"ports":[{"name":"nginx1","port":81,"protocol":"UDP","targetPort":80}]}}\' \'https://172.16.230.51:6443/api/v1/namespaces/default/services/nginx\'
未进行测试。。。。。。
以上是关于通过curl调用 k8s service api 无法修改 spec.port的主要内容,如果未能解决你的问题,请参考以下文章