这个错误提示是由于yaml文件中的backend服务端口字段不正确导致的。在Kubernetes 1.21版本之后,Ingress API版本已经更新为 networking.k8s.io/v1,并且“port”字段已经更改为“number”。
如果您使用较新版本的Kubernetes集群,则需要将yaml文件中的backend服务端口字段更改为新的语法。
以下是修改后的示例YAML文件:
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: myapp:v1
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-test-ingress
spec:
rules:
- host : test.example.com
http :
paths :
- path : /
pathType : Prefix
backend :
service :
name : nginx-svc
port :
number : 80
请注意,在此示例中,我将Ingress API版本更改为networking.k8s.io/v1,并将backend服务端口字段更改为”number”。此外,我还添加了新的规则(rules)语法,包括host、http等字段。请根据您的具体需要修改Ingress资源的规则和设置,并确保与Kubernetes集群API版本兼容。