首页 > 解决方案 > OpenShift 补丁服务端口号

问题描述

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

$ 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
...

patch 命令中是否有一些拼写错误/语法错误?

标签: openshiftopenshift-client-tools

解决方案


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

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

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


推荐阅读