I have a Pod that contains an image of a NodeJS project serving a build of vuejs (Manual SSR) And I have an ingress controller to match a host to the service connecting to the Pod as follows:
The Problem I'm facing is that static assets (CSS, JS and images) aren't served, so they need a "server" that handles these files.
I tried to have the Pod mounts two containers, NodeJS + Nginx container and copy the static file in Nginx /var/www/html and serve them from there using nginx location rule but it looks like an overkill to put that in production.
I'm curious how the best way to do this, maybe using Ingress controller rules/annotations? or some way that I am missing?
My Ingress controller looks like:
apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: ingress-nginx annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: test.ssr.local http: paths: - path: / backend: serviceName: service-internal-ssr servicePort: 8080 My Deployment looks like:
apiVersion: apps/v1 kind: Deployment metadata: name: ssr spec: selector: matchLabels: app: ssr template: metadata: labels: app: ssr spec: - name: ssr image: ... resources: limits: cpu: 0.5 memory: 1000Mi requests: cpu: 0.2 memory: 500Mi ports: - name: app-port containerPort: 2055 --- apiVersion: v1 kind: Service metadata: name: service-internal-ssr spec: type: ClusterIP selector: app: ssr ports: - port: 8080 targetPort: 2055 Thank you in advance
