按照步骤 https://v3-0.docs.kubesphere.io/docs/devops-user-guide/how-to-integrate/sonarqube/ 安装sonarqube。
部署失败,报错active_rule_parameters已存在,问题如下
(1)为何会已存在,代码改成create or replace创建表 是不是更合理?
(2)进入postgresql数据库drop table active_rule_parameters后( 确定表被drop了),重建pod仍然会报错active_rule_parameters已存在(active_rule_parameters被重建了)

  • 已解决。
    思路:drop表后仍然报错表已存在,怀疑挂载的pvc下存储数据仍然存在,
    (1)找到sonarqube-postgresql服务,查看挂载的pvc和关联的pv

    bglab@node1:~$ kubectl get pvc -n kubesphere-devops-system
    NAME                          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    data-sonarqube-postgresql-0   Bound    pvc-23b2da00-f0d7-4680-aaae-b56503807f5b   8Gi        RWO            local          23h
    ks-jenkins                    Bound    pvc-f93b3c82-b284-44b5-a960-5a9cc030c628   8Gi        RWO            local          28h
    bglab@node1:~$ kubectl describe pv pvc-23b2da00-f0d7-4680-aaae-b56503807f5b 
    Name:              pvc-23b2da00-f0d7-4680-aaae-b56503807f5b
    Labels:            openebs.io/cas-type=local-hostpath
    Annotations:       pv.kubernetes.io/provisioned-by: openebs.io/local
    Finalizers:        [kubernetes.io/pv-protection]
    StorageClass:      local
    Status:            Bound
    Claim:             kubesphere-devops-system/data-sonarqube-postgresql-0
    Reclaim Policy:    Delete
    Access Modes:      RWO
    VolumeMode:        Filesystem
    Capacity:          8Gi
    Node Affinity:     
      Required Terms:  
        Term 0:        kubernetes.io/hostname in [node1]
    Message:           
    Source:
        Type:  LocalVolume (a persistent volume backed by local storage on a node)
        Path:  /var/openebs/local/pvc-23b2da00-f0d7-4680-aaae-b56503807f5b
    Events:    <none>
    bglab@node1:~$ cd /var/openebs/local/pvc-23b2da00-f0d7-4680-aaae-b56503807f5b
    bglab@node1:/var/openebs/local/pvc-23b2da00-f0d7-4680-aaae-b56503807f5b$ ls
    data

    (2)删除data文件
    rm -rf data
    (3)重建pod,问题解决
    kubectl delete pod sonarqube-sonarqube-bb595d88b-rng8j -n kubesphere-devops-system

1、 kubectl get pod -n kubesphere-devops-system

NAME                                       READY   STATUS             RESTARTS   AGE
sonarqube-postgresql-0                     1/1     Running            0          61m
sonarqube-sonarqube-bb595d88b-mfgtb        0/1     CrashLoopBackOff   10         36m

2、kubectl -n kubesphere-devops-system logs -f sonarqube-sonarqube-bb595d88b-mfgtb

2020.11.17 06:31:45 INFO  web[][DbMigrations] Executing DB migrations...
2020.11.17 06:31:45 INFO  web[][DbMigrations] #1 'Create initial schema'...
2020.11.17 06:31:45 ERROR web[][DbMigrations] #1 'Create initial schema': failure | time=18ms
2020.11.17 06:31:45 ERROR web[][DbMigrations] Executed DB migrations: failure | time=24ms
2020.11.17 06:31:45 ERROR web[][o.s.s.p.PlatformImpl] Web server startup failed
org.sonar.server.platform.db.migration.step.MigrationStepExecutionException: Execution of migration step #1 'Create initial schema' failed
        at org.sonar.server.platform.db.migration.step.MigrationStepsExecutorImpl.execute(MigrationStepsExecutorImpl.java:79)
        at org.sonar.server.platform.db.migration.step.MigrationStepsExecutorImpl.execute(MigrationStepsExecutorImpl.java:67)
        at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:405)
        at org.sonar.server.platform.db.migration.step.MigrationStepsExecutorImpl.execute(MigrationStepsExecutorImpl.java:52)
        at org.sonar.server.platform.db.migration.engine.MigrationEngineImpl.execute(MigrationEngineImpl.java:68)
        at org.sonar.server.platform.db.migration.AutoDbMigration.start(AutoDbMigration.java:40)
        at org.sonar.core.platform.StartableCloseableSafeLifecyleStrategy.start(StartableCloseableSafeLifecyleStrategy.java:40)
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)
        at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)
        at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)
        at org.picocontainer.behaviors.Stored.start(Stored.java:110)
        at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)
        at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)
        at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
        at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:90)
        at org.sonar.server.platform.PlatformImpl.start(PlatformImpl.java:213)
        at org.sonar.server.platform.PlatformImpl.startSafeModeContainer(PlatformImpl.java:205)
        at org.sonar.server.platform.PlatformImpl.doStart(PlatformImpl.java:105)
        at org.sonar.server.platform.PlatformImpl.doStart(PlatformImpl.java:96)
        at org.sonar.server.platform.web.PlatformServletContextListener.contextInitialized(PlatformServletContextListener.java:44)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4770)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5236)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1423)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1413)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Fail to execute CREATE TABLE active_rule_parameters (id SERIAL NOT NULL,active_rule_id INTEGER NOT NULL,rules_parameter_id INTEGER NOT NULL,value VARCHAR (4000) NULL,rules_parameter_key VARCHAR (128) NULL, CONSTRAINT pk_active_rule_parameters PRIMARY KEY (id))
        at org.sonar.server.platform.db.migration.step.DdlChange$ContextImpl.execute(DdlChange.java:106)
        at org.sonar.server.platform.db.migration.step.DdlChange$ContextImpl.execute(DdlChange.java:86)
        at org.sonar.server.platform.db.migration.step.DdlChange$ContextImpl.execute(DdlChange.java:128)
        at org.sonar.server.platform.db.migration.version.v00.CreateInitialSchema.createActiveRuleParameters(CreateInitialSchema.java:154)
        at org.sonar.server.platform.db.migration.version.v00.CreateInitialSchema.execute(CreateInitialSchema.java:86)
        at org.sonar.server.platform.db.migration.step.DdlChange.execute(DdlChange.java:45)
        at org.sonar.server.platform.db.migration.step.MigrationStepsExecutorImpl.execute(MigrationStepsExecutorImpl.java:75)
        ... 29 common frames omitted
Caused by: org.postgresql.util.PSQLException: ERROR: relation "active_rule_parameters" already exists
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2497)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2233)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:310)
        at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:446)
        at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:370)
        at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:311)
        at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:297)
        at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:274)
        at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:269)
        at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:194)
        at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:194)
        at org.sonar.server.platform.db.migration.step.DdlChange$ContextImpl.execute(DdlChange.java:91)
        ... 35 common frames omitted
2020.11.17 06:31:45 INFO  web[][o.s.s.a.EmbeddedTomcat] HTTP connector enabled on port 9000
2020.11.17 06:31:45 INFO  web[][o.s.p.ProcessEntryPoint] Hard stopping process
2020.11.17 06:31:45 INFO  app[][o.s.a.SchedulerImpl] Process[web] is stopped
2020.11.17 06:31:46 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 143
2020.11.17 06:31:46 INFO  app[][o.s.a.SchedulerImpl] Process[es] is stopped
2020.11.17 06:31:46 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
csz711 更改标题为「DevOps的SonarQube部署失败

已解决。
思路:drop表后仍然报错表已存在,怀疑挂载的pvc下存储数据仍然存在,
(1)找到sonarqube-postgresql服务,查看挂载的pvc和关联的pv

bglab@node1:~$ kubectl get pvc -n kubesphere-devops-system
NAME                          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
data-sonarqube-postgresql-0   Bound    pvc-23b2da00-f0d7-4680-aaae-b56503807f5b   8Gi        RWO            local          23h
ks-jenkins                    Bound    pvc-f93b3c82-b284-44b5-a960-5a9cc030c628   8Gi        RWO            local          28h
bglab@node1:~$ kubectl describe pv pvc-23b2da00-f0d7-4680-aaae-b56503807f5b 
Name:              pvc-23b2da00-f0d7-4680-aaae-b56503807f5b
Labels:            openebs.io/cas-type=local-hostpath
Annotations:       pv.kubernetes.io/provisioned-by: openebs.io/local
Finalizers:        [kubernetes.io/pv-protection]
StorageClass:      local
Status:            Bound
Claim:             kubesphere-devops-system/data-sonarqube-postgresql-0
Reclaim Policy:    Delete
Access Modes:      RWO
VolumeMode:        Filesystem
Capacity:          8Gi
Node Affinity:     
  Required Terms:  
    Term 0:        kubernetes.io/hostname in [node1]
Message:           
Source:
    Type:  LocalVolume (a persistent volume backed by local storage on a node)
    Path:  /var/openebs/local/pvc-23b2da00-f0d7-4680-aaae-b56503807f5b
Events:    <none>
bglab@node1:~$ cd /var/openebs/local/pvc-23b2da00-f0d7-4680-aaae-b56503807f5b
bglab@node1:/var/openebs/local/pvc-23b2da00-f0d7-4680-aaae-b56503807f5b$ ls
data

(2)删除data文件
rm -rf data
(3)重建pod,问题解决
kubectl delete pod sonarqube-sonarqube-bb595d88b-rng8j -n kubesphere-devops-system

4 天 后
15 天 后
1 年 后