【问题标题】:How to access SonarQube with Kubernetes Proxy?如何使用 Kubernetes 代理访问 SonarQube?
【发布时间】:2018-11-07 09:51:56
【问题描述】:

我想将 SonarQube 部署到 Kubernetes 集群。 SonarQube webapp 应该只能通过 Kubernetes 代理访问。 当我尝试使用地址访问前端时:

http://localhost:8001/api/v1/namespaces/sonar/services/sonar:80/proxy/sonar/

我看到了 sonarqube 加载屏幕。但是 webapp 尝试通过对地址的 GET 请求来访问 api

http://localhost:8001/sonar/api/l10n/index?locale=de-DE

这当然是不可访问的。

有没有办法设置服务器基址?

我目前的部署:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: sonarqube
spec:
  replicas: 1
  template:
    metadata:
      name: sonarqube
      labels:
        name: sonarqube
    spec:
      containers:
        - image: sonarqube:latest
          args:
            - -Dsonar.web.context=/sonar
          name: sonarqube
          env:
            - name: SONARQUBE_JDBC_PASSWORD
              value: sonar
            - name: SONARQUBE_JDBC_URL
              value: jdbc:postgresql://sonar-postgres:5432/sonar
          ports:
            - containerPort: 9000
              name: sonarqube

编辑:webapp 正确加载样式和网站图标。

我的服务定义:

apiVersion: v1
kind: Service
metadata:
  labels:
    name: sonar
  name: sonar
spec:
  ports:
    - name: http
      port: 80
      targetPort: 9000
      protocol: TCP
      name: sonarport
  selector:
    name: sonarqube

【问题讨论】:

  • 能否请您发布声纳部署的服务定义?
  • 没问题

标签: docker kubernetes sonarqube


【解决方案1】:

Kubernetes 代理并不是访问集群内的 SonarQube Web 应用程序的最佳方式。

您可以在服务器上的sonar.properties 文件中的sonar.core.serverBaseURL 属性中设置一个基本URL,但我不确定它是否对您有帮助。无论如何,这是一个不稳定的配置,并且在很多情况下都会中断 - 例如,从另一台主机访问。

如果您想要额外的保护,我强烈建议您使用Ingress 和一些身份验证(尝试检查External Authentication 以获得Nginx Ingress)。此外,您可以在本地计算机上使用Port Forwarding

【讨论】:

    猜你喜欢
    • 2017-12-23
    • 2017-10-16
    • 1970-01-01
    • 2021-09-10
    • 2019-05-23
    • 2022-08-12
    • 1970-01-01
    • 2020-07-01
    • 2017-04-04
    相关资源
    最近更新 更多