kubernetes 无法在k8s中使用kustomization覆盖端口值

3qpi33ja  于 11个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(95)

我在做一些练习。其中一个测试用例我试图覆盖端口值的值。当这样做时,得到一个错误,因为replace操作不适用:doc缺少关键字:/spec/ports/port:缺少值。

patches:
  - target:
      kind: Service
      name: cdq-ui-service
    patch: |
      - op: replace
        path: /spec/ports/0/port
        value: 8080

同时在Kubernetes中使用补丁应用kustomization。该路径将覆盖端口值。

nxagd54h

nxagd54h1#

您正在尝试修改/spec/ports/port,但Kubernetes服务中没有这样的路径。回想一下,一个服务看起来像这样:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app.kubernetes.io/name: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376

路径/spec/portslist,不是dictionary。您可以修补/spec/ports/0/port

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- service.yaml

patches:
  - target:
      kind: Service
      name: my-service
    patch: |
      - op: replace
        path: /spec/ports/0/port
        value: 8080

这将导致:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 9376
  selector:
    app.kubernetes.io/name: MyApp

相关问题