错误:未找到名称的资源映射:“ingress-srv”名称空间:“ingress-srv.yaml”中的“”:版本“networking.k8s.io/v1beta1”中没有与类型“Ingress”匹配,确保首先安装 CRD
我是 Kubernetes 新手,我在 minikube 上设置入口 nginx 并且安装成功,但是当我尝试使用 kubectl apply -f filename 运行时,它给出了上述错误
这是代码文件名:ingress-srv.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-srv
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: posts.com
http:
paths:
- path: /posts
pathType: Prefix
backend:
serviceName: posts-clusterip-srv
servicePort: 4000
Run Code Online (Sandbox Code Playgroud)
Dav*_*sby 32
清单中指定的资源类型networking.k8s.io/v1beta1 Ingress
已在 Kubernetes v1.22 中删除并替换为networking.k8s.io/v1 Ingress
(有关详细信息,请参阅弃用指南)。如果您的集群的 Kubernetes 服务器版本是 1.22 或更高(我怀疑是),尝试从清单创建 Ingress 资源将导致您收到的错误。
您可以使用命令检查集群的 Kubernetes 服务器版本(正如 Kamol Hasan 指出的那样)kubectl version --short
。
如果版本确实是 1.22 或更高版本,您需要修改 YAML 文件,使其格式在新版本的 API 中有效。此拉取请求总结了格式差异。对于您的情况,ingress-srv.yaml
需要更改为:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-srv
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: posts.com
http:
paths:
- path: /posts
pathType: Prefix
backend:
service:
name: posts-clusterip-srv
port:
number: 4000
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
62900 次 |
最近记录: |