Pure Service Orchestrator を動かしてみました ー インストール編
前回は、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』(英語)をご参照ください。ここではドキュメントの内容の大部分は省略させていただいて、サンプルを示します。
# 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 リポジトリのセットアップを行います。
$ 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 を含めてカスタマイズします。
$ 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 のインストール
次のコマンドを実行してプラグインをインストールします。
$ helm install --name pure-storage-driver pure/pure-k8s-plugin -f pure.yaml --set storageclass.isPureDefault=true
既にプラグインをインストールしている場合は、次のコマンドによりアレイ情報を更新できます。
$ helm upgrade pure-storage-driver pure/pure-k8s-plugin -f pure.yaml
プラグインを削除するには、次のコマンドを実行します。
$ helm del --pure-storage-driver
ここまでで、ピュア・ストレージの k8s プラグイン pure-k8s-plugin のインストールと設定が完了しました。インストールについての詳しい情報は、GitHub のサイト(英語)をご参照ください。
次回は、実際に k8s クラスタから FlashArray や FlashBlade を永続ボリュームとして利用する方法をご紹介します。