Kubernetes中Ingress资源的错误信息"no matches for kind 'Ingress' in version 'networking.k8s.io/v1'"。这个错误通常出现在尝试创建或应用Ingress资源时,而Kubernetes集群的API服务器不支持该版本的Ingress资源。
在Kubernetes的版本1.19及之后,Ingress资源从networking.k8s.io/v1beta1
版本迁移到了networking.k8s.io/v1
版本。如果你的集群版本低于1.19,你会看到这个错误,因为在这些版本中,Ingress资源位于networking.k8s.io/v1beta1
。
解决这个问题的方法有两种:
- 升级你的Kubernetes集群到1.19或更高版本。根据你使用的Kubernetes发行版和环境,升级过程可能会有所不同。一般来说,你可以参考你使用的Kubernetes发行版的官方文档进行升级。
- 如果你不能或不想升级你的Kubernetes集群,你可以修改你的Ingress资源文件,将apiVersion设置为
networking.k8s.io/v1beta1
。但是请注意,这可能会使你无法使用Ingress资源的一些新特性和功能。
假设你正在使用traefik作为你的Ingress控制器,并且你的Ingress资源文件名为04-whoami-ingress.yaml
,你可以通过以下命令修改它:
sed -i 's|networking.k8s.io/v1|networking.k8s.io/v1beta1|g' 04-whoami-ingress.yaml |
然后,你可以再次尝试应用你的Ingress资源:
kubectl apply -f 04-whoami-ingress.yaml |
希望这个答案可以帮助你解决问题!如果你还有其他问题,欢迎继续提问。