首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Minikube入口控制器未将请求正确转发到已部署的服务

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

Stack Overflow用户
提问于 2020-04-23 16:07:15
回答 1查看 888关注 0票数 0

我在minikube集群中有下面的设置

  1. SpringBoot应用程序部署在小型集群

中

名称: opaapp和containerPort: 9999

  1. 服务用于公开服务应用程序,如下所示:

代码语言:javascript
复制
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. 创建了一个组成控制器和入口资源,如下所示:

代码语言:javascript
复制
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

我有如下所示的安装主机文件

代码语言:javascript
复制
172.17.0.2    opaapp.info

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

http://opaapp.info:32746/api/ping:我要拿回回复

但如果我试图访问

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

无法在配置上找到错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 16:29:17

nginx入口控制器是通过NodePort 32746公开的,这意味着nginx不监听主机(172.17.0.2)网络中的端口80/443,而在与主机网络不同的Kubernetes网络上,nginx监听端口80/443。因此,通过http://opaapp.info/api/ping访问它是行不通的。为了使它按照您期望的方式工作,需要使用hostNetwork: true选项部署nginx入口控制器,以便它可以在主机(172.17.0.2)网络中直接侦听80/443端口,这可以按照讨论的here进行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61391806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档