簡體   English   中英

Kube.netes apiVersion:.networking.k8s.io/v1 與 K8 Ingress 的問題

[英]Issue with Kubernetes apiVersion: networking.k8s.io/v1 with K8 Ingress

我們正在使用 the.networking.k8s.io/v1beta1,我們嘗試通過以下更改移動到 .networking.k8s.io/v1,我的 ingress.YAML 代碼現在看起來像這樣。

版本:“v1.20.15-gke.2500”

當我應用“kubectl apply”時,我看到了以下錯誤,有人可以幫助我為什么會遇到這個錯誤嗎?

error: error validating "ingress.yaml": error validating data: [ValidationError(Ingress.spec.rules[0].http.paths[0].backend.service.port): invalid type for io.k8s.api.networking.v1.ServiceBackendPort: got "integer", expected "map", ValidationError(Ingress.spec.rules[0].http.paths[1].backend.service.port): invalid type for io.k8s.api.networking.v1.ServiceBackendPort: got "integer", expected "map", ValidationError(Ingress.spec.rules[0].http.paths[2].backend.service.port): invalid type for io.k8s.api.networking.v1.ServiceBackendPort: got "integer", expected "map"; if you choose to ignore these errors, turn validation off with --validate=false

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ***
  annotations:
    kubernetes.io/ingress.global-static-ip-name: ****
    networking.gke.io/managed-certificates: *****
spec:
  rules:
    - host: ***
      http:
        paths:
          - path: /****/*
            pathType: Prefix
            backend:
                service:
                 name: *********
                 port: 50000
          - path: /****/*
            pathType: Prefix
            backend:
                service:
                  name: *********
                  port: 50000
          - path: /****/*
            pathType: Prefix
            backend:
                service:
                 name: *********
                 port: 50000
          - path: /****/*
            pathType: Prefix
            backend:
                service:
                 name: *********
                 port: 50000
          - path: /****/*
            pathType: Prefix
            backend:
                service:
                 name: *********
                 port: 50000
          - path: /****/*
            pathType: Prefix
            backend:
                service:
                  name: *********
                  port: 50000
          - path: /****/*
            pathType: Prefix
            backend:
                service:
                  name: *********
                  port: 50000
          - path: /****/*
            pathType: Prefix
            backend:
                service:
                  name: *********
                  port: 50000
    - host: *********
      http:
        paths:
          - path: /****/*
            pathType: Prefix
            backend:
                service:
                  name: *********
                  port: 50000
          - path: /****/*
            pathType: Prefix
            backend:
                 service:
                   name: *********
                   port: 50000
          - path: /****/*
            pathType: Prefix
            backend:
                service:
                  name: *********
                  port: 50000

您正在使用舊格式 YAML 和 API networking.k8s.io/v1 ,它現在已更新。

您可以在這里閱讀更多內容: https://kube.netes.io/docs/concepts/services.networking/ingress/#the-ingress-resource

服務端口變更

            backend:
              service:
                name: test
                port:
                  number: 80

參考 YAML 塊:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
spec:
  ingressClassName: class-name
  rules:
  - http:
      paths:
      - path: /testpath
        pathType: Prefix
        backend:
          service:
            name: test
            port:
              number: 80

您對networking.k8s.io/v1 Ingress 使用了不正確的語法。 錯誤是說backend.service.port不再是 integer,它需要 map。

apiVersion:.networking.k8s.io/v1beta1中, backend部分如下所示:

          backend:
            serviceName: service1
            servicePort: 80

現在在apiVersion:.networking.k8s.io/v1中:

        backend:
          service:
            name: test
            port:
              number: 80

樣本 YAML

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx-example
  rules:
  - http:
      paths:
      - path: /testpath
        pathType: Prefix
        backend:
          service:
            name: test
            port:
              number: 80

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM