使用了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