Minikube部署VirtualServer报错,AWS EKS可正常部署该如何解决?
问题原因
该报错和你使用的Minikube、Helm、kubectl版本没有直接关联,核心是VirtualServer属于NGINX官方Ingress Controller的自定义扩展资源(CRD),并非Kubernetes原生内置资源类型。你此前使用的AWS EKS集群预先部署了对应版本的NGINX官方Ingress Controller,所以可以正常识别该资源,而本地Minikube集群默认没有安装对应组件,因此无法识别资源配置。
解决方案
方案一:安装NGINX官方Ingress Controller(适配现有配置)
- 执行Helm命令安装NGINX官方Ingress Controller,安装过程会自动注册
VirtualServer等所需CRD:helm upgrade --install ingress-nginx ingress-nginx --repo https://helm.nginx.com/stable --namespace ingress-nginx --create-namespace - 等待组件部署完成,执行以下命令验证Pod状态,所有Pod状态为Running即可:
kubectl get pods -n ingress-nginx - 验证CRD注册结果,有正常输出即为注册成功:
kubectl get crd | grep virtualservers.k8s.nginx.org - 重新执行k8dash的Helm部署命令即可正常创建资源。
方案二:改用Kubernetes原生Ingress暴露服务(无需安装额外CRD)
如果不需要使用VirtualServer的扩展能力,可以修改k8dash的Helm Values配置,关闭VirtualServer的生成开关,开启原生Ingress配置,使用Kubernetes自带的Ingress资源暴露服务即可,无需额外安装CRD。
内容的提问来源于stack exchange,提问作者arsaphone
相关产品推荐
相关产品推荐

