SonarQube Kubernetes极简部署

297 阅读1分钟

使用了hostPath进行持久化,快速体验版sonarqube. 需要根据实际情况调整镜像tag.

postgresql

  • pg.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgresql
  labels:
    app: postgresql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: postgresql
  template:
    metadata:
      labels:
        app: postgresql
    spec:
      containers:
        - name: pg
          image: postgres:12
          env:
            - name: POSTGRES_USER
              value: sonar
            - name: POSTGRES_PASSWORD
              value: sonar
          ports:
            - containerPort: 5432
          volumeMounts:
            - mountPath: /var/lib/postgresql
              name: install
            - mountPath: /var/lib/postgresql/data
              name: data
      volumes:
        - name: data
          hostPath:
            path: /kubernetes/volumes/pgdata
        - name: install
          hostPath:
            path: /kubernetes/volumes/pginstall
---
apiVersion: v1
kind: Service
metadata:
  name: postgresql
spec:
  selector:
    app: postgresql
  ports:
    - protocol: TCP
      port: 5432
      targetPort: 5432

sonarqube

  • sonar.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sonarqube
  labels:
    app: sonarqube
spec:
  replicas: 1
  selector:
    matchLabels:
      app: sonarqube
  template:
    metadata:
      labels:
        app: sonarqube
    spec:
      containers:
        - name: sonarqube
          image: sonarqube:8.8.0-community 
          env:
            - name: SONAR_JDBC_URL
              value: "jdbc:postgresql://postgresql:5432/sonar"
            - name: SONAR_JDBC_USERNAME
              value: sonar
            - name: SONAR_JDBC_PASSWORD
              value: sonar
          ports:
            - containerPort: 9000
          volumeMounts:
            - mountPath: /opt/sonarqube/data
              name: data
            - mountPath: /opt/sonarqube/extensions
              name: extension-vol
      volumes:
        - name: data
          hostPath:
            path: /kubernetes/volumes/sonardata
        - name: extension-vol
          hostPath:
            path: /kubernetes/volumes/sonarExtension
---
apiVersion: v1
kind: Service
metadata:
  name: sonarqube
spec:
  selector:
    app: sonarqube
  type: NodePort
  ports:
    - protocol: TCP
      port: 9000
      targetPort: 9000
      nodePort: 30900

部署

先调整内核参数:

$ vim /etc/sysctl.conf
vm.max_map_count=262144
$ sysctl -p

部署编排文件:

$ kubectl apply -f pg.yaml
$ kubectl apply -f sonar.yaml

初始密码admin/admin