Проблема RBD StorageClass с Kubernetes StatefulSet - PullRequest
0 голосов
/ 18 октября 2018

Я развертываю службу Jenkins на K8S в качестве StatefulSet.

Мой VolumeMounts выглядит следующим образом:

volumeMounts:
  - name: jenkins-jobs
    mountPath: /srv/jenkins/jobs

А мой раздел volumeClaimTemplates в моем объявлении StatefulSet выглядит следующим образом:

volumeClaimTemplates:
  - metadata:
      name: jenkins-jobs
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 5G
      storageClassName: rbd

Я определил класс хранилища rbd, и его контроллер работает в моем кластере:

$ kubectl get -n kube-system po | grep rbd
rbd-provisioner-59d8759b85-rzrxr           1/1       Running   0          42m

Теперь, когда я раскручиваю свой Stateful Set, модуль остается в следующемсостояние:

$ kubectl get po -n test-jenkins
NAME               READY     STATUS              RESTARTS   AGE
jenkins-master-0   0/1       ContainerCreating   0          23m

Выполнение описания на Pod дает:

  Normal   SuccessfulMountVolume   2m               kubelet, kubernetes-agent-3  MountVolume.SetUp succeeded for volume "default-token-zcdgk"
  Normal   SuccessfulMountVolume   2m               kubelet, kubernetes-agent-3  MountVolume.SetUp succeeded for volume "local-secrets"
  Normal   SuccessfulAttachVolume  37s              attachdetach-controller      AttachVolume.Attach succeeded for volume "pvc-2bafc440-d259-11e8-953e-02000a1bef39"
  Warning  FailedMount             11s              kubelet, kubernetes-agent-3  Unable to mount volumes for pod "jenkins-master-0_test-jenkins(2bb0d344-d259-11e8-953e-02000a1bef39)": timeout expired waiting for volumes to attach or mount for pod "test-jenkins"/"jenkins-master-0". list of unmounted volumes=[jenkins-jobs]. list of unattached volumes=[jenkins-jobs local-secrets ssh static-jobs update-credentials seed-job renew-token default-token-zcdgk]
  Warning  FailedMount             2s (x4 over 6s)  kubelet, kubernetes-agent-3  MountVolume.WaitForAttach failed for volume "pvc-2bafc440-d259-11e8-953e-02000a1bef39" : fail to check rbd image status with: (executable file not found in $PATH), rbd output: ()

Мой PVC создан и мой PV.

$ kubectl get pvc -n test-jenkins
NAME                            STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
jenkins-jobs-jenkins-master-0   Bound     pvc-2bafc440-d259-11e8-953e-02000a1bef39   4769Mi     RWO            rbd          25m

$ kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM                                                  STORAGECLASS   REASON    AGE
pvc-2bafc440-d259-11e8-953e-02000a1bef39   4769Mi     RWO            Delete           Bound     test-jenkins/jenkins-jobs-jenkins-master-0   rbd                26m

ЖурналыВ моем контейнере RBD также не отображаются ОШИБКИ:

I1017 22:08:26.169064       1 controller.go:1068] scheduleOperation[lock-provisiontest-jenkins/jenkins-jobs-jenkins-master-0[2bafc440-d259-11e8-953e-02000a1bef39]]
I1017 22:08:26.186851       1 controller.go:1068] scheduleOperation[lock-provision-test-jenkins/jenkins-jobs-jenkins-master-0[2bafc440-d259-11e8-953e-02000a1bef39]]
I1017 22:08:26.206088       1 controller.go:1068] scheduleOperation[lock-provision-test-jenkins/jenkins-jobs-jenkins-master-0[2bafc440-d259-11e8-953e-02000a1bef39]]
I1017 22:08:26.216657       1 leaderelection.go:156] attempting to acquire leader lease...
I1017 22:08:26.232794       1 leaderelection.go:178] successfully acquired lease to provision for pvc test-jenkins/jenkins-jobs-jenkins-master-0
I1017 22:08:26.232868       1 controller.go:1068] scheduleOperation[provision-test-jenkins/jenkins-jobs-jenkins-master-0[2bafc440-d259-11e8-953e-02000a1bef39]]
I1017 22:08:26.326907       1 provision.go:110] successfully created rbd image "kubernetes-dynamic-pvc-2bbe12a1-d259-11e8-84a1-a6bc2793edca"
I1017 22:08:26.327045       1 controller.go:801] volume "pvc-2bafc440-d259-11e8-953e-02000a1bef39" for claim "test-jenkins/jenkins-jobs-jenkins-master-0" created
I1017 22:08:26.340955       1 controller.go:818] volume "pvc-2bafc440-d259-11e8-953e-02000a1bef39" for claim "test-jenkins/jenkins-jobs-jenkins-master-0" saved
I1017 22:08:26.340981       1 controller.go:854] volume "pvc-2bafc440-d259-11e8-953e-02000a1bef39" provisioned for claim "test-jenkins/jenkins-jobs-jenkins-master-0"
I1017 22:08:28.245193       1 leaderelection.go:198] stopped trying to renew lease to provision for pvc test-jenkins/jenkins-jobs-jenkins-master-0, task succeeded

Поэтому, основываясь на моей команде описаний, я не уверен, почему я могу подключить VolumeMount, но не смонтировать его.Есть идеи?

...