suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Die VueJS-Anwendung lädt die JS-Datei nicht in Kubernetes

Ich habe eine VueJS-Anwendung, die in einem Docker-Image in Kubernetes ausgeführt wird. Sobald mehrere Replikate/Pods vorhanden sind, können Clients die Anwendung nicht laden – viele (aber nicht alle) Aufrufe zum Laden von Dateien geben 404 zurück.

Ich denke, das liegt daran, dass sie an einen anderen Pod gesendet werden als den Pod, der die Anfrage ursprünglich bearbeitet hat.

Wie kann dieses Problem gelöst werden?

Das ist mein Setup:

Hier ist ein Beispielaufruf, der 404 zurückgibt: Holen Sie sich https://myapp.mydomain.com/js/chunk-d18c0136.7a3f0664.js

Das ist mein Leistungsverzeichnis:

apiVersion: v1
kind: Service
metadata:
  name: ${CI_PROJECT_NAME}-${CI_BUILD_REF_SLUG_SHORT}
  labels:
    app: ${CI_ENVIRONMENT_SLUG}
spec:
  ports:
    - port: 80
      targetPort: 8080
      protocol: TCP
      name: ${CI_PROJECT_NAME}-${CI_BUILD_REF_SLUG}
  selector:
    app: ${CI_ENVIRONMENT_SLUG}

Dies ist meine Nginx-Eintragsspezifikation:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ${CI_PROJECT_NAME}-${CI_BUILD_REF_SLUG_SHORT}
  labels:
    app: ${CI_ENVIRONMENT_SLUG}
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
spec:
  defaultBackend:
    service:
      name: ${CI_PROJECT_NAME}-${CI_BUILD_REF_SLUG_SHORT}
      port:
        number: 80
  rules:
    - host: ${CI_APPLICATION_HOST}
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: ${CI_PROJECT_NAME}-${CI_BUILD_REF_SLUG_SHORT}
                port:
                  number: 80

Um dieses Problem zu umgehen, konfigurieren wir die Firewall so, dass sie direkt mit nur einem Pod kommuniziert oder nur ein Replikat ausführt.

Das Setzen von Session-Sticky-Cookies auf Nginx-Ingress funktioniert nicht.

P粉936509635P粉936509635241 Tage vor462

Antworte allen(1)Ich werde antworten

  • P粉403549616

    P粉4035496162024-03-30 09:31:57

    抱歉,这完全是在转移注意力。

    最终,问题是外部代理路由中的拼写错误 - 六个节点中只有两个节点配置正确且可访问。这就是为什么“大多数”请求返回 404 - 找不到节点。

    Antwort
    0
  • StornierenAntwort