#kubernetes
#kubernetes
Вопрос:
Я не уверен, что это вопрос для начинающих, но я подумал о том, чтобы поместить его здесь. Я пытаюсь настроить динамическое предоставление тома внутри кластера Kubernetes.
Но мой кластер Kubernetes работает в моей локальной виртуальной среде (я запустил свой vagrant box с помощью ubuntu и использовал kuberspray для подготовки моего кластера Kubernetes). Я следовал этому руководству — Настройка кластера Kubernetes с использованием kubespray
Короче говоря, я не использую никаких облачных сервисов, все работает на виртуальных машинах.
Для динамической подготовки тома я создал класс хранения —
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: jhooq-storage-class
provisioner: kubernetes.io/no-provisioner
parameters:
type: pd-ssd
После этого я создал заявку на постоянный объем
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jhooq-pvc-with-sc
spec:
accessModes:
- ReadWriteOnce
storageClassName: jhooq-storage-class
resources:
requests:
storage: 1Gi
Но я столкнулся с проблемой при применении конфигурации PVC
Вот статус заявки на постоянный объем (PVC)
Name: pvc-with-sc
Namespace: default
StorageClass: storage-class
Status: Pending
Volume:
Labels: <none>
Annotations: Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Mounted By: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning ProvisioningFailed 100s (x182 over 46m) persistentvolume-controller no volume plugin matched
Я упускаю что-то очень простое здесь?
Или это невозможно в виртуальной среде?
Любые предложения или мысли будут высоко оценены
Ответ №1:
В основном в вашем случае вам просто не хватает PV.
Согласно документации k8s:
Локальные тома в настоящее время не поддерживают динамическую подготовку, однако класс StorageClass все равно должен быть создан, чтобы отложить привязку тома до планирования модуля. Это задается режимом привязки тома WaitForFirstConsumer.
Таким образом, даже если он в настоящее время не поддерживается, вы все равно сможете его создать.
Просматривая некоторые документы, я обнаружил, что вам действительно нужно создать PV, чтобы он был ограничен вашим PVC, и вы можете определить свой StorageClass в определении PV, поэтому в вашем случае было бы что-то вроде этого:
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-pv
labels:
type: local-pv
spec:
storageClassName: jhooq-storage-class
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/whatever/path"