OpenShift 补丁服务端口号

OpenShift patch service port number

在 OpenShift 中,我尝试使用此命令通过 OpenShift 客户端可执行文件修补服务端口号,但我收到此错误消息。

$ oc patch svc fabric-boot-sample -p '{"spec":{"ports":{"port":8090}}}'
Error from server: cannot restore slice from map

补丁针对 yaml 服务描述符的这一部分。

$ oc get svc/fabric-boot-sample -o yaml
...
spec:
  clusterIP: 172.30.48.46
  ports:
  - name: 8090-tcp
    port: 8090
    protocol: TCP
    targetPort: 8090
...

补丁命令中是否有一些typo/syntax错误?

问题是您定位的 ports 是一个列表。因此,您需要指定要修补列表中的哪个元素。

如果您确定列表中只有一个元素,您可以 运行:

oc patch svc fabric-boot-sample --type=json -p '[{"op": "replace", "path": "/spec/ports/0/port", "value":9999}]'