如何解决Minikube IngressNginx控制器不起作用
我有一个部署到minikube的spring boot应用程序。该应用程序的获取映射公开为-
@GetMapping("/ping")
public String get(){
return "Hello !!";
}
创建并应用了部署和服务。两者都很好,demo-app
容器也在集群中运行。
部署清单
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-app-deployment
labels:
app: demo-app
spec:
selector:
matchLabels:
app: demo-app
replicas: 1
template:
metadata:
labels:
app: demo-app
spec:
imagePullSecrets:
- name: regcred
containers:
- name: demo-app
image: <<image>>
imagePullPolicy: Always
ports:
- containerPort: 8080
服务清单
apiVersion: v1
kind: Service
metadata:
name: demo-app-service
spec:
selector:
app: demo-app
ports:
- protocol: TCP
port: 8080
targetPort: 8080
最后一步-
- 使用
kubectl create -f ingress.yaml
在minikube集群中创建了Ingress对象 - 并将
minikube ip
映射到Windows主机文件中的此入口主机demo.com
入口清单
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo-app-ingress
spec:
rules:
- host: demo.com
http:
paths:
- path: /demo
backend:
serviceName: demo-app-service
servicePort: 8080
在尝试通过 http://demo.com/demo/ping 从浏览器访问该应用时,它显示了whiteLabel错误页面
请帮助。
解决方法
首先发生的事情:您指定希望在访问URI http://demo.com/demo时访问service demo-app-service。那部分工作正常。这里的问题是服务上调用哪个路径?即URI http://demo.com/demo/ping将在您的服务中请求端点/ demo / ping。 我猜想您的ping服务可以通过端点http:// localhost:8080 / ping在本地访问。 如果是这种情况,您要做的就是在入口处添加注释,以从请求中删除/ demo路径:
nginx.ingress.kubernetes.io/rewrite-target: /
请参阅此处以供参考:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#rewrite
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。