Minikube入口控制器未将请求正确转发到已部署的服务



我在minikube集群中有以下设置

  1. 部署在minikube集群中的SpringBoot应用程序

名称:opaapp和容器端口:9999

  1. 服务用于公开服务应用程序,如下所示
apiVersion: v1
kind: Service
metadata:
name: opaapp
namespace: default
labels:
app: opaapp
spec:
selector:
app: opaapp
ports:
- name: http
port: 9999
targetPort: 9999
type: NodePort
  1. 创建了一个ingreass控制器和ingress资源,如下所示
apiVersion: networking.k8s.io/v1beta1 # for versions before 1.14 use extensions/v1beta1
kind: Ingress
metadata:
name: opaapp-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: opaapp.info
http:
paths:
- path: /
backend:
serviceName: opaapp
servicePort: 9999

我有设置主机文件如下

172.17.0.2    opaapp.info

现在,如果我访问下面的服务

http://opaapp.info:32746/api/ping:我正在回复

但如果我尝试以身份访问

http://opaapp.info/api/ping:获取404错误

无法在配置上找到错误

nginx ingress控制器已通过NodePort32746暴露,这意味着nginx没有在主机(172.17.0.2(网络中的80/443端口上侦听,而是在Kubernetes pod网络上的80/443口上侦听,这与主机网络不同。因此,通过http://opaapp.info/api/ping访问它是不起作用的。为了使其按您预期的方式工作,需要使用hostNetwork: true选项部署nginx入口控制器,以便它可以直接在主机(172.17.0.2(网络中的80/443端口上侦听,这可以按照此处讨论的方式进行。

最新更新