Kubernetes Nginx入口服务无法提供静态文件

时间:2020-07-01 10:41:53

标签: kubernetes kubernetes-ingress nginx-ingress

我们已经为下面的部署创建了服务和入口文件。 但是,当我们尝试通过入口控制器访问应用程序时,我们发现无法将静态文件(例如JS和CSS)加载到网站上。除此之外,当我们尝试使用NodePort时,我们已经看到该应用程序已完美加载。

service.yaml:

---
apiVersion: v1
kind: Service
metadata:
  name: karel-service-1
  labels:
    app: karel-deployment-1
spec:
  selector:
    app: karel-deployment-1
  type: NodePort
  ports:
  - port: 3000
    targetPort: 3000
    nodePort:

ingress.yaml:

---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: karel-ingress-1
  annotations:
    nginx.ingress.kubernetes.io/add-base-url: 'true'
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: "/"
spec:
  rules:
  - host: www.kareldeployment.com
    http:
      paths:
      - path: "/1"
        backend:
          serviceName: karel-service-1
          servicePort: 3000

如何使用入口控制器访问网站的所有静态内容?

1 个答案:

答案 0 :(得分:1)

入口控制器似乎在端口80上侦听(这就是加载HTML页面的原因),但是它们具有指向端口3000的链接(这就是所有与NodePort一起工作的原因)。换句话说,我怀疑您必须修改页面以不使用硬编码端口。