通过 Nginx Ingress 加载资产以在 Kubernetes 上部署 SonarQube 时遇到问题

问题描述 投票:0回答:1

我目前面临使用 Nginx Ingress Controller 在 Kubernetes 集群上为 SonarQube 部署提供资产的问题。通过浏览器访问 SonarQube UI 时,资产(CSS、JS 文件)无法正确加载,我在浏览器控制台中收到以下错误:

Refused to apply style from 'https://internal.domain.com/js/outDLYDOPRS.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

以下是我的设置的简要概述:

  • SonarQube 部署为名为 sonarqube-sonarqube 的服务,在我的 Kubernetes 集群中的端口 9000 上运行。
  • 我已经设置了一个 Nginx Ingress 资源来将流量路由到 sonarqube-sonarqube 服务。
  • Ingress 资源配置有规则,用于将不同路径的流量路由到 sonarqube-sonarqube 服务。
# MY INGRESS FILE 
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: sonarqube-ingress
  namespace: sonarqube
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  ingressClassName: nginx
  rules:
    - host: internal.domain.com
      http:
        paths:
          - pathType: Prefix
            path: "/"
            backend:
              service:
                name: sonarqube-sonarqube
                port:
                  number: 9000

尽管进行了这些配置,资产仍未按预期加载。我已经验证了服务的状态,检查了 Ingress Controller 日志,并查看了 Ingress 资源状态,但无法识别问题。

其他详情

  • 头盔版本v3.12.3
  • Kubectl版本v1.27
  • Sonarqube Helm Chat 版本 sonarqube-8.0.2+754
  • Sonarqube 应用程序版本 9.9.2

任何人都可以提供有关如何排查和解决此资产加载问题的指导或建议吗?任何帮助或指示将不胜感激!

预先感谢您的协助!

kubernetes sonarqube kubernetes-ingress
1个回答
0
投票

看起来 CSS 和 JS 文件访问返回了 404 html 页面。您可以通过在浏览器中直接访问 css 路径来确认这一点。

我的建议是在需要之前不要使用重写注释选项,因为这可能会将 js 和 CSS 的路径重写回根“/”

试试这个

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: sonarqube-ingress
  namespace: sonarqube
spec:
  ingressClassName: nginx
  rules:
    - host: internal.domain.com
      http:
        paths:
          - pathType: Prefix
            path: "/"
            backend:
              service:
                name: sonarqube-sonarqube
                port:
                  number: 9000

如果这对您有帮助,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.