溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Kubernetes安裝sonarqube的教程

發(fā)布時間:2020-06-18 16:46:47 來源:億速云 閱讀:815 作者:元一 欄目:云計算

SonarQube 是一個用于代碼質(zhì)量管理的開源平臺,用于管理源代碼的質(zhì)量。 通過插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十幾種編程語言的代碼質(zhì)量管理與檢測。

1、總覽

SonarQube平臺由4個組件組成:Kubernetes安裝sonarqube的教程

Kubernetes安裝sonarqube的教程

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

  • Web服務器,供開發(fā)人員,管理人員瀏覽高質(zhì)量的快照并配置SonarQube實例

  • 基于Elasticsearch的Search Server從UI進行后退搜索

  • Compute Engine服務器,負責處理代碼分析報告并將其保存在SonarQube數(shù)據(jù)庫中

一個SonarQube數(shù)據(jù)庫要存儲:

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

  • 項目,視圖等的質(zhì)量快照。

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

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

2、架構

以下架構顯示了SonarQube如何與其他ALM工具集成以及使用SonarQube的各種組件的位置。Kubernetes安裝sonarqube的教程

Kubernetes安裝sonarqube的教程

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

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

  3. Continuous Integration Server會觸發(fā)自動生成,并執(zhí)行運行SonarQube分析所需的SonarScanner。

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

  5. SonarQube Server處理分析報告結果并將其存儲在SonarQube數(shù)據(jù)庫中,并在UI中顯示結果。

  6. 開發(fā)人員通過SonarQube UI審查,評論,挑戰(zhàn)他們的問題,以管理和減少技術債務。

  7. 經(jīng)理從分析中接收報告。Ops使用API自動執(zhí)行配置并從SonarQube提取數(shù)據(jù)。運維人員使用JMX監(jiān)視SonarQube Server。

3、關于服務器

  • SonarQube平臺不能具有多個SonarQube服務器(盡管該服務器可以作為集群安裝)和一個SonarQube數(shù)據(jù)庫。

  • 為了獲得最佳性能,應將每個組件(服務器,數(shù)據(jù)庫,掃描儀)安裝在單獨的計算機上,并且服務器計算機應專用。

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

  • 所有機器必須時間同步。

  • SonarQube服務器和SonarQube數(shù)據(jù)庫必須位于同一網(wǎng)絡中

  • SonarScanners不需要與SonarQube Server位于同一網(wǎng)絡上。

  • 沒有溝通之間SonarScannersSonarQube數(shù)據(jù)庫。

4、安裝

前提環(huán)境需要k8s集群和helm

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

設置用戶和密碼

Kubernetes安裝sonarqube的教程

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'

再次執(zhí)行安裝

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

Kubernetes安裝sonarqube的教程

依次修改以上文件。

vim sonarqube/templates/deployment.yaml

Kubernetes安裝sonarqube的教程

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

Kubernetes安裝sonarqube的教程

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

Kubernetes安裝sonarqube的教程

再次執(zhí)行安裝Kubernetes安裝sonarqube的教程

pod需要請求pv,這里使用hostpath

Kubernetes安裝sonarqube的教程

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狀態(tài)

Kubernetes安裝sonarqube的教程

完美結束!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI