Проблема с локальным кластером kubernetes — сбой в предоставлении — нет плагина тома

#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"