KubernetesのストレージオーケストレータであるRookが、コンテナ内のファイル、ブロック、オブジェクトなどのストレージを使用する実稼働ワークロードを対象としたバージョン1.0をリリースした。Rook 1.0のハイライトのひとつは、Ceph Nautilus、EdgeFS、NFSといったオペレータによるストレージプロバイダのサポートである。例えば、PodからのNFSファイルシステムの要求に対してRookは、手作業による介入のないプロビジョニングが可能だ。
RookはCloud Native Computing Foundation(CNCF)が受け入れた、初めてのストレージプロジェクトである。プロビジョニング、コンフィギュレーション、ディザスタリカバリ、デプロイメント、ストレージプロバイダのアップグレードなど、ストレージ管理者の日常的なタスクの自動化を支援する。Kubernetesの機能をオペレータパターンで活用することにより、分散ファイルシステムを、自動拡張と修復の可能なストレージサービスに変える。CephなどのストレージプロバイダでRookを使用する場合、管理者は、クラスタの目標状態の宣言だけを考えればよい。オペレータがクラスタ内のストレージ層をセットアップし、その構成を担当してくれる。
現時点ではCephが唯一の安定したストレージプロバイダで、他のほとんどのストレージプロバイダのサポートはアルファ版となっている。現在のリストには、Cassandra、CockroachDB、Minio、NFSが含まれている。今回の1.0リリースでEdgeFSのサポートがアルファからベータに移行したが、Rookはそれを"実稼働で使用可能な状態になった"と説明している。
RookのCephオペレータは、Cephの最新メジャーバージョンであるNautiliusをサポートするようになった。LuminousやMimicといった従来バージョンも引き続きサポートされているので、ユーザは、クラスタで}どのバージョンを実行するか選択することができる。新バージョンへのアップグレードでは、中断時間を最小限に抑えるために、段階的なアップグレードも可能だ。エラーが発生しやすい手動設定をユーザ作業から削除して、CephをKubernetesに展開するための簡単な方法も公開されている。新しいノードあるいはデバイスがクラスタに追加されると、Rookはそれらを自動的に検出し、必要に応じてデータを再調整する。
出典:Cephストレージに関するRookのドキュメントサイト
バージョン1.0では、既存のAWS S3サポートを補完するものとして、EdgeFSの新しいストレージプロトコルであるOpenStack Swiftのサポートが追加された。iSCSIブロックストレージもサポートされるようになり、EdgeFS使用時にストレージレイヤを読み書き可能な方法の選択肢が拡張された。また、EdgeFSオペレータには、EdgeFSストレージをプロビジョニングするためのカスタムリソース定義(CRD)を生成するウィザードなど、ストレージ管理を簡略化するGUIが付属している。それぞれのEdgeFSクラスタに、Prometheusで監視するためのメトリックも組み込まれた。クラスタの高可用性を向上させる手段として、リードレプリカのバランスを取るための障害ドメインを定義して、データの耐久性と可用性を最大限にすることが可能になった。
出典:EdgeFSストレージに関するRookのドキュメントサイト
さらに、NFSオペレータでは、Kubernetesの動的プロビジョニングストレージがサポートされた。PodからのNFSファイルシステムの要求に対して、手作業による介入なく、プロビジョニングと用意を行うことができる。ストレージの動的なプロビジョニングが可能になるまでは、ユーザが事前にストレージまたはクラウドプロバイダからストレージボリュームを手動でプロビジョニングし、Kubernetes内で永続的ボリュームオブジェクトを生成しておく必要があった。StorageClassオブジェクトを使用することで、このプロセスの自動化が可能になる。Rookは、NFS CRD経由でこのプロセスをサポートする。
最後にRookは、既存のストレージプロバイダのサポートを引き続き改善すると同時に、他のストレージシステムをクラウドネイティブな環境へ導入するためのツールとリソースを提供するものとしてのRookフレームワークに、さらなる投資を行う方針であることを述べている。また、公式サイトが更新されて、最初のリリース後に行われたすべての進捗が表示されるようになった。GitHubから入手可能なRookの完全なロードマップには、今後の改善やマイルストーンが記載されるとともに、コミュニティのさらなる関与を促している。