You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Minikube环境下如何通过单一Kubernetes端点暴露React前端与Python后端

Minikube环境前后端统一入口最优方案:Ingress路由

方案选型说明

你当前的场景是前端静态资源由Nginx提供,接口请求从用户浏览器发起,需要统一对外端点,最优方案是使用Kubernetes Ingress作为统一接入层,基于路径规则分发请求:

  • 路径前缀为/的请求转发到前端fe-service,返回React静态资源
  • 路径前缀为/api的请求转发到后端be-service,处理业务接口
    这种方案天然解决浏览器跨域问题,无需修改前后端业务逻辑,符合K8s原生设计规范。

具体实施步骤

1. 开启Minikube Ingress控制器

Minikube默认没有启用Ingress控制器,先执行命令开启:

minikube addons enable ingress

等待控制器Pod启动完成,可以用kubectl get pods -n ingress-nginx验证状态。

2. 编写Ingress配置文件

新建app-ingress.yaml,内容如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    # 如果后端接口没有/api前缀,添加这个注解重写路径,去掉/api前缀再转发到后端
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
  - host: myapp.local # 自定义的本地访问域名
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: fe-service
            port:
              number: 80
      - path: /api(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: be-service
            port:
              number: 5000

执行命令应用配置:

kubectl apply -f app-ingress.yaml

3. 配置本地Hosts映射

先获取Minikube的IP地址:

minikube ip

修改本地Hosts文件(Linux/macOS路径为/etc/hosts,Windows路径为C:\Windows\System32\drivers\etc\hosts),添加如下映射:

[你获取到的Minikube IP] myapp.local

4. 验证访问

  • 浏览器访问http://myapp.local即可访问React前端页面
  • 前端接口请求直接写/api/[接口路径]即可,无需携带额外域名端口,会自动转发到后端Python服务

注意事项

  • 如果不想配置Hosts,也可以删除Ingress配置里的host字段,直接通过Minikube IP访问
  • 如果后端接口本身就带/api前缀,不需要路径重写,可以删除Ingress注解里的rewrite-target配置,同时把路径规则改为/api

内容的提问来源于stack exchange,提问作者joebegborg07

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:45:02