前回は、Pure Service Orchestrator(以降、PSO)の機能の要点をご紹介しました。今回は、実際に PSO をインストールしてコンテナ環境の Kubernetes(以降、k8s)と連携する方法を、サンプルを交えてご説明します。
1. PSO インストールの前提条件
OS:
- CentOS Linux 7.3
- CoreOS(Ladybug 1298.6.0 またはそれ以降)
- RedHat RHEL7
- Ubuntu(16.04)
環境:
- k8s 1.6 以上
- OpenShift 3.6 以上
その他のソフトウェア:
- 最新の Linux マルチパスソフトウェアパッケージ(必須)
- 最新の iSCSI イニシエーターソフトウェア(iSCSI 接続に必要)
- 最新の NFS ソフトウェア(NFS 接続に必要)
- 最新の FC イニシエーターソフトウェア(FC 接続に必要)
FlashArray および FlashBlade:
- FlashArray および / または FlashBlade が、Docker ノードとピュア・ストレージのベストプラクティスで接続されていること
2. ピュア・ストレージの k8s プラグインのインストール
ピュア・ストレージのプラグインを k8s にインストールするために、k8s のパッケージマネージャーである Helm をインストールします。
2 – 1. Helm のインストール
Helm は次の 2 つの要素で構成されています。
- クライアント(Helm):クライアント(CLI)として動作するパッケージマネージャー (Yumや Aptのイメージ)
- サーバー(Tiller):パッケージのインストールや更新、削除の処理を k8s クラスタ側で実施
Helm のインストールについて詳しくは、Helm のドキュメント『Using Helm – Quickstart Guide』(英語)をご参照ください。ここではドキュメントの内容の大部分は省略させていただいて、サンプルを示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# Helm のダウンロードと配置 $ wget https://storage.googleapis.com/kubernetes-helm/helm-v2.11.0-linux-386.tar.gz $ tar xzvf helm–v2.11.0–linux–386.tar.gz $ mv linux–386/helm /usr/local/bin # tiller の RBAC (Role-based access control) の設定 $ vi rbac–config.yaml apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube–system —– apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: tiller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster–admin subjects: – kind: ServiceAccount name: tiller namespace: kube–system # 設定ファイルを基にロールをバインドし、tiller の生成 $ kubectl create –f ./rbac–config.yaml serviceaccount “tiller” created |
2 – 2. Pure Storage Helm リポジトリのセットアップ
Helm のインストールが完了したら、下記のコマンドを実行し、Pure Storage Helm リポジトリのセットアップを行います。
1 2 3 4 5 6 7 8 9 |
$ helm repo add pure https://purestorage.github.io/helm-charts $ helm repo update $ helm search pure–k8s–plugin NAME CHART VERSION APP VERSION DESCRIPTION pure/pure–k8s–plugin 2.1.1 A Helm chart for Pure Storage persistent stor... |
2 – 3. コンフィグレーションファイルの設定
YAML ファイルに FlashArray / FlashBlade を含めてカスタマイズします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ vi pure.yaml ——————– arrays: FlashArrays: – MgmtEndPoint: “10.10.100.XX” APIToken: “a526a4c6-18b0-a8c9-1afa-3499293574bb” Labels: env: “prod” cos: “gold” – MgmtEndPoint: “10.10.100.XX” APIToken: “b526a4c6-18b0-a8c9-1afa-3499293574bb” Labels: env: “dev” cos: “silver” FlashBlades: – MgmtEndPoint: “10.10.100.XX” APIToken: “T-c4925090-c9bf-4033-8537-d24ee5669135” NfsEndPoint: “172.16.10.XX” Labels: env: “dev” —– |
- MgmtEndPoint:管理ネットワーク IP を指定
- APIToken:FlashArray / FlashBlade にアクセスするための API Token を指定
※ 管理画面の「Settings」⇒「Users」から取得 - Labels:アレイが複数台あって、ラベルを付けて使い分けたい場合に指定
※ 任意
例:Class of Service で性能・容量により利用するアレイ(//X20、 //X90 など)を変える
2 – 4. pure-k8s-plugin のインストール
次のコマンドを実行してプラグインをインストールします。
1 2 3 |
$ helm install —name pure–storage–driver pure/pure–k8s–plugin –f pure.yaml —set storageclass.isPureDefault=true |
既にプラグインをインストールしている場合は、次のコマンドによりアレイ情報を更新できます。
1 2 3 |
$ helm upgrade pure–storage–driver pure/pure–k8s–plugin –f pure.yaml |
プラグインを削除するには、次のコマンドを実行します。
1 2 3 |
$ helm del —pure–storage–driver |
ここまでで、ピュア・ストレージの k8s プラグイン pure-k8s-plugin のインストールと設定が完了しました。インストールについての詳しい情報は、GitHub のサイト(英語)をご参照ください。
次回は、実際に k8s クラスタから FlashArray や FlashBlade を永続ボリュームとして利用する方法をご紹介します。