#kubernetes #azure-aks #persistent-volumes #persistent-volume-claims
#kubernetes #azure-aks #постоянные тома #утверждения о постоянном объеме
Вопрос:
В AKS можно использовать один и тот же постоянный том / PVC для двух разных объемов, я это то, что я пытаюсь:
Развертывание модуля / Здесь я устанавливаю два тома в одном и том же PersistentVolumeClaim
(...)
volumeMounts:
- name: data1
mountPath: /opt/data/data1
subPath: data1
- name: data2
mountPath: /opt/data/data2
subPath: data2
volumes:
- name: data1
persistentVolumeClaim:
claimName: pv-data
- name: data2
persistentVolumeClaim:
claimName: pv-data
(...)
Утверждение о постоянном объеме, используемое томами data1 и data2, определенными в Pod deploy
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv-data
spec:
accessModes:
- ReadWriteMany # or ReadWriteOnce
storageClassName: pv-storage
resources:
requests:
storage: 40Gi
Постоянный том
apiVersion: v1
kind: PersistentVolume
metadata:
name: pvdisk
spec:
capacity:
storage: 40Gi
storageClassName: pv-storage
azureDisk:
kind: Managed
diskName: disk1
diskURI: /subscriptions/xxxxx/resourceGroups/xxxx/providers/Microsoft.Compute/disks/disk1
fsType: ext4
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
claimRef:
name: pv-data
namespace: default
При попытке применить эту «идею» я получаю следующую ошибку:
постоянный объем запроса «data1» не найден Предупреждение не выполнено Планирование 1 с (x2 более 5 с) модуль планировщика по умолчанию не привязан к немедленному постоянному объему запросов (повторяется 2 раза)
Спасибо Tiago
РЕДАКТИРОВАТЬ kubectlописание пвх pv-данных
Name: sonar-data
Namespace: default
StorageClass: sonar-storage
Status: Bound
Volume: pvdisk
Labels: <none>
Annotations: pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
Finalizers: [kubernetes.io/pvc-protection]
Capacity: 40Gi
Access Modes: RWO
VolumeMode: Filesystem
Mounted By: pod-69d6c8d89c-8t5lb
pod-69d6c8d89c-8t5lb
kubectl описывает pv pvdisk
Name: pvdisk
Finalizers: [kubernetes.io/pv-protection]
StorageClass: sonar-storage
Status: Bound
Claim: default/data
Reclaim Policy: Retain
Access Modes: RWO
VolumeMode: Filesystem
Capacity: 40Gi
Message:
Source:
Type: AzureDisk (an Azure Data Disk mount on the host and bind mount to the pod)
DiskName: XXXXXX
DiskURI: XXXXXX
Kind: Managed
FSType: ext4
CachingMode: ReadWrite
ReadOnly: false
Events: <none>
Модуль описания
Volumes:
data1:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: data1
ReadOnly: pv-data
config-volume:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: data-config
Optional: false
data2:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: pv-data
ReadOnly: false
(...)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedMount 2m21s (x63 over 142m) kubelet, aks-pool1-19402761-vmss000002 Unable to mount volumes for pod "pod-69d6c8d89c-8t5lb_default(77795ef3-6c88-480a-b3ed-18b9453c742a)": timeout expired waiting for volumes to attach or mount for pod "default"/"pod-69d6c8d89c-8t5lb". list of unmounted volumes=[data1]. list of unattached volumes=[data1 config-volume data2 default-token-nhrrv]
Комментарии:
1. Каков статус для PVC?
kubectl get pvc
2. добавлена информация о модуле описания
3. Похоже, что AKS не может найти диск, который вы использовали в качестве постоянного тома. Как создать том с помощью диска?
4. У меня есть эта информация в description -> PersistentVolume
5. Вы проверяете, правильно ли подключается диск с данными к узлу?
Ответ №1:
Чтобы это сработало, вам нужно объявить том только один раз.
(...)
volumeMounts:
- name: data
mountPath: /opt/data/data1
subPath: data1
- name: data
mountPath: /opt/data/data2
subPath: data2
volumes:
- name: data
persistentVolumeClaim:
claimName: pv-data
(...)