Skip to content

About OpenEBS

OpenEBS

  • OpenEBS は、Kubernetesワーカーノードが利用できるあらゆるストレージ(ローカルや分散など) をKubernetes Persistent Volumesに変換します

Reference

OpenEBS について

  • MayaDataが実装を公開し、現在はCNCF sandbox projectのContainer Storage Interface (CSI) Providerです
  • Container Attached Storage(CAS) アーキテクチャーを採用している
  • Dynamic Provisionerをサポートしている
    • Kubernetes Nativeの local PersistentVolume volume はStatic Provisioningのみをサポート

Container Attached Storage(CAS)

Container Attached Storage(CAS) とはPodで利用可能なストレージをコンテナ化したマイクロサービスとしてKubernetes Clusterへデプロイする仕組みです。 CAS ではPersistent Volumesをマイクロサービス ベースのストレージ レプリカとして構成します。その際、ストレージ レプリカを管理するためのストレージ コントローラを、独立してスケーリングおよび実行できる 構成ユニットとしてデプロイします。(つまり、OpenEBS におけるPVはVolumeをホストするreplica pod と replica podを管理するcontroller podで構成されます)

  • 以下は Deploy Jenkins with OpenEBS で作成されるストレージ レプリカとコントローラ
    $ kubectl get pods -n openebs | grep pvc-2fee1acb
    openebs                pvc-2fee1acb-2d7f-4068-b56e-777eefa35e4a-jiva-ctrl-66d449fp8jp8   2/2     Running   0                3h58m   10.200.0.39    k8s-master   <none>           <none>
    openebs                pvc-2fee1acb-2d7f-4068-b56e-777eefa35e4a-jiva-rep-0               1/1     Running   1 (3h34m ago)    4h16m   10.200.2.194   k8s-node2    <none>           <none>
    openebs                pvc-2fee1acb-2d7f-4068-b56e-777eefa35e4a-jiva-rep-1               1/1     Running   1 (3h40m ago)    4h16m   10.200.0.38    k8s-master   <none>           <none>
    openebs                pvc-2fee1acb-2d7f-4068-b56e-777eefa35e4a-jiva-rep-2               0/1     Pending   0                4h16m   <none>         <none>       <none>           <none>
    

Node Disk Manager(NDM)

  • https://openebs.io/docs/main/concepts/ndm
    • CPUやMemory、Networkなどと同じようにNode上のblock deviceをkubernetes resources(CustomResource)として管理するためのコンポーネント
    • DeamonSetとして各Nodeにデプロイされる
    • Node上のblock deviceへのアクセスするのに /dev, /proc, /sys へのアクセス権限が必要なためPrivileged modeで動作する
    • Local PVcStor PV で使用される

ストレージエンジン