株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

dell-csi-operatorなるツール

皆様こんにちは。ネットワールド ストレージ製品担当の井上です。

最近業務でコンテナ関連技術を色々触ったりするのですが、何かいいネタがないかなとDellサポートサイトという大海原を航海していたところ、タイトルにも書いたdell-csi-operatorというものを見つけたので今回はこちらについてのレポートでる!
 ※K8s関連ツールの話なので、移行は多少のK8s知識があればなんとな~くわかるようなレベル感の内容になっているかと思います

さて...そもそもdell-csi-operatorってなに?というところからですが、GitHubで公開されているCSI用のOperatorです。

[dell-csi-operator GitHubリポジトリ]
https://github.com/dell/dell-csi-operator


・まず、CSIについて
は以前以下の記事でcsi-unityの利用について少し取り扱いましたが、Container Storage Interfaceの略称、でK8sでちゃんとデータが消えないVolume(永続ボリューム)を使うための規格でしたね。そしてcsi-unityは永続ボリュームとしてUnityを利用するためにK8sに導入するplug-in的なものでした。

 使ってみよう csi-unity !!(其ノ壱) - ネットワールド らぼ

 使ってみよう csi-unity !!(其ノ弐) - ネットワールド らぼ


・続いて、Operatorについて

こちらは私もまだまだ勉強中なので正しく理解しきっているか怪しいですが、ざっくり言うとK8sでカスタムコントローラとカスタムリソースというものを使って運用を自動化する仕組み、というところでしょうか。
K8sのReconsileという概念を聞いた方がある方もいると思いますが、K8sではたとえばPod(コンテナ)などのK8sのAPIオブジェクトの理想形を定義して、オブジェクトがその状態を満たしていない場合には、理想形になるように随時調整する、という仕組みです。
なるほどなぁ~という感じですが、何もしなければ指定できる理想形というのはK8sの各APIリソースの仕様に縛られてしまうわけです。そこをユーザにリソースを柔軟に定義してもらったものを登録して、K8sのAPIリソースとして扱えるようにする仕組みがカスタムリソースです!
そしてK8sがカスタムリソースのオブジェクトをどうやって理想形に近づけるのかを制御するためのコンポーネントが、カスタムコントローラです!!(つ、伝わりましたかね...?)
これらを用いてオブジェクトの状態確認と、それに応じた対応を柔軟に自動化できる仕組みがOperator、と理解しています。
公式的には以下のリンクを参照いただければと思います。(なかなか宇宙語かもしれません。。)
https://www.redhat.com/ja/topics/containers/what-is-a-kubernetes-operator

 

ということで、、
K8sの話が長くなりましたが、、このOperatorを使って
各ストレージのCSIツール(e.g. csi-unity)を管理運用するツール!!
がdell-csi-operatorというわけです!
以前csi-unityのリンクで紹介した時は、csi-unityパッケージに同梱されているインストールスクリプトによるHelm(K8sのパッケージマネージャ)ベースのインストールを実施しましたが、dell-csi-operatorを使う場合は、CSIのインストールにHelmは使わず、dell-csi-operatorパッケージに同梱されている定義ファイルからコンポーネントを作成する感じになります。
といってもどちらもコマンドを1つ2つたたくだけなので、労力的な違いはありません!

ちなみに、Operatorリポジトリというものがあって、そこでは登録されているOperatorがどの次元の機能を実現しているかという、Capabilityレベルを表示してくれています。
これ(以下参照)を見てみるとdell-csi-operatorはLevelⅡで、運用フレームワーク的な視点ではHelmで実現可能なものと大差はなさそうです。
https://operatorhub.io/operator/dell-csi-operator 

f:id:networld-blog-post:20210329094438p:plain

OperatorHub.io/dell csi operator

f:id:networld-blog-post:20210329094442p:plain

Capability level (OperatorHubより抜粋)

 ただ、dell-csi-operatorを使う場合はyumやaptのようなパッケージ管理ツールであるHelmと違って、カスタムコントローラがCSIツールのインストールにより作成されるカスタムリソースのオブジェクトをマネージする形になるので、運用レベルやCSIとしての機能的な差はなくとも、CSIツール自身の長期的な安定稼働という観点ではもしかするとdell-csi-operatorを使う方が良いかもしれません。

また、dell-csi-operatorはCSI対応しているすべてプロダクトに対応しているので、複数種のストレージをK8s環境で使いたい場合にも、dell-csi-operatorによる各種CSIの一元管理という意味で良いかもしれませんね。

そういう点と、CSIによってはインストール方法の違いにより微妙ーに仕様が違う部分もあるようなので、CSIを利用する際には、まずはインストール方法から検討してみましょう!

 ということで、今回はdell-csi-operatorについて紹介させていただきました!
ここまで読んでいただきありがとうございました!

 

Networld Techのブログ一覧はこちら!

https://www.networld.co.jp/product/emc/tech-blog/