仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

Kubernetesで永続ストレージを構築するツールのRook(の最新版)を使う

本ブログで度々話題に上がるRookですが、現在Stableは0.7.1がリリースされており、まもなく大幅に機能強化された0.8がリリースされます。

バージョン0.8では次のページにあるようなダッシュボードが追加されており、別途kubectl createすれば利用可能です。ステータス、ログ、使用率などが確認できます。

f:id:virtualtech:20180717122114p:plain

詳しくはドキュメントをご覧ください。

github.com

またCephコマンドラインツールも利用できるようになります。中身はCentOS 7にCephのコマンドラインツールがインストール済みの環境でした。

github.com

ダッシュボードより、おそらくコマンドラインツールの追加の方が嬉しい機能追加だと思われます。 そのほかの機能強化点としては、OpenShiftの対応が追加された点でしょうか。

github.com

Rook 0.8リリースまでの道のりですが、以下のページを確認いただくとわかります。 グラフが伸びきったらバージョン0.8が晴れてリリースされます。

github.com

この後さらに0.9が開発されリリースされた後、1.0がリリースされてリリース版として公開されるようです。

使ってみよう

バージョン0.8は現状リリースされていませんが、手元の環境で動いたバージョンをセットアップする手順をここにまとめたいと思います。利用した上でバグを見つけたら、本家に報告してください。

今回はmasterブランチのソースを利用します。最後にコミットを指定して切り替えていますが、このコミットIDは私が最後に動作確認しているものです。手元のKubernetes 1.10環境(私専用)では、正常に動いています。

なお、最新のKubernetes 1.11では動作しない可能性があります。最新のコミットを追っかけてみてください。

% git clone https://github.com/rook/rook.git
% cd rook
% git checkout 41829b1456fbad6831530c70b68e445d1a969bf8

この記事を執筆している現在Rook 0.8はリリースされていませんが、リリース後は上記の方法ではなく次のようにブランチを指定してください。

% git clone -b release-0.8 https://github.com/rook/rook.git

該当のソースをダウンロードしたら、あとはデプロイするだけです。Kubernets 1.7以降が要件です。

github.com

デプロイ後、コマンドラインツールが必要なら以下を追加し、

github.com

Cephダッシュボードが必要であれば以下を参考に追加します。

github.com

Cephをデプロイした場合のストレージクラス名がrook-blockからrook-ceph-blockに変わっているようです。YAMLに記述する場合、注意が必要です。

また、デフォルトストレージを設定する場合も次のようにストレージクラス名を指定しましょう。

% kubectl patch storageclass rook-ceph-block -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'