Azure Kubernetes Serviceでの共有ストレージ(Azure Files編)

こんにちは、サイオステクノロジー技術部 武井です。今年最後の日に書くブログでは、Azure Kubernetes Serviceで利用できる共有ストレージの中で、Azure Filesを試してみました。

AKSで利用できる共有ストレージ

公式マニュアルでは、Azure Kubernetes Serviceで利用できる共有ストレージは以下の3つがあります。

  • Azure Files
  • 仮想マシンに立てたNFSサーバー
  • Azure Netapp Files

今回はAzure Filesを試してみることにします。

Azure Filesとは?

Azureで利用できるマネージドなファイルサーバーであり、SMBプロトコルを介して通信できます。なので、Windowsからでも簡単にマウント出来て非常に便利です。マネージドなので、仮想マシンにsambaサーバー立てたときのように、面倒くさい管理も不要です(*´▽`*)

AKSからAzure Filesを使ってみる

KubernetesはAKSに限らずPodは基本的にステートレスであるべきなので、データを永続化したい場合は何らかの手段を考える必要があります。その一つが、今回利用するAzure Filesになります。ほぼほぼ、公式のマニュアルどおりでOKでした。設定はマジで簡単でした。

まずストレージクラスを作成します。AKSに固有な設定は2つあります。一つは、provisionerにkubernetes.io/azure-fileを指定します。これはAzure Filesのストレージを表すリソースです。もう一つはparameter.skuNameです。Azure FilesにはStandardとPremiumの2つのプランがあり、前者はStandard_LRS、後者はPremium_LRSと指定します。LRSの部分はストレージのレプリケーション方式を表しており、この場合はローカル冗長を表します。

 

次にPersistentVolumeClaimのマニフェストを以下のように作成します。100Gのストレージを要求する例です。

 

これをPodからマウントするためのdeploymentリソースのマニフェストは以下のとおりです。

 

上記のマニフェストを実行すると、/var/www/html以下にAzure Filesのストレージがマウントされます。非常に簡単ですね。

まとめと注意

非常に簡単で便利なAzure Filesですが、一個ハマったところがあります。WordpressをAzure Kubernetes Serviceに移行する際、wp-contentというディレクトリをAzure Filesにマウントしました。このディレクトリは、ブログにアップロードした画像やプラグインのPHPファイル、テーマのCSSやJava Script、HTMLファイルが格納されているのですが、この設定をしたら、Wordpressが激遅になりました。

WordPressは実行するたびに大量のプラグインのPHPをrequireするのですが、Azure Filesではどうやらおそらく細かいたくさんのファイルを読み込むのが遅いようです。大きい単一のファイル(画像や動画)なら、そこそこのスピードが出ていました。もしくは先のWordpressはLinux上で動作していたのですが、LinuxとSMBプロトコルの相性が悪いのかもしれません。

なので、このAzure Filesをやめて、冒頭にご紹介した「仮想マシンに立てたNFSサーバー」に変えてみたら、激速くなりました。なので、まぁ、原因はAzure Filesにあることは間違いなさそうです。

ということで上記のようなこともありますが、やっぱりAzure Filesは便利ですので、適材適所でどんどん使ってみたいと思います(^o^)

>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*