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

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

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

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

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

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

Azure NetApp Filesとは?

Azure  NetApp Filesとは、NetApp社が提供するONTAPというストレージ専用OSを搭載した高性能ストレージのマネージドサービスです。Azure Filesとは違い、SMBだけではなくNFSプロトコルの採用、スナップショット機能、Active Directoryとの連携など、様々な機能を備えたストレージサービスです。

Azure Kubernetes Serviceから利用できるマネージドな共有ストレージの中で、最も高性能な部類に入ると言っても過言ではありません。今のところ、Azure Kubernetes Serviceから利用する共有ストレージは、Azure FilesかAzure NetApp Filseの2択になるのではないでしょうか?

Azure NetApp Filesの構成

以下のリンクを参考にAzure NetApp Filesの構成をまとめました。

https://docs.microsoft.com/ja-jp/azure/azure-netapp-files/azure-netapp-files-understand-storage-hierarchy

Screen Shot 2020-01-05 at 22.41.13

まず最上位にAzureサブスクリプションがあって、その下にNetAppアカウントがあります。NetAppアカウントを作成したあとは、それに紐づく容量プールというものを作成します。最小単位は4TiBです。そしてそこからボリュームというのを切り出していき、これがAzure NetApp Filesの最小利用単位となります。100GiBから利用可能です。このボリュームをAzure Kubernetes Cluster内のコンテナからマウントします。

サービスプラン

Azure NetApp FilesにはStandard、Premium、Ultraという3つのプランがあり、価格が異なるのはもちろんのことですが、プランごとに機能面では異なるのはスループットです。

  • Standard:1TiBあたり16MiB/s
  • Premium:1TiBあたり64MiB/s
  • Ultra:1TiBあたり128MiB/s

イマイチイメージしにくいかと思いますので、図にしてみました。

■ 例1:Premiumで1TiBのボリュームを切り出した場合

Screen Shot 2020-01-05 at 22.28.01

1TiBあたり64MiB/sのスループットが出るので、1TiBのボリュームを切り出したときは、そのまんま64MiB/sのスループットが出ます。

■ 例2:Premiumで500GiBのボリュームを切り出した場合

Screen Shot 2020-01-05 at 22.31.47

例1の場合とプランは同じで半分の500GiBのボリュームを切り出した場合は、例1の半分の32MiBのスループットになります。

■ 例3:Ultraで500GiBのボリュームを切り出した場合

Screen Shot 2020-01-05 at 22.34.30

例2とボリュームは500GiBと同じで、プランをPremiumからUltraに変更した場合は、スループットは64MiBとなり、例2の倍となります。Ultraのスループットは1TiBあたり128MiB/sだからです。

このように利用する容量とスループットによって、選択するプランを考えなければなりません。容量が少なくてもスループットが欲しい場合はUltra、容量がたくさん欲しいけれどスループットが低くてもいい場合はStandardなどの使い分けが必要になります。

構築してみましょう

基本的には以下のリンクの公式マニュアルどおりでOKでした。

https://docs.microsoft.com/ja-jp/azure/aks/azure-netapp-files

Azure NetApp Files順番待ちリスト送信

では、早速構築してみましょう。まず、2020年1月5日現在、Azure NetApp Filesを利用するにはAzure NetApp Files順番待ちリスト送信フォーム(上記URL参照)から申請をして、受理されなければなりません。これには数日かかります。

私の場合は、申請しても特に受理されたよ−みたいなメールも来ず、年末年始を挟んでいたせいか3〜4日程度待っても何も応答がありませんでした。そこでサポートに状況を確認したら、1日経たないうちに「申請が受理されたよ−」みたいなお返事を頂き、使えるようになりました。

NetAppアカウントの作成

以下のコマンドでNetAppアカウントを作成します。[MCから始めるリソースグループ名]はAzure Kubernetes Clusterを構成する各種リソースが所属するリソースグループを指定してください。naf-accountという名称で東日本リージョンにNetAppアカウントを作成します。

 

容量プールの作成

容量プールを作成します。下記コマンドは、東日本リージョンにnafpoolという名前の4TiBの容量プールをUltraプランで作成するものです。

サブネットの作成

後ほど作成するボリュームが所属するサブネットを作成します。Azure Kubernetes Clusterと同じサブネットに所属するようにします。

 

ボリュームの作成

ボリュームを作成します。先程作成したサブネットに所属するようにします。

 

作成されたボリュームのIPアドレスの確認

先程作成したボリュームに割り当てられたIPアドレスを確認します。後ほど、Azure Kubernetes Serviceからマウントするために作成するPersistentVolumeClaimを作成するために必要になります。以下のレスポンスのipAddressがボリュームに割り当てられたIPアドレスです。

 

PersistentVolumeの作成

PersistentVolumeのマニフェストを以下のように作成します。

 

PersistentVolumeClaimの作成

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

 

Deploymentの作成

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

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

まとめ

Azure NetApp Filesは本格的なエンタープライズ用途のストレージです。Azure Kubernetes Serviceから利用できる共有ストレージの中では最有力候補になりうるのではないかと思っております。これからもどんどん使っていきましょう(^o^)

ちなみにこちらの記事で紹介したAzure Filesを利用したときのWordPress激遅問題はAzure NetApp Filesを使うことで解決しました。





ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



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


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

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

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

コメント投稿

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


*