Armazenamento de dados em um cluster Kubernetes

Existem várias maneiras de configurar o armazenamento de dados para aplicativos em execução em um cluster Kubernetes. Alguns deles já estão desatualizados, outros surgiram recentemente. Neste artigo, consideraremos o conceito de três opções de conexão de armazenamento, incluindo a mais recente - conexão via Container Storage Interface.





Método 1. Especificando PV no Manifesto do Pod



Um manifesto típico que descreve um pod em um cluster Kubernetes:





As partes do manifesto que descrevem quais volumes estão conectados e onde estão destacados em cores.



Na seção volumeMounts , os pontos de montagem (mountPath) são indicados - em qual diretório dentro do contêiner o volume persistente será montado, bem como o nome do volume.



volumes , . , ( : awsElasticBlockStore) . , .



. .



, Kubernetes , .



:



  1. , Kubernetes ;
  2. , , ;
  3. (, AWS Google Cloud), .


, : configMap, secret, emptyDir, hostPath:



  • configMap secret — , Kubernetes.



  • emptyDir — , . . pod , emptyDir .



  • hostPath — , , — /etc/kubernetes. , . /etc/kubernetes . , hostPath , namespace kube-system.





C , Kubernetes .



2. SC/PVC/PV



— Storage class, PersistentVolumeClaim, PersistentVolume.



Storage class .



PersistentVolumeClaim , .

PersistentVolume .



: volume PersistentVolumeClaim claimName.





PersistentVolumeClaim , . :



  • ;
  • : ReadWriteOnce ReadWriteMany;
  • Storage class — .


Storage class . , .



PersistentVolume Storage class (ID , , . .).



PVC, Kubernetes , Storage class , PersistentVolume.



PV , Kubernetes — Provisioner ( Storage class). , , Kubernetes PersistentVolume, PersistentVolumeClaim.



, , .



Storage class, . , AWS Google Cloud, — Storage class PVC. Persistance Volume , Provisioner.



3. Container Storage Interface



, , Kubernetes. , Kubernetes. .



, Cloud Foundry, Kubernetes, Mesos Docker Container Storage Interface (CSI) — , (CSI Driver), . Kubernetes .



Container Storage Interface.



, CSI Driver : Node Plugin Controller plugin.



Node Plugin . Controller plugin : , . .



Kubernetes , CSI Driver , .



, Storage class, . — Storage class, . helm chart . Storage class , helm chart, Storage class. , .



, , , Ceph CSI .



Ceph CSI , .



  1. . RBD RWO, CSI Ceph RWX. pod' RDB- . , — , .
  2. . Kubernetes . CSI . , PersistentVolume.
  3. PersistentVolume Kubernetes.
  4. . Kubernetes CephFS , CSI- Ceph Nautilus CephFS-.
  5. . CSI- Prometheus , , . .
  6. Topology aware. , , , , .


Ceph Kubernetes CSI, . - Ceph, 15 .



: , Southbridge, Certified Kubernetes Administrator, kubespray.



Post Scriptum , ...

P.S. : Kubernetes 28-30 Kubernetes 14–16 .






All Articles