如何解决使用Ingress-nginx在kubernetes中提供静态资产
我有一个Pod,其中包含服务于vuejs构建的NodeJS项目的图像(手动SSR) 而且我有一个入口控制器,用于将主机与连接到Pod的服务进行匹配,如下所示:
我面临的问题是不提供静态资产(CSS,JS和图像),因此它们需要一个“服务器”来处理这些文件。
我试图让Pod挂载两个容器,即NodeJS + Nginx容器,然后将静态文件复制到Nginx / var / www / html中,并使用nginx location rule
从那里提供服务,但这似乎有点过头了在生产中。
我很好奇如何做到这一点的最佳方法,也许使用Ingress控制器规则/注释?还是我想念的某种方式?
我的Ingress控制器如下:
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
我的部署如下:
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
提前谢谢
解决方法
我建议您通过存储桶或CDN之类的东西来提供您的静态内容,这些东西尽可能靠近客户端,更适合此用例。为此使用K8实在是过分了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。