[英]Serving static assets in kubernetes with ingress-nginx
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:我有一个 Pod,其中包含服务于 vuejs(手动 SSR)构建的 NodeJS 项目的图像,并且我有一个入口 controller 以将主机与连接到 Pod 的服务相匹配,如下所示:
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.我面临的问题是没有提供 static 资产(CSS、JS 和图像),因此他们需要一个“服务器”来处理这些文件。
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.我试图让 Pod 安装两个容器,NodeJS + Nginx 容器并将 static 文件复制到 Nginx /var/www/html 并使用nginx location rule
从那里为它们提供服务,但将其投入生产看起来有点矫枉过正。
I'm curious how the best way to do this, maybe using Ingress controller rules/annotations?我很好奇最好的方法是如何做到这一点,也许使用 Ingress controller 规则/注释? or some way that I am missing?或者我想念的某种方式?
My Ingress controller looks like:我的 Ingress controller 看起来像:
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先感谢您
I would suggest serving your static content from something like a bucket or CDN, something as close to the client as possible that is better suited for this use case.我建议从存储桶或 CDN 之类的东西提供您的 static 内容,这些东西尽可能靠近客户端,更适合这种用例。 Using K8s for this is overkill.为此使用 K8s 是矫枉过正的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.