k8s安裝sonarqube

一、總覽

SonarQube平臺由4個組件組成:SonarQube平臺。
mysql

architecture-scanning.png

  1. 一臺SonarQube Server啓動3個主要過程:git

  • Web服務器,供開發人員,管理人員瀏覽高質量的快照並配置SonarQube實例sql

  • 基於Elasticsearch的Search Server從UI進行後退搜索數據庫

  • Compute Engine服務器,負責處理代碼分析報告並將其保存在SonarQube數據庫中vim

一個SonarQube數據庫要存儲:api

  • SonarQube實例的配置(安全性,插件設置等)安全

  • 項目,視圖等的質量快照。bash

服務器上安裝了多個SonarQube插件,可能包括語言,SCM,集成,身份驗證和管理插件服務器

在構建/持續集成服務器上運行一個或多個SonarScanner,以分析項目網絡

二、架構

如下架構顯示了SonarQube如何與其餘ALM工具集成以及使用SonarQube的各類組件的位置。SonarQube集成。

architecture-integrate.png

  1. 開發人員在其IDE中進行編碼,並使用SonarLint運行本地分析。

  2. 開發人員將他們的代碼放入他們最喜歡的SCM中:git,SVN,TFVC等。

  3. Continuous Integration Server會觸發自動生成,並執行運行SonarQube分析所需的SonarScanner。

  4. 分析報告將發送到SonarQube服務器進行處理。

  5. SonarQube Server處理分析報告結果並將其存儲在SonarQube數據庫中,並在UI中顯示結果。

  6. 開發人員經過SonarQube UI審查,評論,挑戰他們的問題,以管理和減小技術債務。

  7. 經理從分析中接收報告。Ops使用API自動執行配置並從SonarQube提取數據。運維人員使用JMX監視SonarQube Server。

三、關於服務器

  • SonarQube平臺不能具備多個SonarQube服務器(儘管該服務器能夠做爲集羣安裝)和一個SonarQube數據庫。

  • 爲了得到最佳性能,應將每一個組件(服務器,數據庫,掃描儀)安裝在單獨的計算機上,而且服務器計算機應專用。

  • SonarScanners經過添加機器進行擴展。

  • 全部機器必須時間同步。

  • SonarQube服務器和SonarQube數據庫必須位於同一網絡中

  • SonarScanners不須要與SonarQube Server位於同一網絡上。

  • 沒有溝通之間SonarScannersSonarQube數據庫

四、安裝

前提環境須要k8s集羣和helm

image-20191226223315113.png

helm pull stable/sonarqube
tar xvf sonarqube-3.2.7.tgz
vim sonarqube/values.yam

設置用戶和密碼

image-20191226223702365.png

helm install sonarqube ./sonarqube

#報錯緣由是個人集羣是1.16版本了
Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1"

grep -irl "extensions/v1beta1" sonarqube | grep deployment

grep -irl "extensions/v1beta1" sonarqube | grep deploy | xargs sed -i 's#extensions/v1beta1#apps/v1#g'

再次執行安裝

helm install sonarqube ./sonarqube

Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: 
ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec

grep -irl "apps/v1" sonarqube | grep deployment

image-20191226224502628.png

依次修改以上文件。

vim sonarqube/templates/deployment.yaml

image-20191226224706142.png

vim sonarqube/charts/postgresql/templates/deployment.yaml

image-20191226224831497.png

vim sonarqube/charts/mysql/templates/deployment.yaml

image-20191226224933183.png

再次執行安裝image-20191226225015906.png

pod須要請求pv,這裏使用hostpath

image-20191226225113200.png

cat pv/pv1.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: sonarqube-pv1
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
  -  ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: /helm/sonarqube/pv1

稍等會兒就能看到pod狀態

image-20191226225808478.png

完美結束!

相關文章
相關標籤/搜索