Для настройки Persistent Volume:
Создайте файл манифеста SC_fmp.yaml:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: standard
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: localdb
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: cachedb
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: maindb
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: es-data
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
Примените конфигурацию StorageClass с использованием файла SC_fmp.yaml:
kubectl apply -f SC_fmp.yaml
Создайте локальные хранилища для PersistenVolume на каждом рабочем узле:
mkdir /mnt/pvs
cd /mnt/pvs
mkdir cachedb es-data localdb maindb standard-1 standard-2 standard-3 standard-4
standard-5
chmod 777 *
Создайте файл манифеста pvs.yaml:
apiVersion: v1
kind: PersistentVolume
metadata:
name: cachedb-1
labels:
type: local
spec:
storageClassName: cachedb
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/cachedb"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: cachedb-2
labels:
type: local
spec:
storageClassName: cachedb
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/cachedb"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: es-data-1
labels:
type: local
spec:
storageClassName: es-data
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/es-data"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: es-data-2
labels:
type: local
spec:
storageClassName: es-data
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/es-data"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: es-data-3
labels:
type: local
spec:
storageClassName: es-data
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/es-data"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: es-data-4
labels:
type: local
spec:
storageClassName: es-data
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/es-data"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: localdb-1
labels:
type: local
spec:
storageClassName: localdb
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/localdb"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: localdb-2
labels:
type: local
spec:
storageClassName: localdb
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/localdb"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: maindb-1
labels:
type: local
spec:
storageClassName: maindb
capacity:
storage: 50Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/maindb"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: maindb-2
labels:
type: local
spec:
storageClassName: maindb
capacity:
storage: 50Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/maindb"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-1-1
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-1"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-1-2
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-2"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-1-3
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-3"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-2-1
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-1"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-2-2
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-2"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-2-3
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-3"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-3-1
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-1"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-3-2
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-2"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-3-3
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-3"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-3-4
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-4"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-3-5
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-5"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-4-1
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-1"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-4-2
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-2"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-4-3
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-3"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-4-4
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-4"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: standard-4-5
labels:
type: local
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/pvs/standard-5"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <наименование рабочего узла>
---
В подстановках <наименование рабочего узла> задайте наименования рабочих узлов кластера. Например: worker1.k8s.internal, worker2.k8s.internal и так далее.
Примените конфигурацию Persistent Volume с использованием файла pvs.yaml:
kubectl apply -f pvs.yaml
После выполнения действий будет настроен Persistent Volume.
Далее перейдите к установке продукта «Форсайт. Мобильная платформа» на кластере.
См. также:
Подготовка и развёртывание отказоустойчивого кластера на основе Deckhouse | Установка продукта «Форсайт. Мобильная платформа» на кластере