【问题标题】:Serving a static react application behind a Kubernetes Ingress在 Kubernetes Ingress 后面为静态反应应用程序提供服务
【发布时间】:2020-04-29 04:38:11
【问题描述】:

我目前正在尝试将 React SPA 设置为 kubernetes 上的部署/服务。就像我目前正在运行的后端服务一样,我希望能够在 Ingress 后面点击它。

因为 SPA 只是一堆静态文件,所以我通过 nginx 公开这些文件。在部署中运行的容器安装了 nginx 来提供静态资产(docker 文件中的nginx -g daemon off)。如果我使用 LoadBalancer 公开部署,这完全可以正常工作,但如果我使用 Ingress,我不会得到任何响应。在入口后面提供静态资产时,有什么特别的事情需要考虑吗?或任何已知的参考/资源这样做?

这是我的 ingress.yml:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: web-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: web-static-ip
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - host: api.my-domain.com
    http:
      paths:
        - backend:
            serviceName: web-backend-service
            servicePort: 80
  - host: app.my-domain.com
    http:
      paths:
        - backend:
            serviceName: web-frontend-service
            servicePort: 80

【问题讨论】:

标签: reactjs nginx kubernetes create-react-app kubernetes-ingress


【解决方案1】:

您需要在集群上部署入口控制器,入口资源才能真正生效。这是 Nginx 入口控制器的installation guide。提供静态内容的示例入口如下所示。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: web-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/add-base-url: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: api.my-domain.com
    http:
      paths:
        - backend:
            serviceName: web-backend-service
            servicePort: 80
  - host: app.my-domain.com
    http:
      paths:
        - backend:
            serviceName: web-frontend-service
            servicePort: 80

这是一个guide,关于如何使用 Nginx ingress 在 Minikube 上提供 Angular 8 应用程序。

【讨论】:

  • class: "nginx" 的要求吗?我当前引用的注释是否因为我没有使用而不起作用?这是我的 ingress.yml:gist.github.com/jay-khatri/cde5ab10bdfbaa1a6c5f52943e215181
  • 如果您有多个入口控制器,则需要 nginx,因为基于该注释,nginx 入口控制器将启动
  • 另外你需要在你的集群上安装 nginx 入口控制器。只有入口类型的资源没有控制器是行不通的
猜你喜欢
  • 2020-10-18
  • 2021-01-22
  • 1970-01-01
  • 2023-03-15
  • 2016-04-13
  • 2021-10-19
  • 2019-03-05
  • 1970-01-01
  • 2021-01-17
相关资源
最近更新 更多