【发布时间】:2020-01-25 18:32:32
【问题描述】:
我想在 Kubernetes 上安装 SonarQube 和对应的 stable Helm Chart。这在第一次工作。但后来我注意到 LDAP 不起作用,所以我修改了values.yaml 以安装图表中提到的插件:
plugins:
install:
- "https://github.com/SonarSource/sonar-ldap/releases/download/2.2-RC3/sonar-ldap-plugin-2.2.0.601.jar"
由于 pod 没有更新,我尝试重新安装图表:
helm delete --purge sonarqube
helm install stable/sonarqube --namespace sonarqube --name sonarqube -f values.yaml
问题是现在不再创建与 SonarQube 相关的主要 pod,正如我们在 helm install 结果中看到的那样:
NAME: sonarqube
LAST DEPLOYED: Wed Sep 25 16:04:25 2019
NAMESPACE: sonarqube2
STATUS: DEPLOYED
RESOURCES:
==> v1/Secret
NAME TYPE DATA AGE
sonarqube-postgresql Opaque 1 0s
==> v1/ConfigMap
NAME DATA AGE
sonarqube-sonarqube-config 0 0s
sonarqube-sonarqube-copy-plugins 1 0s
sonarqube-sonarqube-install-plugins 1 0s
sonarqube-sonarqube-tests 1 0s
==> v1/PersistentVolumeClaim
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
sonarqube-postgresql Pending nfs-client 0s
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sonarqube-postgresql ClusterIP 10.14.45.251 <none> 5432/TCP 0s
sonarqube-sonarqube ClusterIP 10.14.38.122 <none> 9000/TCP 0s
==> v1beta1/Deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
sonarqube-postgresql 1 1 1 0 0s
sonarqube-sonarqube 1 0 0 0 0s
==> v1beta1/Ingress
NAME HOSTS ADDRESS PORTS AGE
sonarqube-sonarqube sonarqube-test.mycluster.internal 80, 443 0s
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
sonarqube-postgresql-b78f87cd7-ht845 0/1 Pending 0 0s
NOTES:
1. Get the application URL by running these commands:
http://sonarqube-test.mycluster.internal
同样kubectl get pod 在几分钟后只显示 Postgresql pod:
NAME READY STATUS RESTARTS AGE
sonarqube-postgresql-b78f87cd7-ht845 1/1 Running 0 6m
在第一次运行时,我还有另一个包含 SonarQube 本身的 pod。可以想象,在sonarqube-test.mycluster.internal 上无法访问该应用程序,它显示503 内部服务器错误。
为什么 SonarQube 不再存在了?
我认为这没有任何原因,并且已经尝试多次清理所有内容,例如删除 helm 版本、删除整个命名空间并将我的 values.yaml 尽可能减少到最小。也只使用了helm install stable/sonarqube,没有任何values.yaml,SonarQube 吊舱仍然丢失。
所有节点都在 Kubernetes 1.11.3 上运行,因此我们符合 SonarQubes 要求中拥有 Kubernetes 1.6+ 的标准。
values.yaml 文件:
replicaCount: 1
service:
type: ClusterIP
port: 80
ingress:
enabled: true
hosts:
- name: sonarqube-test.mycluster.internal
path: /
tls:
- hosts:
- sonarqube-test.mycluster.internal
persistence:
storageClass: nfs-client
size: 10Gi
postgresql:
enabled: true
更新:它应该是什么样子
我在我们的生产集群上尝试了相同的values.yaml 并调整了相应的主机名(这个问题的问题在我们的测试集群上)并且它按预期工作。
helm-install 的相关摘录是这里的第二行:
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
sonarqube-postgresql-6765fd498b-gnd8w 0/1 ContainerCreating 0 0s
sonarqube-sonarqube-6c9cc8869c-45tmk 0/1 Init:0/1 0 0s
从 prod 到 test 的区别是
- 较新的 Kubernetes 版本(1.13.5 而不是 1.13.3)
- 较新的 Docker 版本(18.9.6 而不是 1.13.1)
【问题讨论】:
标签: kubernetes sonarqube kubernetes-helm