前回、前々回と Portworx の概要や機能をご紹介し、PX-Central では 30 日間の無償ライセンスをご利用いただけることに触れました。今回は、この無償ライセンスを利用して「Portworx Enterprise」をオンプレミスの VM 環境にインストールしてお試しいただく方法をご説明します。
インストールの前準備
ここでは手軽なインストールのご紹介を念頭に、次のようなミニマム構成を準備しました。
- OS:ESXi 6.5 上で CentOS 7(64 bit)を利用
- ハードウェア:4 vCPU、4 GB RAM、128 GB(ハードディスク 1)、100 GB(ハードディスク 2)、10 GB ネットワーク・アダプタ
- ストレージ:データストアとしてピュア・ストレージの FlashArray//X20 R2 を利用して、各 VM に 2 つのストレージを割り当て(OS 用と Portworx が利用するボリューム)
- コンテナ環境:Kubernetes v1.19.7、Docker v19.03.9
上記の環境を Master ノード 1 台、Worker ノード 3 台にそれぞれ準備します。インストール要件の詳細は、次の資料をご参照ください。
- Prerequisites(インストールの要件)
- Portworx on Kubernetes(Kubernetes へのインストール)
- Portworx on other orchestrators(Kubernetes 以外のオーケストレータへのインストール)
インストール用 Spec ファイルの作成
- PX-Central にアクセスすると、ログイン画面が表示されます。はじめての方は、画面下の Create account を選択します。
- 必要な情報を入力して Get Started をクリックします。
- 手順 2 で入力した Email アドレスに確認メールが届きます。Start Using Portworx をクリックすると、ブラウザに次のような画面が表示されます。Portworx Enterprise の左にある丸ボタンをクリックして選択し、画面右下の Next をクリックします。
- 以下の Spec Generator の画面で、事前に用意した Kubernetes のバージョン(
kubectl version --short | awk -Fv '/Server Version: / {print $3}'
)の値を入力し、最新の Portworx のバージョンを選択します。今回は、Portworx が利用する ETCD(キーバリュー・ストア)もインストールに含めるため Built-in を選択します。なお、PX-DR(ディザスタ・リカバリ)や PX-Migrate(マイグレーション)機能をご使用の際は、外部の ETCD が必要です。その場合は Your etcd details を選択し、下に表示される入力欄に、用意した ETCD の URL を入力してください。Next をクリックします。 - 各項目を設定します。設定項目については、それぞれ説明します。
- Select your environment:
インストール環境が On Premises か、Cloud(AWS、GCP、AZURE、vSphere)かを選択します。今回は On Premises を選択します。 - Select type of OnPrem storage:
選択肢が 2 つあります。- Automatically scan disks:
Kubernetes クラスタにノードを追加した際に、そのノードが持つストレージ・デバイスを自動的にスキャンし、マウントされておらず利用されていないストレージ(例:/dev/sdb, /dev/sdc, …
)を全て Portworx ストレージプールに追加します。 - Manually specify disks:
特定のディスクのみを追加し、該当ディスクを指定します。/dev/sdb
のように複数指定も可能です。
今回は Automatically scan disks を選択します。なお、Enterprise ライセンスでは、Manually specify disks で
/dev/sdb
を指定し、あるノードには/dev/sdc
を追加することも可能です。 - Automatically scan disks:
- Use unmounted disks even if they have a partition or filesystem on it. PX will never use a drive or partition that is mounted:
マウントされていないけれどもパーティションやファイル・システムを持つデバイスも対象とするかどうかを選択します。今回は選択しません。 - Auto create journal device:
Portworx がジャーナル・パーティションを最適(高速)なデバイス上に独立したパーティションとして自動的に作成するかどうかを選択します。これは性能に影響しますので、本番環境ではチェックを入れてください。 - Configure KVDB Device:
手順 4 で Built in KVDB(ETCD)を選択したため、本番クラスタでは内部 KVDB データを格納するために別のデバイスを提供することをおすすめします。 これにより、ストレージに対する I/O から KVDB への I/O を分離できます(例:/dev/sdb
)。なお、この「Built in KVDB」デバイスは、3 ノードのみに存在します。Portworx が KVDB をどのノードで動かすかを指定するには、対象ノードにpx/metadata-node=true
というラベルをつけます。
例:kubectl labelnodes node1 node2 node3 px/metadata-node=true
今回はできるだけシンプルにインストールしたいので、Skip KVDB device にチェックを入れます。 - Configure Cache Device:
PX-Cache は、キャッシュ・ドライブを使用してストレージ・プールに接続することにより、ストレージ・プールの性能を向上させます。追加のキャッシュ・ドライブは、接続されているプールのレイテンシと IOPS を改善します。キャッシュ・ドライブは SSD または NVMe ドライブのいずれかである必要があり、ストレージ・プールは磁気ドライブで構成されている必要があります。今回は、オールフラッシュ・ストレージをデータストアとして利用しているため、指定しません。
参考資料:Storage pool caching(ストレージ・プールのキャッシング)
- Select your environment:
- Next を選択します。
- ネットワークの設定画面では何も変更せずに Next を選択します。
- 最後の画面では Advanced Settings で Enable Stork と Enable CSI を選択し、Finish をクリックします。
- なお、手順 7 の画面で Enable Monitoring を選択すると、Prometheus と Grafana 用のメトリクスが自動的にインストールされます。これには追加の設定が必要になりますが、ぜひお試しください。詳細は、Prometheus and Grafana をご参照ください。
- Portworx Enterprise License Agreement の画面が表示されます。
- 今後の設定変更などに備えて Spec ファイルを手元に保存します。Download ボタンをクリックし、ダウンロードした
yaml
ファイルを Kubernetes の Master ノードに置きます。
Kubernetes に Portworx をインストール
- 先ほどダウンロードした Spec ファイルを Kubernetes に適用します。
# kubectl create -f portworx_enterprise.yaml
Portworx をアンインストールする手順は、こちらのページをご参照ください。 - Portworx の Worker ノードへのインストールが始まります。Kubernetes の Master ノードにはインストールされません。インストールは 5~10 分程度で完了します。
なお、インストール中のログは、以下のようなコマンドで参照できます。- Worker ノード上で実行:
# journalctl -lefu portworx*
- Master ノード上で実行:
# kubectl -n kube-system logs portworx-xxxx
- Worker ノード上で実行:
- インストールが完了して全てのポッドが「READY」の状態になると、Worker ノード上で
pxctl
コマンドが実行できるようになります。まずはpxctl status
コマンドで状態を確認します。
スキャンされたノードやディスク、ストレージ・プールの Total Capacity が確認できます。
Portworx のボリュームを使ったサンプル・コンテナ
最後に、Portworx のボリュームを使用したサンプル・コンテナを作ってみましょう。
- ストレージ・クラスを作成します。
repl
の数を変えることで、このストレージ・クラスを元に作成されるボリュームの同期レプリケーションの数を指定できます。最大値は 3 です。kubectl create -f portworx-sc.yaml
1kind: StorageClass<br>apiVersion: storage.k8s.io/v1<br>metadata:<br> name: portworx–sc<br>provisioner: kubernetes.io/portworx–volume<br>parameters:<br> repl: “1”<br> - Persistent Volume Claim を作成します。
kubectl create -f portworx-volume-pvcsc.yaml
1kind: PersistentVolumeClaim<br>apiVersion: v1<br>metadata:<br> name: pvcsc001<br> annotations:<br> volume.beta.kubernetes.io/storage–class: portworx–sc<br>spec:<br> accessModes:<br> – ReadWriteOnce<br> resources:<br> requests:<br> storage: 2Gi<br> - ポッドを作成します。
kubectl create -f portworx-volume-pvcscpod.yaml
1apiVersion: v1<br>kind: Pod<br>metadata:<br> name: pvpod<br>spec:<br> containers:<br> – name: test–container<br> image: gcr.io/google_containers/test–webserver<br> volumeMounts:<br> – name: test–volume<br> mountPath: /test–portworx–volume<br> volumes:<br> – name: test–volume<br> persistentVolumeClaim:<br> claimName: pvcsc001<br> - ポッドが動作していることを確認します。
# kubectl get pod pvpod
1Name READY STATUS RESTART AGE<br>pvpod 1/1 Running 0 48m<br>
このように、ピュア・ストレージの Portworx のインストール手順はとてもシンプルです。ぜひ一度、ダウンロードしてお試しいただけますと幸いです。
Pure Storage、Pure Storage のロゴ、およびその他全ての Pure Storage のマーク、製品名、サービス名は、米国およびその他の国における Pure Storage, Inc. の商標または登録商標です。その他記載の会社名、製品名は、各社の商標または登録商標です。