请选择 进入手机版 | 继续访问电脑版

sonarqube部署安装

所在版块: DevOps 2021-09-23 15:57 [复制链接] 查看: 112|回复: 0
本帖最后由 何威群-时速云 于 2021-9-23 15:57 编辑

镜像准备

postgres:11.6
sonarqube:9.0.0-community
busybox:1.27.1

k8s里安装postgres
pvc.yaml

  1. apiVersion: v1
  2. kind: PersistentVolumeClaim
  3. metadata:
  4.   name: sonar-mysql
  5.   namespace: demo
  6. spec:
  7.   accessModes:
  8.   - ReadWriteMany
  9.   resources:
  10.     requests:
  11.       storage: 1Gi
  12.   storageClassName: nfs
  13.   volumeMode: Filesystem
复制代码

deployment.yaml

  1. kind: Deployment
  2. apiVersion: apps/v1
  3. metadata:
  4.   name: sonar-db
  5.   namespace: demo
  6.   labels:
  7.     app: sonar-db
  8.     name: sonar-db
  9. spec:
  10.   replicas: 1
  11.   selector:
  12.     matchLabels:
  13.       app: sonar-db
  14.       name: sonar-db
  15.   template:
  16.     metadata:
  17.       labels:
  18.         app: sonar-db
  19.         name: sonar-db
  20.     spec:
  21.       volumes:
  22.         - name: sonar-mysql
  23.           persistentVolumeClaim:
  24.             claimName: sonar-mysql
  25.       containers:
  26.         - name: postgres
  27.           image: 'postgres:11.6'
  28.           ports:
  29.             - containerPort: 5432
  30.               protocol: TCP
  31.           env:
  32.             - name: POSTGRES_DB
  33.               value: sonardb
  34.             - name: POSTGRES_USER
  35.               value: sonar
  36.             - name: POSTGRES_PASSWORD
  37.               value: sonar
  38.           resources:
  39.             limits:
  40.               cpu: '1'
  41.               memory: 2Gi
  42.             requests:
  43.               cpu: 800m
  44.               memory: 2Gi
  45.           volumeMounts:
  46.             - name: sonar-mysql
  47.               mountPath: /var/lib/postgresql/data
  48.           imagePullPolicy: IfNotPresent
  49.       restartPolicy: Always
复制代码

service.yaml

  1. kind: Service
  2. apiVersion: v1
  3. metadata:
  4.   name: sonar-db
  5.   namespace: demo
  6.   labels:
  7.     name: sonar-db
  8. spec:
  9.   ports:
  10.     - name: tcp-port-0
  11.       protocol: TCP
  12.       port: 5432
  13.       targetPort: 5432
  14.   selector:
  15.     name: sonar-db
  16.   type: ClusterIP
复制代码

k8s里安装sonarqube

pvc.yaml

  1. apiVersion: v1
  2. kind: PersistentVolumeClaim
  3. metadata:
  4.   name: sonar-data
  5.   namespace: demo
  6. spec:
  7.   accessModes:
  8.   - ReadWriteMany
  9.   resources:
  10.     requests:
  11.       storage: 1Gi
  12.   storageClassName: nfs
  13.   volumeMode: Filesystem
  14. ---
  15. apiVersion: v1
  16. kind: PersistentVolumeClaim
  17. metadata:
  18.   name: sonar-extensions
  19.   namespace: demo
  20. spec:
  21.   accessModes:
  22.   - ReadWriteMany
  23.   resources:
  24.     requests:
  25.       storage: 1Gi
  26.   storageClassName: nfs
  27.   volumeMode: Filesystem
复制代码

deployment.yaml

  1. kind: Deployment
  2. apiVersion: apps/v1
  3. metadata:
  4.   name: sonarqube
  5.   namespace: demo
  6.   labels:
  7.     app: sonarqube
  8.     name: sonarqube
  9. spec:
  10.   replicas: 1
  11.   selector:
  12.     matchLabels:
  13.       app: sonarqube
  14.       name: sonarqube
  15.   template:
  16.     metadata:
  17.       labels:
  18.         app: sonarqube
  19.         name: sonarqube
  20.     spec:
  21.       volumes:
  22.         - name: sonar-extensions
  23.           persistentVolumeClaim:
  24.             claimName: sonar-extensions
  25.         - name: sonar-data
  26.           persistentVolumeClaim:
  27.             claimName: sonar-data
  28.       initContainers:
  29.         - name: init-sysctl
  30.           image: 'busybox:1.27.1'
  31.           command:   # elasticsearch用户拥有的内存权限太小,es启动会报错,此命令保证es正常启动
  32.             - sysctl
  33.             - '-w'
  34.             - vm.max_map_count=262144
  35.           ports:
  36.             - containerPort: 80
  37.               protocol: TCP
  38.           resources:
  39.             limits:
  40.               cpu: '1'
  41.               memory: 2Gi
  42.             requests:
  43.               cpu: 800m
  44.               memory: 2Gi
  45.           terminationMessagePath: /dev/termination-log
  46.           terminationMessagePolicy: File
  47.           imagePullPolicy: IfNotPresent
  48.           securityContext:   # 配置特权
  49.             privileged: true
  50.       containers:
  51.         - name: sonarqube
  52.           image: 'sonarqube:9.0.0-community'
  53.           ports:
  54.             - containerPort: 9000
  55.               protocol: TCP
  56.           env:
  57.             - name: SONARQUBE_JDBC_USERNAME
  58.               value: sonar
  59.             - name: SONARQUBE_JDBC_PASSWORD
  60.               value: sonar
  61.             - name: SONARQUBE_JDBC_URL
  62.               value: 'jdbc:postgresql://sonar-db.demo:5432/sonardb'
  63.           resources:
  64.             limits:
  65.               cpu: '1'
  66.               memory: 4Gi
  67.             requests:
  68.               cpu: 800m
  69.               memory: 2Gi
  70.           volumeMounts:
  71.             - name: sonar-extensions
  72.               mountPath: /opt/sonarqube/extensions
  73.             - name: sonar-data
  74.               mountPath: /opt/sonarqube/data
  75.           readinessProbe:
  76.             httpGet:
  77.               path: /
  78.               port: 9000
  79.               scheme: HTTP
  80.             initialDelaySeconds: 240
  81.             timeoutSeconds: 5
  82.             periodSeconds: 5
  83.             successThreshold: 1
  84.             failureThreshold: 3
  85.           imagePullPolicy: IfNotPresent
  86.           securityContext:
  87.             privileged: false
  88.       restartPolicy: Always
复制代码

service.yaml

  1. kind: Service
  2. apiVersion: v1
  3. metadata:
  4.   name: sonarqube
  5.   namespace: demo
  6.   labels:
  7.     name: sonarqube
  8. spec:
  9.   ports:
  10.     - name: tcp-port-0
  11.       protocol: TCP
  12.       port: 9000
  13.       targetPort: 9000
  14.   selector:
  15.     name: sonarqube
  16.   type: ClusterIP|NodePort

复制代码






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注时速云公众号

QQ|Archiver|小黑屋|云原生技术社区 | 时速云 ( 京ICP备14045471号 )

GMT+8, 2021-12-2 02:47 , Processed in 0.049123 second(s), 21 queries .

快速回复 返回列表