繁体   English   中英

使用 ingress-nginx 在 kube.netes 中提供 static 个资产

[英]Serving static assets in kubernetes with ingress-nginx

我有一个 Pod,其中包含服务于 vuejs(手动 SSR)构建的 NodeJS 项目的图像,并且我有一个入口 controller 以将主机与连接到 Pod 的服务相匹配,如下所示:

在此处输入图像描述

我面临的问题是没有提供 static 资产(CSS、JS 和图像),因此他们需要一个“服务器”来处理这些文件。

我试图让 Pod 安装两个容器,NodeJS + Nginx 容器并将 static 文件复制到 Nginx /var/www/html 并使用nginx location rule从那里为它们提供服务,但将其投入生产看起来有点矫枉过正。

我很好奇最好的方法是如何做到这一点,也许使用 Ingress controller 规则/注释? 或者我想念的某种方式?

我的 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

我的部署看起来像:

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 之类的东西提供您的 static 内容,这些东西尽可能靠近客户端,更适合这种用例。 为此使用 K8s 是矫枉过正的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM