ืืฉื ื ืืกืคืจ ืืจืืื ืืืืืืจ ืืืกืื ื ืชืื ืื ืขืืืจ ืืืฉืืืื ืืคืืขืืื ืืืฉืืื Kubernetes. ืืืงื ืืืจ ืืืืฉื ืื, ืืืจืื ืืืคืืขื ืืืืจืื ื. ืืืืืจ ืื, ื ืืื ืืช ืืงืื ืกืคื ืฉื ืฉืืืฉ ืืคืฉืจืืืืช ืืืืืืจ ืืขืจืืืช ืืืกืื, ืืืื ืืขืืื ืืช ืืืืชืจ - ืืืืืจ ืืจื ืืืฉืง ื-Container Storage.
ืฉืืื 1: ืฆืืื PV ืืื ืืคืกื ืืคืื
ืื ืืคืกื ืืืคืืกื ืืืชืืจ ืชืจืืื ืืืฉืืื Kubernetes:
ืืืงื ืืื ืืคืกื ืืืชืืจืื ืืืื ืืจื ืืืืืจ ืืืืคื ืืืืืฉืื ืืฆืืข.
ืืกืขืืฃ VolumeMounts ืฆืืื ืืช ื ืงืืืืช ืืืจืืื (mountPath) - ืืืืื ืกืคืจืืื ืืชืื ืืืืื ืืืจืื ืืืฆืขื ืืืืกืื ืืงืืืข, ืืื ืืช ืฉื ืืืฆืขื ืืืืกืื.
ืืกืขืืฃ x ืืคืจื ืืช ืื ืืืจืืื ืฉืืื ื ืขืฉื ืฉืืืืฉ ืืชืจืืื. ืฆืืื ืืช ืืฉื ืฉื ืื ืืืฆืขื ืืืกืื, ืืื ืื ืืช ืืกืื (ืืืงืจื ืฉืื ื: awsElasticBlockStore) ืืคืจืืืจื ืืืืืืจ. ืืืื ืคืจืืืจืื ืืืคืืขืื ืืื ืืคืกื ืชืืื ืืกืื ื ืคื.
ื ืืชื ืืืจืืื ืืช ืืืชื ื ืคื ืื ืืื ืืช ืืืกืคืจ ืืืืื ืชืจืืืืื. ืืืจื ืื, ืชืืืืื ืืืฉืื ืฉืื ืื ืืืืืื ืืืฉืช ืืืืชื ื ืชืื ืื.
ืฉืืืช ืืืืืืจ ืืื ืืืืฆืื ืืืจ ืืืชืืื, ืืฉืงืืืจื ืืก ืืืืชื ืจืง ืืืืชืืืื, ืืืืื ืืฉืืื ืืืืฉื ืช.
ืืฉื ื ืืกืคืจ ืืขืืืช ืืขืช ืืฉืืืืฉ:
- ืืฉ ืืืฆืืจ ืืช ืื ืืืฆืขื ืืืืกืื ืืืืคื ืืื ื; Kubernetes ืื ืืืื ืืืฆืืจ ืฉืื ืืืจ ืขืืืจื ื;
- ืคืจืืืจื ืืืฉื ืืื ื ืคื ืื ืืืืืืืื, ืืืฉ ืืฆืืื ืืืชื ืืื ืืคืกืืื ืฉื ืื ืืคืืืื ืืืฉืชืืฉืื ืื ืคื;
- ืืื ืืฉื ืืช ืืช ืืขืจืืช ืืืืกืื (ืืืืืื, ืืขืืืจ ื-AWS ื-Google Cloud), ืขืืื ืืฉื ืืช ืืช ืืืืืจืืช ืืืช ืกืื ืืืฆืขื ืืืืกืื ืืืืชืงื ืืช ืืื ืืื ืืคืกืืื.
ืื ืื ืืืื ืื ื ืื, ืื ืฉืืืฆืืืืช ืฉืืื ืื ืืฉืืฉืช ืืืืืืจ ืจืง ืืื ืกืืืื ืืืืืืื ืฉื ืืืฆืขื ืืืกืื: configMap, secret, emptyDir, hostPath:
-
configMap ื- secret ืื ืืืฆืขื ืืืกืื ืฉื ืฉืืจืืช ืืืืคืฉืจืื ืืืฆืืจ ืืืฆืขื ืืืกืื ืขื ืงืืฆืื ืืื ืืคืกืืื ืฉื Kubernetes ืืืืื.
-
emptyDir ืืื ืืจื ืืื ื, ืฉื ืืฆืจ ืจืง ืืื ืืืืื ืฉื ืืคืื. ื ืื ืืฉืืืืฉ ืืืืืงื ืื ืืืกืื ื ืชืื ืื ืืื ืืื. ืืืฉืจ ืคืื ื ืืืง, ืื ืืืฆืขื ืืืืกืื ืืจืืงDir ื ืืืง ืืื ืื ืชืื ืื ืืืืืื.
-
hostPath - ืืืคืฉืจ ืืืขืื ืื ืกืคืจืืื ืืืืกืง ืืืงืืื ืฉื ืืฉืจืช ืื ืืืคืืืงืฆืื ืคืืขืืช ืืชืื ืืงืื ืืืื ืจ ืขื ืืืคืืืงืฆืื, ืืืื /etc/kubernetes. ืืืื ืชืืื ื ืื ืืืืื, ืืืื ืืืื ืืืช ืืืืื ืืืกืจืช ืืืจื ืืื ืฉืืืืฉ ืื ืคืืื ืืกืื ืื. ืืืจืช, ืืคืืืงืฆืื ืฉื ืชืืงืฃ ืชืืื ืืืขืืืช ืืช ืกืคืจืืืช HTC Kubernetes ืืชืื ืืืืื ืฉืื ืืืื ืื ืืช ืื ืืืฉืืจื ืืืฉืืื. ืืืจื ืืื, ืืืฆืขื ืืืกืื hostPath ืืืชืจืื ืืฉืืืืฉ ืจืง ืขื ืืื ืืืฉืืื ืืขืจืืช ืืคืืขืืื ืืืจืื ืืฉืืืช ืฉื ืืขืจืืช kube.
ืฉืืื 2. ืืืืืจ ืืืืงืื SC/PVC/PV
ืฉืืืช ืืืืืจ ืืืืคืืช ืืื ืืจืขืืื ืฉื Storage class, PersistentVolumeClaim, PersistentVolume.
ืฉืืขืืจ ืืืกืื ืืืืกื ืคืจืืืจืื ืฉื ืืืืืจ ืืืขืจืืช ืืืกืื ืื ืชืื ืื.
ืชืืืขืช ื ืคื ืืชืืฉืืช ืืชืืจ ืืช ืืืจืืฉืืช ืืื ืฉืืืคืืืงืฆืื ืฆืจืืื.
ื ืคื ืืชืืฉื ืืืืกื ืคืจืืืจื ืืืฉื ืืืฆื ืขืืฆืืช ืืงืื.
ืืืืช ืืจืขืืื: ืืื ืืคืกื ืืคืื ืื ืืฆืืื ืื ื ืคื ืืกืื PersistentVolumeClaim ืืืฆืืื ืื ืืช ืืฉื ืฉื ืืืฉืืช ืืื ืืคืจืืืจ claimName.
ืื ืืคืกื PersistentVolumeClaim ืืชืืจ ืืช ืืืจืืฉืืช ืื ืคื ืื ืชืื ืื ืฉืืืคืืืงืฆืื ืืืจืฉืช. ืึฐืจึทืึผืึนืช:
- ืืืื ืืืกืง;
- ืฉืืืช ืืืฉื: ReadWriteOnce ืื ReadWriteMany;
- ืงืืฉืืจ ืืืืืงืช Storage - ืืืืื ืืขืจืืช ืืืกืื ื ืชืื ืื ืื ื ืจืืฆืื ืืืฆืืจ ืืช ืื ืคื.
ืื ืืคืกื ืืืืงื Storage ืืืืกื ืืช ืืกืื ืืืคืจืืืจืื ืฉื ืืืืืืจ ืืืขืจืืช ืืืืกืื. ืืงืืืืื ืฆืจืืื ืืืชื ืืื ืืืจืืื ืืช ืืืจื ืขื ืืฆืืืช ืฉืื.
ืื ืืคืกืืื ืฉื PersistentVolume ืืฆืืื ืื ืืช ืืืืงืช ืืืืกืื ืืคืจืืืจื ืืืฉื ืขืืืจ ืืืฆืขื ืืืกืื ืกืคืฆืืคื (ืืืื ืืืฆืขื ืืืกืื, ื ืชืื ืืื').
ืืขืช ืืฆืืจืช PVC, Kubernetes ืืืื ืช ืืืื ืืืื ื ืคื ืืืืื ืืืืงืช ืืืกืื ื ืืจืฉืช, ืืืืืจืช ื ืคื Persistent ืืื ื.
ืื PVs ืืืื ืืื ื ืืืื ืื, Kubernetes ืืืื ืืืฉืืง ืชืืื ืืช ืืืืืืช - Provisioner (ืืฉื ืฉืื ืืฆืืื ืืืืืงืช Storage). ืชืืื ืืช ืื ืืชืืืจืช ืืืขืจืืช ืืืืกืื, ืืืฆืจืช ื ืคื ืืืืื ืื ืืจืฉ, ืืงืืืช ืืืื ืืืืฆืจืช ืื ืืคืกื PersistentVolume ืืืฉืืื Kubernetes, ืืืฉืืื ื-PersistentVolumeClaim.
ืื ืกื ืืืคืฉืืืช ืืื ืืืคืฉืจ ืื ืืืกืืจ ืืืืข ืขื ืืืื ืืขืจืืช ืืืกืื ืืืคืืืงืฆืื ืขืืืืช ืืจืืช ืืื ืืคืกื ืฉื ืืืคืืืงืฆืื ืืจืืช ืื ืืืื.
ืื ืืคืจืืืจืื ืืืืืืจ ืืืขืจืืช ืืืกืื ืื ืชืื ืื ืืืืงืืื ืืืืืงืช Storage, ืขืืื ืืืจืืื ืื ืืื ืืฉืืืืืช. ืื ืื ืฉืืชื ืฆืจืื ืืขืฉืืช ืืขืช ืืขืืจ ื-AWS ื-Google Cloud ืืื ืืฉื ืืช ืืช ืืฉื ืฉื ืืืืงืช ืืืืกืื ื-PVC ืืื ืืคืกืืื ืฉื ืืืคืืืงืฆืื. ื ืคื ืืชืืื ืืืืกืื ื ืชืื ืื ืืืืืฆืจ ืืืฉืืื ืืืืคื ืืืืืืื ืืืืฆืขืืช ืชืืื ืืช Provisioner.
ืฉืืื 3: ืืืฉืง ืืืกืื ืืืื
ืื ืืงืื ืฉืืงืืื ืืื ืืจืืงืฆืื ืขื ืืขืจืืืช ืืืกืื ืฉืื ืืช ืืื ืืืง ืืืืืช Kubernetes. ืืฉืืจืืจ ืฉื ืชืืงืื ื ืืืืื ืื ืคืื ืงืฆืืื ืืืืช ืืืฉื ืงืฉืืจื ืืืืืืจืืช ืืืฉืืช; ืืฉ ืืฉื ืืช ืืช ืืงืื ืขืืืจ ืื ืืืจืกืืืช ืื ืชืืืืช ืฉื Kubernetes. ืื ืื ืงืฉื ืืชืืืง ืืืืืกืืฃ ืคืื ืงืฆืืื ืืืืช ืืืฉื.
ืืื ืืคืชืืจ ืืช ืืืขืื, ืืคืชืืื ื-Cloud Foundry, Kubernetes, Mesos ื-Docker ืืฆืจื ืืช ื-Container Storage Interface (CSI) - ืืืฉืง ืืืืื ืคืฉืื ืืืชืืจ ืืช ืืืื ืืจืืงืฆืื ืฉื ืืขืจืืช ื ืืืื ืืืืืืืช ืืื ืื ืืชืงื ืืืืื (CSI Driver) ืฉืขืืื ืขื ืกืคืฆืืคื ืืขืจืืช ืืืกืื. ืื ืืงืื ืืืื ืืจืืงืฆืื ืขื ืืขืจืืืช ืืืกืื ืืืขืืจ ืืืืืช Kubernetes ืืืขืจืืช ื ืคืจืืช.
ืืืจื ืืื, ืื ืื ืืชืงื CSI ืืืจืื ืืฉื ื ืจืืืืื: Plugin Node ื-Controller plugin.
ืชืืกืฃ Node ืคืืขื ืขื ืื ืฆืืืช ืืืืจืื ืขื ืืจืืืช ืืืฆืขื ืืืกืื ืืืืฆืืข ืคืขืืืืช ืขืืืื. ืชืืกืฃ Controller ืืงืืื ืืื ืืจืืงืฆืื ืขื ืืขืจืืช ืืืืกืื: ืืืฆืจ ืื ืืืืง ืืืฆืขื ืืืกืื, ืืงืฆื ืืืืืืช ืืืฉื ืืื'.
ืืขืช ืขืชื, ืืืจืืืืจืื ืืืฉื ืื ื ืฉืืจืื ืืืืืช Kubernetes, ืื ืืืจ ืื ืืืืืฅ ืืืฉืชืืฉ ืืื ืืืืืื ืืืืืฅ ืืืชืงืื ืืช ื-CSI Driver ืืืืืื ืขืืืจ ืืืขืจืืช ืืืชื ืื ืืขืืื.
ืืืืืืฉ ืขืฉืื ืืืคืืื ืืช ืื ืฉืืืจ ืจืืื ืืืืืืจ ืืืกืื ื ืชืื ืื ืืจื ืืืืงื Storage, ืืื ืืืขืฉื ืฉืื ืืืจ ื ืืจื ืื ืงืจื. ืขืืืจ ืืชืื ืชืื, ืฉืื ืืืจ ืื ืืืืช ืืฉืชื ื - ืื ืขืืื ืจืง ืขื ืืฉื Storage class, ืืืืฉืืื ืืขืฉืืช ืืืช. ืขืืืจ ืื ืืื ืืขืจืืช, ืืชืงื ืช ืชืจืฉืื ืืืื ื ืืกืคื ืืืื ื ืืืืืจืืช ืืฉืชื ื. ืื ืืขืืจ ืืืืืจืืช ืืืื ื ืืฉืืจืืช ืืืืืงื Storage, ืืขืช ืืฉ ืืืืืืจ ืืืชื ืชืืืื ืืืืืช ืืืื, ืืืืืจ ืืื ืืืืืงื Storage. ืื ืืชื ืืกืชืื ืขื ืื, ืฉืื ืืืจ ืจืข ืื ืงืจื.
ื ืืงื ืืืืื ืืื ืืืกืชืื ืขื ืืืชืจืื ืืช ืฉืืชื ืืืื ืืงืื ืขื ืืื ืืขืืจ ืืืืืืจ ืืขืจืืืช ืืืกืื Ceph ืืืืฆืขืืช ืื ืื ืืืชืงื CSI.
ืืขืืืื ืขื Ceph, ืชืืกืฃ CSI ืืกืคืง ืืืชืจ ืืคืฉืจืืืืช ืืขืืืื ืขื ืืขืจืืืช ืืืกืื ืืืฉืจ ืื ืืื ืืชืงื ืื ืืืื ืื.
- ืืฆืืจืช ืืืกืง ืืื ืื. ืืืจื ืืื ื ืขืฉื ืฉืืืืฉ ืืืืกืงื RBD ืจืง ืืืฆื RWO, ืื CSI ืขืืืจ Ceph ืืืคืฉืจ ืืืฉืชืืฉ ืืื ืืืฆื RWX. ืืกืคืจ ืคืืืื ืืฆืืชืื ืฉืื ืื ืืืืืื ืืืจืืื ืืช ืืืชื ืืืกืง RDB ืขื ืืฆืืชืื ืฉืืื ืืืขืืื ืืืชื ืืืงืืื. ืืืขื ืืืืื ืืช, ืื ืืื ืื ืื ืืืืจ - ื ืืชื ืืืืจ ืืช ืืืืกืง ืืื ืจืง ืืืชืงื ืืืืง, ืื ืฉืืืืจ ืฉืชืฆืืจืื ืืืชืืื ืืช ืืืคืืืงืฆืื ืืขืืื ืืืชื ืืืฆื ืจืืืื ืืืฉื.
- ืืฆืืจืช ืฆืืืืื ืืฆื. ืืืฉืืื Kubernetes, ืืชื ืืืื ืืืฆืืจ ืื ืืคืกื ืขื ืืืจืืฉื ืืืฆืืจ ืชืืื ืช ืืฆื. ืืคืืืืื CSI ืืจืื ืืช ืื ืืืฆืื ืชืืื ืช ืืฆื ืืืืืกืง. ืืืชืืกืก ืขื ืื, ืืชื ืืืื ืืขืฉืืช ืืืืื ืื ืขืืชืง ืฉื PersistentVolume.
- ืืืืืช ืืืื ืืืืกืง ืขื ืืืกืื ื-PeristentVolume ืืืฉืืื Kubernetes.
- ืืืกืืช. ืื ืืื ืืืชืงื ืฉื CephFS ืืืืื ืื ื-Kubernetes ืืื ื ืชืืืืื ืืืืกืืช, ืื ืชืืกืคืื ืืืฉืื ืฉื CSI ืขื ื-Ceph Nautilus ืืขืืื ืืื ืืืืชืจ ืืืืืื ืืืคืฉืจ ืืืกืืช ืืืืืฆืืช CephFS.
- ืืืืื. ืชืืกืฃ CSI ืืืื ืืกืคืง ื-Prometheus ืืืืื ืืืืื ืืืื ืืืื ื ืคืืื ืืืืืจืื, ืืืื ืชืงืฉืืจืช ืืชืจืืฉืช ืืื'.
- ืืืืข ืืืืคืืืืืื. ืืืคืฉืจ ืื ืืฆืืื ืืื ืืคืกืืื ืืืฆื ืืืฉืืื ืืืคืฅ ืืืืืืจืคืืช, ืืืืืื ืข ืืืืืืจ ืืขืจืืช ืืืกืื ืืืืืงืืช ืืืืกืืจืื ืืชืจืืืืื ืืคืืขืืื ืืืื ืืื.
ืืืฆื ืืืืจ ืืช Ceph ืืืฉืืื Kubernetes ืืืืฆืขืืช CSI, ืจืื
ืืืืจ ืืืืืจ: Sergey Bondarev, ืืืจืืื ืคืขืื ืืกืืืช'ืืจืืื', Certified Kubernetes Administrator, ืืื ืืืคืชืื kubespray.
ืงืฆืช ืคืืกื ืกืงืจืืคืืื ืื ืืคืจืกืื, ืืื ืืชืืขืืช...
ื .ื. ืกืจืืื ืืื ืืจื ืืืืื ืฉื ื ืงืืจืกืื ืืื ืื ืกืืืืื: ืืขืืืื
ืืงืืจ: www.habr.com