【发布时间】:2021-01-22 22:36:59
【问题描述】:
我有一个 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
提前谢谢你
【问题讨论】:
标签: docker nginx kubernetes devops minikube