安装头盔后,相关Pod列表中缺少SonarQube应用程序Pod

问题描述 投票:0回答:1

我想在Kubernets上安装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"

由于豆荚没有更新,我尝试重新安装图表:

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窗格:

NAME                                   READY   STATUS    RESTARTS   AGE
sonarqube-postgresql-b78f87cd7-ht845   1/1     Running   0          6m

[在第一次运行时,我还有一个第二个装有SonarQube的豆荚。可以想象,该应用程序在sonarqube-test.mycluster.internal上无法访问,它显示503内部服务器错误

为什么SonarQube不再存在?

我没有理由这样做,并且已经尝试多次清理所有内容,例如删除helm版本,删除整个名称空间并将我的values.yaml减小到最小。 SonarQube窗格也只使用了helm install stable/sonarqube而没有任何values.yaml,因此仍然丢失。

所有节点都在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

从产品到测试的差异是

  • 较新的Kubernetes版本(1.13.5代替1.13.3)
  • 较新的Docker版本(18.9.6代替1.13.1)
kubernetes sonarqube kubernetes-helm
1个回答
1
投票

我的默认PSP引起了类似的问题,该问题限制了特权容器。 SonarQube具有特权初始化容器,用于设置Elasticsearch所需的sysctl参数。通过查看日志,我看到了以下事件:

$ kubectl get events
LAST SEEN   FIRST SEEN   COUNT   NAME                                             KIND         SUBOBJECT   TYPE      REASON         SOURCE                  MESSAGE
8m          1h           21      sonarqube-xxx   ReplicaSet           Warning   FailedCreate   replicaset-controller      Error creating: pods "sonarqube-xxx-" is forbidden: unable to validate against any pod security policy: [spec.initContainers[0].securityContext.privileged: Invalid value: true: Privileged containers are not allowed]

其他环境当前未启用PSP,因为我们正在对其进行评估。这解释了为什么它在两个群集之间的反应不一致。由于它是一个测试系统,因此我只删除了PSP。作为一个长期解决方案,我想提取一个附加的values.yaml参数来禁用特权初始化容器。

我们已经在群集上使用Ansible调整了sysctl参数,并且出于安全原因,我们的目标是没有特权容器。如果您对特权容器没有任何疑问,还可以为特权容器创建PSP。在Kubernetes文档中找到更多详细信息:https://kubernetes.io/docs/concepts/policy/pod-security-policy/

© www.soinside.com 2019 - 2024. All rights reserved.