Maison  >  Questions et réponses  >  le corps du texte

L'application VueJS ne charge pas le fichier js dans Kubernetes

J'ai une application VueJS exécutée dans une image Docker dans Kubernetes. Une fois que plusieurs répliques/pods existent, les clients ne peuvent pas charger l'application - de nombreux appels (mais pas tous) pour charger des fichiers renvoient 404.

Je pense que c'est parce qu'ils sont envoyés vers un pod différent de celui qui a initialement traité la demande.

Comment résoudre ce problème ?

Voici ma configuration :

Voici un exemple d'appel qui renvoie 404 : Obtenez https://myapp.mydomain.com/js/chunk-d18c0136.7a3f0664.js

Voici mes spécifications de service :

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}

Voici ma spécification d'entrée nginx :

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

Pour contourner le problème, nous configurons le pare-feu pour qu'il communique directement avec un seul Pod ou n'exécute qu'une seule réplique.

La configuration des "cookies" persistants de session sur l'entrée nginx ne fonctionne pas.

P粉936509635P粉936509635225 Il y a quelques jours447

répondre à tous(1)je répondrai

  • P粉403549616

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

    Désolé, c'est une fausse piste.

    En fin de compte, le problème était une faute de frappe dans le routage du proxy externe : seuls deux des six nœuds étaient configurés correctement et accessibles. C'est pourquoi "la plupart" des requêtes renvoient 404 - Node Not Found.

    répondre
    0
  • Annulerrépondre