Storages
Система хранения работает через драйверы (CSI плагины). Разработчик обычно предоставляет плагины в виде Helm чартов или yaml установщиков. Они устанавливаются в виде набора подов в namespace kube-system. Список плагинов Для тестов можно использовать встроенный драйвер, OpenEbs. К вопросу выбора драйвера, архитектуры хранилища и безопасности необходимо подходить очень серьезно.
Примеры
Локальное хранилище
На воркере
sudo mkdir -p /mnt/disks/ssd1
sudo chmod 777 /mnt/disks/ssd1 # Для упрощения примера
Настройка PV
apiVersion: v1
kind: PersistentVolume
metadata:
name: example-local-pv
labels:
type: local
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /mnt/disks/ssd1
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <node-name> # Замените на имя узла, где находится директория
Настройка PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: example-local-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-storage
resources:
requests:
storage: 10Gi
Проверка связи
kubectl get pv
kubectl get pvc
Использование в Pod
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: example-container
image: nginx
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: local-storage
volumes:
- name: local-storage
persistentVolumeClaim:
claimName: example-local-pvc
Удаление ресурсов
kubectl delete pod example-pod
kubectl delete pvc example-local-pvc
kubectl delete pv example-local-pv