LoginSignup
1

More than 5 years have passed since last update.

Rancher1.6系でのrancher-nfsの使い方

Posted at

RancherにはボリュームプラグインとしてNFSをマウントする機能がある、というのはちょっと調べれば出てくる話ですが、肝心の使い方に触れた記事ってあんまり無いようなので、書いておこうと思います。

rancher-nfsとは?

dockerでコンテナを作るときに、任意のディレクトリをコンテナにマウントすることができますが、「ボリュームプラグイン」を使うことでローカルディレクトリ以外のものもマウントできるようになります。
rancher-nfsはNFSをマウント可能にするボリュームプラグインですが、RancherのUIから設定できて、クラスタ全体で同じ設定を共有できるので、HighAvailabilityなコンテナを作成するときに向いていたりします。

インストール

せっかくなので、インストールから設定まで、すべてRancherのUIでやってしまいましょう。

まず、カタログからrancher-nfsをインストールします。
image.png
image.png

このような設定画面が出てくると思います。
image.png

NFS Server
デフォルトのNFSサーバーを指定します。
ボリュームを自動作成するときに使われます。
この記事の運用パターンではボリュームごとに接続先を指定しますので、ここでは適当に入れてかまいません。
Export Base Directory
ボリュームを自動作成するときの、ベースディレクトリです。
NFS Serverで指定したサーバで、このディレクトリをExportして、書き込み可能にしておくと、この下に自動的にディレクトリが作られたりします。
Mount Options
mountコマンドで指定するオプションです。省略可
NFS Version
環境に合わせて3か4を選んでください。だいたいは4で大丈夫だと思います。
On Remove
これがわかりません!
retainは残すという意味で、purgeは捨てるという意味なので、怖いからretainを選んでいます。

これでインストールすると、Rancherのクラスタの全hostにnfs-driverがdeployされます。
このnfs-driverはprivilegedで、/var/lib/rancher/volumesをマウントしています。
/var/lib/rancher/volumesの下に指定されたNFSサーバのディレクトリをマウントし、そのマウント先をまた別のコンテナがマウントして使う仕組みになっています。
なので、コンテナはNFSクライアントをインストールする必要も、privilegedな権限も必要ありません。

ボリュームを定義する

コンテナでマウントするためには、rancher-nfsにボリュームを作ってもらわなければなりません。
それを自動化してくれるのが、RancherのStorage Driverです。
実際に作ってみましょう。
image.png

Storage画面へ行ってください。
すると、rancher-nfsの表記があると思います。
image.png

Add Volumeをクリックすると、新規にボリュームを定義することができます。
image.png

NameとDescriptionは読んで字のごとくですが、この記事のキモはDriver Optionsです。
Driver Optionsにhostexportを定義することで、ボリュームごとに、任意のNFSサーバ、任意のディレクトリを指定することができます。

コンテナにマウントする

マウントするほうは、通常通りローカルディレクトリをマウントするのと同じ画面で、さきほど作ったボリュームの名前を指定します。
image.png

ここで、ボリュームに定義されていない、/から始まるフルパスを指定すると、rancher-nfsを経由せずにhostのローカルディレクトリもマウントできます。
rancher-nfsとlocalは併用可能です。

これで、コンテナがどこのhostに移動しても大丈夫な、HighAvailabilityなコンテナに一歩近づきました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1