Что означает поле узла в k8s volume.attachments?

У меня есть следующие Volume:

Name:         pvc-c8a0c1ee-b9e6-11e9-9ffa-0cc47ab04738
Namespace:    rook-ceph-system
Labels:       <none>
Annotations:  <none>
API Version:  rook.io/v1alpha2
Attachments:
  Cluster Name:   rook-ceph
  Mount Dir:      /var/lib/kubelet/pods/72fd4f89-5110-49b7-8d88-87488b58695c/volumes/ceph.rook.io~rook-ceph-system/pvc-c8a0c1ee-b9e6-11e9-9ffa-0cc47ab04738
  Node:           node-6.xyz.com
  Pod Name:       dev-cockroachdb-0
  Pod Namespace:  x-namespace
  Read Only:      false
Kind:             Volume
Metadata:
  Creation Timestamp:  2020-08-12T17:13:51Z
  Generation:          6
  Resource Version:    638003207
  Self Link:           /apis/rook.io/v1alpha2/namespaces/rook-ceph-system/volumes/pvc-c8a0c1ee-b9e6-11e9-9ffa-0cc47ab04738
  UID:                 db0a9491-95fe-49cd-8160-89031847d636
Events:                <none>

Для модуля dev-cockroachdb-0 появляется следующая ошибка:

MountVolume.SetUp failed for volume "pvc-c8a0c1ee-b9e6-11e9-9ffa-0cc47ab04738" : mount command failed, status: Failure, reason: Rook: Mount volume failed: failed to attach volume pvc-c8a0c1ee-b9e6-11e9-9ffa-0cc47ab04738 for pod x-namespace/dev-cockroachdb-0. Volume is already attached by pod x-namespace/dev-cockroachdb-0. Status Pending

И модуль x-namespace/dev-cockroachdb-0 в настоящее время запланирован на node-5.xyz.com.

Итак, как вы можете видеть, сам модуль находится в другом узле, чем VolumeAttachment. node-6.xyz.com против node-5.xyz.com.

Вопросов:

  • Указывает ли Node в Volume.Attachments на узел, на котором расположен модуль (к которому прикреплен том)? (Так, если том присоединен к модулю на узле NodeA, тогда значение поля узла для присоединения тома будет NodeA)
  • Может ли эта ошибка произойти из-за невозможности правильно отсоединить том на каком-то узле?

person Vusal    schedule 12.08.2020    source источник
comment
Похоже, у вас неправильный access mode для вашего тома. Проверьте, может ли это вам помочь. stackoverflow.com/questions/55474193/   -  person Pubudu Sitinamaluwa    schedule 13.08.2020


Ответы (1)


Вы не упомянули об этом, но похоже, что у вас есть том Ладьи. Возможно пвх-клон, примерно так:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: rbd-pvc-clone
spec:
  storageClassName: rook-ceph-block
  dataSource:
    name: rbd-pvc
    kind: PersistentVolumeClaim
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

Указывает ли Node in Volume.Attachments на узел, на котором расположен модуль (к которому прикреплен том)? (Так, если том присоединен к модулю на узле NodeA, тогда значением поля узла для присоединения тома будет NodeA)

Не совсем. Возможно, ваш Pod пытается запустить node-5.xyz.com, но том может быть присоединен к другому узлу, в вашем случае это node-6.xyz.com.

Может ли эта ошибка произойти из-за невозможности правильно отсоединить том на каком-то узле?

Да, эта ошибка может произойти, если, возможно, в node-6.xyz.com запущен другой модуль, который прервался и не смог отсоединиться.

Имейте в виду, что все вышеперечисленное предполагает, что ваш том имеет accessModes: ReadWriteOnce. Похоже, вы используете Ceph с Rook, и в этом случае вы также можете использовать _ 6_, что позволит вам прикрепить том к узлам Kubernetes.

✌️

person Rico    schedule 13.08.2020