Что означает поле узла в 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
) - Может ли эта ошибка возникнуть из-за неправильного отсоединения тома на каком-то узле?
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, и в этом случае вы также можете использовать accessModes: ReadWriteMany
что, по сути, позволит вам прикрепить том к узлам Kubernetes.
✌ï¸