Pure Service Orchestrator を動かしてみました ー インストール編

前回は、Pure Service Orchestrator(PSO)の機能の要点をご紹介しました。今回は、実際に PSO をインストールしてコンテナ環境の Kubernetes と連携する方法を、サンプルを交えてご説明します。

Pure Service Orchestrator logo

image_pdfimage_print

前回は、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 を永続ボリュームとして利用する方法をご紹介します。

シリーズ「Pure Service Orchestrator を動かしてみました」

Pure Service Orchestrator を動かしてみました 第 1 回