Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes在同一子域部署两个微服务,导致频繁和随机的404错误_Kubernetes_Jhipster_Istio_Rancher - Fatal编程技术网

Kubernetes在同一子域部署两个微服务,导致频繁和随机的404错误

Kubernetes在同一子域部署两个微服务,导致频繁和随机的404错误,kubernetes,jhipster,istio,rancher,Kubernetes,Jhipster,Istio,Rancher,我们有一个Kubernetes部署,由一个nodejs前端和一个nginx后端组成。我们发现这两种部署在Kubernetes中各自都可以正常工作,但是当它们都部署时,发送到前端的请求几乎有50%的时间返回404 假设我们的虚拟服务存在问题是很自然的,但事实似乎并非如此,因为vs/gateway的部署不足以引起问题。另外,如果我们在后端部署一个不同的、不相关的映像,那么前端将继续工作,不会出现404错误 该应用程序最初是通过JHipster生成的,我们手动分离前端和后端组件。前端是nodejs,后

我们有一个Kubernetes部署,由一个nodejs前端和一个nginx后端组成。我们发现这两种部署在Kubernetes中各自都可以正常工作,但是当它们都部署时,发送到前端的请求几乎有50%的时间返回404

假设我们的虚拟服务存在问题是很自然的,但事实似乎并非如此,因为vs/gateway的部署不足以引起问题。另外,如果我们在后端部署一个不同的、不相关的映像,那么前端将继续工作,不会出现404错误

该应用程序最初是通过JHipster生成的,我们手动分离前端和后端组件。前端是nodejs,后端是Java/nginx。该应用程序在本地工作,但在k8s部署中失败

此外,我们的库伯内特斯部署在Rancher

实验似乎表明它与后端部署中的某些内容有关,因此我将我们的backend deployment.yaml包括在下面:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ourapp-be-custom-mount
spec:
  revisionHistoryLimit: 3
  replicas: 1
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  template:
    spec:
      containers:
        - name: ourapp-be-custom-mount
          image: "IMAGE_SET_BY_OVERLAYS_KUSTOMIZATION"
          envFrom:
            - configMapRef:
                name: ourapp-be-config
          ports:
          - name: http
            containerPort: 8080
          resources:
            limits:
              cpu: "0.5"
              memory: "2048Mi"
            requests:
              cpu: "0.1"
              memory: "64Mi"
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - mountPath: /usr/share/h2/data
              name: ourapp-db-vol01-custom-mount

          securityContext:
            runAsNonRoot: true
            runAsUser: 1000
      imagePullSecrets:
        - name: regcred-nexus
      volumes:
      - name: ourapp-db-vol01-custom-mount
        persistentVolumeClaim:
          claimName: ourapp-db-pvc-volume01-custom-mount
      terminationGracePeriodSeconds: 30

每个服务都需要指向不同的应用程序。您可以在Rancher中验证每个服务指向不同的应用程序。检查你的yaml。如果使用Kustomize,commonLabels:应用程序可能会让你绊倒。确保它指向前端和后端的不同应用。

您将前端与java后端分开,这很好。不幸的是,您在运行
npm start
时使用的webpack dev服务器并不打算用于生产,您的包应该部署到像nginx这样的web服务器或JHipster网关。需要说明的是,您的前端不是nodejs,它使用nodejs开发工具。您是否检查了后端使用的资源?请显示相关的服务、入口和前端资源定义。很难从提供的信息中推断出任何东西。