- Community Home
- >
- HPE Community, Japan
- >
- HPE Blog, Japan
- >
- コンテナストレージ 応用編3 -KubernetesとCSI-
カテゴリ
Company
Local Language
フォーラム
ディスカッションボード
フォーラム
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
ディスカッションボード
ディスカッションボード
ディスカッションボード
フォーラム
ディスカッションボード
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
フォーラム
ブログ
コンテナストレージ 応用編3 -KubernetesとCSI-
近年のコンテナの普及には目覚ましいものがあります。まだまだと思っているうちに臨界点を超えて一気に普及してきそうな気配を感じます。さて実際普及するとなるとどうしても「標準仕様」が必要になってきます。例えばネットワークの世界ではCNI(Container Network Interface)そしてストレージの世界でもCSI(Container Storage Interface)という規格があります。今回HPEはこのCSIドライバー(ベータ版)をリリースしましたのでこのブログで紹介したいと思います。
尚、本記事はHPEの同僚であるMichael Mattssonが記載したブログをベースにしています。
CSI(Container Storage Interface)とは
CSI(Container Storage Interface)とは、Kubernetes, Mesos, Docker, Cloud Foundry などのコンテナオーケストレーションシステム(Container Orchestration Systems:以降CO)とストレージ間のインターフェースの標準仕様です。2018年3月にアルファ版(v0.1.0)がリリースされてからわずか8か月後の同年11月に正式リリース(GA:GeneralAvailabitiy :v1.0)されました。
Kubernetes Releases
Kubernetes CSI Spec Compatibility Statusv1.9 | v0.1.0 | Alpha |
v1.10 | v0.2.0 | Beta |
v1.11 | v0.3.0 | Beta |
v1.13 | v0.3.0, v1.0.0 | GA |
https://kubernetes-csi.github.io/docs/introduction.html#kubernetes-releases
既存のストレージプラグイン(FlexVolumeプラグイン)の場合、各ストレージベンダーは異なるCOに対して複数のボリュームドライバーを作成してサポートする必要がありました。また場合によってはCO側のコード変更が必要なケースもありえます。一方COのリリースサイクルは短く、その都度コードの変更・テストが必要なため、非常に生産性が悪いという課題がありましたが、今回のCSIの正式リリースにより、CO側に依存せず、独立してストレージ側の機能追加や修正を行えるようになります。
HPEのCSIドライバー
全体構成は以下のようなフレームワークとなっており、CSIコンポーネントはKubernetesクラスター内の拡張機能として機能します。CSIでは、Kubernetes(CO)側が、以下の5つのサイドカーコンテナを提供します。
- Node driver register: CSI driverをkubeletに登録します
- CSI Provisoner: PersistentVolumeClaim(PVC)オブジェクトを監視し、CSIエンドポイントに対してボリューム作成や削除の命令を実行します
- CSI Attacher: VolumeAttachmentオブジェクトを監視し、CSIエンドポイントに対してボリュームをノードにアタッチする命令を実行します
- CSI Resizer:PersistentVolumeClaims オブジェクトを監視し、CSIエンドポイントに対してControllerExpandVolume命令を実行します
- CSI Snapshotter:VolumeSnapshot とVolumeSnapshotContent CRD オブジェクトを監視し、CSIエンドポイントに対してボリュームのスナップショットを作成する命令を実行します
このような構成をとることにより、各ベンダーはKubernetesとは独立してCSIドライバーの仕様を個別に変更することが可能になります。CSIの拡張性は、Custom Resource Definitions(CRD:Kubernetes APIを拡張して独自のリソースを定義するもの)で実現します。CRDではリソースを自分で定義し実装することが可能となっているので、例えばエンドユーザー向けにベンダー固有の機能を導入するために独自のCRDを作成することも可能です。
CSIには多くの利点があります。HPEではストレージ機能をユーザーが簡単に使えるように、拡張PVC(PersistentVolumeClaim)アノテーションを使用します。CSIでは、多くのデータ管理機能がKubernetesのAPIオブジェクトになります。例えばストレージシステムのスナップショットがスナップショットAPIオブジェクトとして機能します。
以下の表は、現時点でのCSIドライバーでサポートされる機能とバージョンの一覧です。一例として、ボリュームスナップショット機能はK8s 1.12から組み込まれていますが、現在アルファでGAまでにはもう少し時間がかかります。
HPE CSIドライバーの構成
HPEのCSIドライバー実装はサイドカー方式を採用していて、CSIコントローラードライバーとCSIノードドライバーのほかに、ストレージ製品個別のContainer Storage Provider (CSP) を実装します。このCSPはRESTful APIに対応しているため、CSIやKubernetesの知識がさほどなくてもストレージシステムの機能が使えます。具体的にはボリュームデバイスのアタッチ・デタッチ、プロビジョン、マウント、ワークフローアロケーション等、一般的な機能が利用できます。
HPE Nimble Storageパブリックベータで何ができる?
最初のベータ版ドライバーは、HPE Nimble Storage用のCSPが含まれており、他のHPEプラットフォーム用CSPは開発中です。CSPの開発は先行して行われており、既存のFlexVolumeプラグインと同等の機能と、さらにいくつかの追加機能があります。現在HPE CSIドライバーはCSI v1.1.0機能セットをサポートしています。具体的にはダイナミックプロビジョニング、Rawブロックボリューム、ボリュームスナップショット、ボリューム拡張とボリュームクローニング、およびインラインエフェメラルボリュームです。
また、このリリースを機にデプロイメントの効率化を考えて、ヘルム(Helm)チャートを使用して展開できるようにしています。Helmは、Kubernetes上にソフトウェアスタックを構築する上で便利なパッケージ管理ツールで広く利用されています。
関連ブログ
関連リンク
HPE CSI Driver Github
https://github.com/hpe-storage/csi-driver
CSI Volume Plugins in Kubernetes Design Doc
https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/container-storage-interface.md
- ブログへ戻る
- より新しい記事
- より古い記事
- MiwaTateoka 場所: Windows Server 2019のCertificate of Authenticity (C...
- OEMer 場所: タイトル: HPE OEM Windows Serverのライセンスに関する質問にすべて回答しましょ...
- いわぶちのりこ 場所: 【連載】次世代ハイパーコンバージド「HPE SimpliVity」を取り巻くエコシステム ー 第3回...
- Yoshimi 場所: ジェフェリー・ムーア氏からのメッセージ - 未訳の新著 "Zone To Win" を解説! (2)...
- Yoshimi 場所: ジェフェリー・ムーア氏からのメッセージ - 未訳の新著 "Zone To Win" を解説! (...
- 三宅祐典 場所: 「HPE Synergy」 発表! ~ (3) この形・・・ ブレードサーバー??