如何解决KubernetesOpenShift?kubectloc-OpenShift CLI`patch`返回错误:无法将数组解组为map [string] interface类型的Go值
我尝试patch
和service
(添加端口声明):
kind: Service
apiVersion: v1
metadata:
name: istio-ingressgateway
namespace: istio-system
labels:
app: istio-ingressgateway
istio: ingressgateway
release: istio
spec:
ports:
- name: status-port
protocol: TCP
port: 15021
targetPort: 15021
nodePort: 30805
- name: http2
protocol: TCP
port: 80
targetPort: 8080
nodePort: 32130
- name: https
protocol: TCP
port: 443
targetPort: 8443
nodePort: 30720
- name: tls
protocol: TCP
port: 15443
targetPort: 15443
nodePort: 31202
selector:
app: istio-ingressgateway
istio: ingressgateway
clusterIP: 172.30.62.239
type: LoadBalancer
sessionAffinity: None
externalTrafficPolicy: Cluster
status:
loadBalancer: {}
使用kubectl
或oc
patch
命令
kubectl patch service istio-ingressgateway -n istio-system --patch - <<EOF
spec:
ports:
- name: gw
protocol: TCP
port: 3080
targetPort: 3080
nodePort: 31230
EOF
,但出现错误
Error from server (BadRequest): json: cannot unmarshal array into Go value of type map[string]interface {}
??在后台,k8s/openshift
使用GoLang
来解析yaml
?我试图在go
中找到相同的解决方案-失败...
怎么了?
解决方法
尝试使用json
到patch
oc patch service/simple-server -p \
'{ "spec": { "ports": [ { "name": "gw","protocol": "TCP","port": 1234,"targetPort": 1234 } ] } }'