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}]'
在 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}]'