使用 yaml 而不是 kubectl edit 更新 istio-ingressgateway

Update istio-ingressgateway with yaml instead of kubectl edit

我从书中测试了基于 tcp 的服务...

为了完成这个任务,我需要暴露31400端口...

我发现我可以使用这个命令来做到这一点:KUBE_EDITOR="nano" kubectl edit svc istio-ingressgateway -n istio-system

然后手动输入:

我按预期工作,但如何使用 yaml 和 kubectl 应用相同的任务?

感谢您的帮助,

WCDR

1 - 获取当前配置:

$ kubectl get -n istio-system service istio-ingressgateway -o yaml

输出看起来像:

apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {...,"kind":"Service",..."app":"istio-ingressgateway"...
  ...
  labels:
    app: istio-ingressgateway
    ...
    spec:
    ...
    ports:
     ...
     >>>> insert block here <<<<
    selector:
    ...
...

2 - 使用 yq 或手动对其进行修补...

https://github.com/mikefarah/yq

3 - 应用更改:

 $ kubectl apply -n istio-system -f - <<EOF
    apiVersion: v1
    kind: Service
    ...
    EOF

输出必须是:

service/istio-ingressgateway configured

享受...