[英]AWS Load Balancer Controller: unable to recognize "": no matches for kind "IngressClass" in version "networking.k8s.io/v1"
[英]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.