首页 > 解决方案 > 下一个 js 无法使用 kubernetes 集群中的默认下一个 js 路由路由到子文件夹中的页面

问题描述

我正在关注微服务教程,我们使用 docker 和 kubernetes 来提供服务。其中一个服务是下一个客户端应用程序,在应用程序中我们使用默认的下一个路由规则,其中我们在 pages 文件夹中有页面,我们在页面文件夹中创建了一个名为 auth 的子文件夹,并添加了另一个页面 signup.js。像这样

文件夹结构

我的客户端服务的 yaml 配置文件是这样的

apiVersion: apps/v1
kind: Deployment
metadata:
  name: client-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: client
  template:
    metadata:
      labels:
        app: client
    spec:
      containers:
      - name: client
        image: dtemb965/client
---
apiVersion: v1
kind: Service
metadata: 
  name: client-srv
spec:
  selector:
    app: client
  ports:
    - name: client
      protocol: TCP
      port: 3000
      targetPort: 3000  

      



入口配置文件是这样的:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations: 
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
  rules:
    - host: ticketing.dev
      http:
        paths: 
          - path: /api/users/?(.*)
            backend:
              serviceName: auth-srv
              servicePort: 3000
          - path: /?(.*)
            backend:
              serviceName: client-srv
              servicePort: 3000
                   

并且正在使用 skaffold 来管理在本地运行服务。skaffold 配置文件是这样的

apiVersion: skaffold/v2alpha3
kind: Config
deploy:
  kubectl:
    manifests:
      - ./infra/k8s/*
build:
  local:
    push: false
  artifacts: 
    - image: dtemb965/auth
      context: auth
      docker:
        dockerfile: Dockerfile
      sync:
        manual:
          - src: 'src/**/*.ts' 
            dest: .
    - image: dtemb965/client
      context: client
      docker:
        dockerfile: Dockerfile
      sync:
        manual:
          - src: '**/*.js'
            dest: .       


当我在容器外运行应用程序时,即没有 docker 和 kubernetes,所有路由都工作得很好但是当我在 kubernetes 集群中运行它并尝试使用链接导航到子文件夹 auth 中的页面https://ticketing.dev/auth/signup

我得到一个 404 not found 页面。有什么问题?

注意:auth 文件夹之外的所有其他页面在集群内部或外部运行时都可以正常工作

标签: javascriptdockerkubernetesnext.jsskaffold

解决方案


推荐阅读