RedHat OpenShift Container Platform 用の HyperFlex FlexVolume Storage Integration の設定
HX FlexVolume と OCP の統合のサポート マトリックス
次の表に、HX Data Platform ソフトウェアの各バージョンでサポートされている Red Hat OpenShift Container Platform(OCP)ソフトウェアのバージョンを示します。
表 1. HX FlexVolume と Red Hat OCP の統合のサポート マトリックス
HX Data Platform のバージョン
Red Hat OCP バージョン 3.7
Red Hat OCP バージョン 3.9
Red Hat OCP バージョン 3.10
Red Hat OCP バージョン 3.11
Red Hat OCP バージョン 3.12
Red Hat OCP バージョン 3.13
3.0(1A) またはそれ以降
未サポート
未サポート
—
—
—
—
3.5(1a) 以降
—
サポート対象
サポート対象
—
—
—
3.5(2a) 以降
—
計画済み
計画済み
—
—
—
4.0(1a) 以降
—
—
計画済み
計画済み
—
—
4.1(1a) 以降
—
—
計画済み
計画済み
TBD
TBD
前提条件
HyperFlex FlexVolume Storage Integration を RedHat OpenShift Container Platform 用に設定する前に、次の前提条件を満たす必要があります。
Cisco HyperFlex クラスタがインストールされており、3.5(1a) 以降を実行している。
RedHat OpenShift Container Platform がインストールされており、3.9 以降を実行している。
シスコ ソフトウェア ダウンロード から最新の HX Kubernetes リリース パッケージをダウンロードしている。
管理者ホストのセットアップ
このガイドのコンテキストでは、「管理者ホスト」は、OpenShift クラスタをリモート管理するために使用される Linux ベースのホストを指します。このガイドでは、管理者ホストのオペレーティング システムに使用する Linux ディストリビューションを指定していませんが、使用するディストリビューションによっては一部のコマンドが多少異なる場合があります。管理者ホストは、新しく展開されたホストでも、環境内の既存のホストでもかまいません。
重要
ステップ 1
Kubernetes コマンドライン ツールセットの oc がインストールされていることを確認します。ツールセットがインストールされていない場合は、https://kubernetes.io/docs/tasks/tools/install-oc/#install-oc で Linux ディストリビューションに基づく手順を確認できます。
ステップ 2
SSH キーペア(公開キーと秘密キー)が生成されていることを確認します。SSH キーペアは、リモート OpenShift クラスタを管理するために使用されます。
ステップ 3
cisco.com の HyperFlex のセクションから最新の HyperFlex FlexVolume ソフトウェア アーカイブ(zip)ファイルをダウンロードします。任意の方法(scp など)で、HyperFlex FlexVolume ソフトウェア アーカイブ(zip)ファイルを管理者ホストに転送します。このガイドの残りの部分は、HyperFlex FlexVolume アーカイブ(zip)ファイルが管理者ホストの ~/hxkube ディレクトリ パスにコピーされていることが前提となっています。
ステップ 4
HyperFlex FlexVolume ソフトウェア アーカイブ(zip)ファイルを管理者ホストの ~/hxkube ディレクトリに解凍します。管理者ホストの Linux ディストリビューションに基づいて、パッケージ マネージャ(つまり、yum または apt-get )を使用して unzip パッケージをインストールする必要がある場合があります。
RedHat OpenShift Container Platform の展開
RedHat は、RedHat OpenShift Container Platform クラスタのインストールを自動化するための標準メカニズムとして、Ansible プレイブックを提供しています。RedHat の Web サイトでは、Ansible
による OpenShift クラスタのインストールと設定に関するさまざまなドキュメントと情報が提供されています。以降のセクションでは、RedHat OpenShift Container Platform の動作中のインスタンスが存在するか、RedHat
の Web サイトに記載されている RedHat の標準の方式とベスト プラクティスでそれをインストールしていることが前提となっています。
(注)
Redhat OpenShift Container Platform クラスタ ノードを展開するときに、ノード VM 用の追加のインターフェイスが k8-priv-iscsivm-network ポートグループに追加されていることを確認してください。このインターフェイスは、HyperFlex FlexVolume Storage Integration を使用するために必要です。
HyperFlex FlexVolume ソフトウェアの配信
OpenShift を使用して HyperFlex FlexVolume Storage Integration を正しくインストールして設定するには、HX-Kubernetes-1.0.284.git.4022e8ec.hx35.zip アーカイブ ファイルをすべての OpenShift クラスタ ノードに配信します。次の手順は、HX Kubernetes アーカイブ ファイルを適切なホストに配信する詳しいプロセスを示しています。
(注)
次のコマンドで使用されるユーザ名(<ocpuser> として示されている)は、各 OpenShift クラスタ ノードにコピーされ、設定されている SSH 公開キーの所有者のユーザを表します。このユーザには、OpenShift クラスタ ノードへのパスワードなしの SSH アクセス権が必要です。
重要
ステップ 1
次のコマンドを実行して、各 OpenShift クラスタ ノードに hxkube という名前のディレクトリを作成します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host mkdir ~/hxkube; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo mkdir ~/hxkube; \
> done
ocpuser@admin-host:~$
ステップ 2
HX Kubernetes アーカイブ ファイルを各 OpenShift クラスタ ノードの ~/hxkube ディレクトリにコピーします。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do scp <path_to_hxkube...zip> <ocpuser>@$host:~/hxkube; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do scp ./HX-Kubernetes-1.0.284.git.4022e8ec.hx35.zip ocpuser@$host:~/hxkube; \
> done
HX-Kubernetes-1.0.284.git.4022e8ec.hx35.zip 100% 37MB 107.6MB/s 00:00
HX-Kubernetes-1.0.284.git.4022e8ec.hx35.zip 100% 37MB 105.6MB/s 00:00
HX-Kubernetes-1.0.284.git.4022e8ec.hx35.zip 100% 37MB 106.0MB/s 00:00
ocpuser@admin-host:~$
ステップ 3
各 OpenShift クラスタ ノードで apt-get update
コマンドを実行します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh ocpuser@$host sudo apt-get update; \
done
例
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo apt-get update; \
> done
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Hit:2 http://ppa.launchpad.net/cloud-images/gke-19/ubuntu xenial InRelease
Get:3 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Get:4 http://security.ubuntu.com/ubuntu xenial-security/main Sources [133 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Get:7 http://security.ubuntu.com/ubuntu xenial-security/restricted Sources [2116 B]
...<content omitted for brevity>...
ocpuser@admin-host:~$
ステップ 4
apt-get update
マネージャを使用して、各 OpenShift クラスタ ノードに unzip パッケージをインストールします。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo apt-get install -y unzip; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo apt-get install -y unzip; \
> done
ステップ 5
各 OpenShift クラスタ ノードで HX Kubernetes アーカイブ ファイルを解凍します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo unzip ~/hxkube/HX-Kubernetes-1.0.284.git.4022e8ec.hx35.zip -d ~/hxkube; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host unzip ~/hxkube/HX-Kubernetes-1.0.284.git.4022e8ec.hx35.zip -d ~/hxkube; \
> done
Archive: /home/ocpuser/hxkube/HX-Kubernetes-1.0.284.git.4022e8ec.hx35.zip
extracting: RELEASE.txt
extracting: hx-provisioner-setup
extracting: hx-provisioner.tar.gz
extracting: hxkube-collect-logs
extracting: hxprovisioner-deploy.yaml
extracting: hxvolume
...<content omitted for brevity>...
ocpuser@admin-host:~$
HyperFlex FlexVolume プラグインの管理
HyperFlex FlexVolume プラグインのインストール
ステップ 1
OpenShift の Ansible インストール プレイブックは、デフォルトで iscsi-initiator-utils パッケージをインストールします。パッケージがインストールされていることを確認してください。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo yum list installed iscsi-initiator-utils; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo yum list installed iscsi-initiator-utils; \
> done
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Installed Packages
iscsi-initiator-utils.x86_64 6.2.0.874-7.el7 @rhel-7-server-rpms
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Installed Packages
iscsi-initiator-utils.x86_64 6.2.0.874-7.el7 @rhel-7-server-rpms
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Installed Packages
iscsi-initiator-utils.x86_64 6.2.0.874-7.el7 @rhel-7-server-rpms
ocpuser@admin-host:~$
ステップ 2
何らかの理由で iscsi-initiator-utils パッケージがインストールされていない場合は、yum パッケージ マネージャの sudo yum install -y iscsi-initiator-utils
を使用してインストールします。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo yum install -y iscsi-initiator-utils; \
done
ステップ 3
yum パッケージ マネージャを使用して avahi-autoipd パッケージをインストールします。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo yum install -y avahi-autoipd; \
done
ステップ 4
hxvolume-plugin Debian パッケージをインストールして、各 OpenShift クラスタ ノードの既存の HyperFlex FlexVolume プラグインを更新します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo dpkg -i ~/hxkube/hxvolume-plugin_1.0.284.git.4022e8ec.hx35.deb; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo dpkg -i ~/hxkube/hxvolume-plugin_1.0.284.git.4022e8ec.hx35_amd64.deb; \
> done
Selecting previously unselected package hxvolume-plugin.
(Reading database ... 56148 files and directories currently installed.)
Preparing to unpack .../hxvolume-plugin_1.0.284.git.4022e8ec.hx35_amd64.deb ...
Unpacking hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
Setting up hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
Selecting previously unselected package hxvolume-plugin.
(Reading database ... 56148 files and directories currently installed.)
Preparing to unpack .../hxvolume-plugin_1.0.284.git.4022e8ec.hx35_amd64.deb ...
Unpacking hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
Setting up hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
Selecting previously unselected package hxvolume-plugin.
(Reading database ... 56148 files and directories currently installed.)
Preparing to unpack .../hxvolume-plugin_1.0.284.git.4022e8ec.hx35_amd64.deb ...
Unpacking hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
Setting up hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
ocpuser@admin-host:~$
ステップ 5
各 OpenShift クラスタ ノードで、HyperFlex FlexVolume プラグインの更新されたバージョンを初期化します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo /usr/libexec/kubernetes/kubelet-plugins/volume/exec/
hyperflex~hxvolume/hxvolume init; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo /usr/libexec/kubernetes/kubelet-plugins/volume/
exec/hyperflex~hxvolume/hxvolume init; \
> done
{"capabilities":{"attach":false},"status":"Success"}
{"capabilities":{"attach":false},"status":"Success"}
{"capabilities":{"attach":false},"status":"Success"}
ocpuser@admin-host:~$
ステップ 6
各 OpenShift クラスタ ノードで、ローカル kubelet サービスを再起動します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo systemctl restart atomic-openshift-node; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo systemctl restart atomic-openshift-node; \
> done
ocpuser@admin-host:~$
ステップ 7
HyperFlex FlexVolume プラグインの新しいバージョンを確認します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo /usr/libexec/kubernetes/kubelet-plugins/volume/exec/hyperflex~hxvolume/hxvolume version; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo /usr/libexec/kubernetes/kubelet-plugins/volume/exec/hyperflex~hxvolume/hxvolume version; \
> done
hxvolume version: 1.0.284.git.4022e8ec.hx35
hxvolume version: 1.0.284.git.4022e8ec.hx35
hxvolume version: 1.0.284.git.4022e8ec.hx35
ocpuser@admin-host:~$
HyperFlex FlexVolume プラグインのバージョンの確認
重要
次の手順は、1 つの OpenShift テナント クラスタ ノードでのみ実行する必要があります。
ステップ 1
いずれかの OpenShift クラスタ ノードに SSH を使用してログインします。
ステップ 2
ディレクトリを /usr/libexec/kubernetes/kubelet-plugins/volume/exec/hyperflex-hxvolume/ ディレクトリに変更します。
コマンド(Command)
cd /usr/libexec/kubernetes/kubelet-plugins/volume/exec/hyperflex~hxvolume/
例:
ocpuser@openshift-master:~$ cd /usr/libexec/kubernetes/kubelet-plugins/volume/exec/hyperflex~hxvolume/
ocpuser@openshift-master:/usr/libexec/kubernetes/kubelet-plugins/volume/exec/hyperflex~hxvolume$
ステップ 3
ルート ユーザとして hxvolume version
コマンドを実行(sudoを使用)して HyperFlex FlexVolume プラグインのバージョンを表示します。
コマンド:
sudo hxvolume version
例:
ocpuser@openshift-master:/usr/libexec/kubernetes/kubelet-plugins/volume/exec/hyperflex~hxvolume$
sudo ./hxvolume version
hxvolume version: 1.0.284.git.4022e8ec.hx35
ocpuser@openshift-master:/usr/libexec/kubernetes/kubelet-plugins/volume/exec/hyperflex~hxvolume$
HyperFlex FlexVolume プラグインの更新
ステップ 1
hxvolume-plugin Debian パッケージをインストールして、各 OpenShift クラスタ ノードの既存の HyperFlex FlexVolume プラグインを更新します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo rpm -ivh ~/hxkube/hxvolume-plugin_1.0.284.git.4022e8ec.hx35.rpm; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo rpm -ivh ~/hxkube/hxvolume-plugin_1.0.284.git.4022e8ec.hx35_amd64.rpm; \
> done
Selecting previously unselected package hxvolume-plugin.
(Reading database ... 56148 files and directories currently installed.)
Preparing to unpack .../hxvolume-plugin_1.0.284.git.4022e8ec.hx35_amd64.rpm ...
Unpacking hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
Setting up hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
Selecting previously unselected package hxvolume-plugin.
(Reading database ... 56148 files and directories currently installed.)
Preparing to unpack .../hxvolume-plugin_1.0.284.git.4022e8ec.hx35_amd64.rpm ...
Unpacking hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
Setting up hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
Selecting previously unselected package hxvolume-plugin.
(Reading database ... 56148 files and directories currently installed.)
Preparing to unpack .../hxvolume-plugin_1.0.284.git.4022e8ec.hx35_amd64.rpm ...
Unpacking hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
Setting up hxvolume-plugin (1.0.284.git.4022e8ec.hx35) ...
ocpuser@admin-host:~$
ステップ 2
各 OpenShift クラスタ ノードで、HyperFlex FlexVolume プラグインの更新されたバージョンを初期化します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo /usr/libexec/kubernetes/
kubelet-plugins/volume/exec/hyperflex~hxvolume/hxvolume init; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo /usr/libexec/kubernetes/kubelet-plugins/volume/exec/hyperflex~hxvolume/hxvolume init; \
> done
{"capabilities":{"attach":false},"status":"Success"}
{"capabilities":{"attach":false},"status":"Success"}
{"capabilities":{"attach":false},"status":"Success"}
ocpuser@admin-host:~$
ステップ 3
各 OpenShift クラスタ ノードで、ローカル kubelet サービスを再起動します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo systemctl restart atomic-openshift-node; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo systemctl restart atomic-openshift-node; \
> done
ocpuser@admin-host:~$
ステップ 4
HyperFlex FlexVolume プラグインの新しいバージョンを確認します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo /usr/libexec/kubernetes/kubelet-plugins/volume/
exec/hyperflex~hxvolume/hxvolume version; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo /usr/libexec/kubernetes/kubelet-plugins/volume/exec/hyperflex~hxvolume/hxvolume version; \
> done
hxvolume version: 1.0.284.git.4022e8ec.hx35
hxvolume version: 1.0.284.git.4022e8ec.hx35
hxvolume version: 1.0.284.git.4022e8ec.hx35
ocpuser@admin-host:~$
HyperFlex FlexVolume Provisioner の管理
HyperFlex FlexVolume Provisioner のインストール
次の手順は、管理者ホストで実行してください。
(注)
次のコマンドで使用されるユーザ名(<ocpuser> として示されている)は、各 OpenShift クラスタ ノードにコピーされ、設定されている SSH 公開キーの所有者のユーザを表します。そのため、このユーザには、OpenShift クラスタ ノードへのパスワードなしの SSH アクセス権が必要です。
ステップ 1
HyperFlex FlexVolume Provisioner Docker イメージを各 OpenShift クラスタ ノードにロードします。
コマンド(Command)
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo docker image load –-input ~/hxkube/hx-provisioner.tar.gz; \
done
例
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo docker image load –-input ~/hxkube/hx-provisioner.tar.gz; \
> done
962a0db319db: Loading layer [==================================================>] 21.93 MB/21.93 MB
Loaded image: hx-provisioner:1.0.284.git.4022e8ec.hx35
962a0db319db: Loading layer [==================================================>] 21.93 MB/21.93 MB
Loaded image: hx-provisioner:1.0.284.git.4022e8ec.hx35
962a0db319db: Loading layer [==================================================>] 21.93 MB/21.93 MB
Loaded image: hx-provisioner:1.0.284.git.4022e8ec.hx35
ocpuser@admin-host:~$
ステップ 2
hx-provisioner-setup スクリプトを実行して、HyperFlex Provisioner ポッドを OpenShift クラスタに展開するために必要な YAML ファイルを生成します。hx-provisioner-setup スクリプトの実行時に、次の情報をパラメータとして指定してください。
パラメータ:
-cluster-name
:OpenShift クラスタの名前(HyperFlex クラスタ全体で一意である必要がある)。
-url
:HyperFlex API に到達するための URL。この URL は「https://<hyperFlex_cluster_management_IP_address」に相当します。
-username
:HyperFlex クラスタの認証に使用されるユーザ名。通常、vCenter SSO アカウント(administrator@vsphere.local など)です。
-password
:スクリプトを実行すると、そのユーザ名のパスワードを入力するように求められます。
コマンド:
~/hxkube/hx-provisioner-setup -cluster-name <ocp_cluster_name> -url
https://<hx_cluster_mgmt_ip> -username administrator@vsphere.local >
~/hxkube/hxprovisioner-<ocp_cluster_name>.yaml
例:
ocpuser@admin-host:~$ ~/hxkube/hx-provisioner-setup -cluster-name tc1 -url https://172.0.13.32 -username
administrator@vsphere.local > ~/hxkube/hxprovisioner-tc1.yaml
password for [administrator@vsphere.local] at [https://172.0.13.32]:
ocpuser@admin-host:~$
ステップ 3
hxprovisioner-deploy.yaml ファイルが正常に作成されていることを確認します。
例:
ocpuser@admin-host:~$ ls -l ~/hxkube
total 76316
-rwxr-xr-x. 1 ocpuser ocpuser 371 Jan 1 2008 hxkube-collect-logs
-rw-r--r--. 1 root root 39062629 Sep 14 03:01 HX-Kubernetes-1.0.284.git.4022e8ec.hx35.zip
-rw-r--r--. 1 ocpuser ocpuser 2374 Jan 1 2008 hxprovisioner-deploy.yaml
-rwxr-xr-x. 1 ocpuser ocpuser 8189574 Jan 1 2008 hx-provisioner-setup
-rw-r--r--. 1 ocpuser ocpuser 7023470 Jan 1 2008 hx-provisioner.tar.gz
-rw-rw-r--. 1 ocpuser ocpuser 2352 Sep 14 13:12 hxprovisioner-tc1.yaml
-rwxr-xr-x. 1 ocpuser ocpuser 4531292 Jan 1 2008 hxvolume
-rw-r--r--. 1 ocpuser ocpuser 8805368 Jan 1 2008 hxvolume-plugin-1.0.284.git.4022e8ec.hx35-1.x86_64.rpm
-rw-r--r--. 1 ocpuser ocpuser 8726184 Jan 1 2008 hxvolume-plugin_1.0.284.git.4022e8ec.hx35_amd64.deb
-rw-r--r--. 1 ocpuser ocpuser 1780928 Jan 1 2008 istgttool
-rw-r--r--. 1 ocpuser ocpuser 1942 Jan 1 2008 RELEASE.txt
ocpuser@admin-host:~$
ステップ 4
oc create
コマンドを実行して、HyperFlex Provisioner ポッドを展開します。
(注)
この手順では、いずれかの OpenShift クラスタ ワーカー ノードで動作するように HyperFlex Provisioner ポッドをスケジュールします。OpenShift クラスタ マスター ノードで HyperFlex Provisioner
ポッドを実行する必要がある場合は(これを行う技術的な理由はありませんが)、hxprovisioner-<ocp_cluster_name>.yaml ファイルを編集して「Toleration
」を含めて、OpenShift クラスタ マスター ノード用に設定されたテナントを無効化する必要があります。
コマンド:
oc create -f ~/hxkube/hxprovisoner-<ocp_cluster_name>.yaml
例:
ocpuser@admin-host:~$ oc create -f ~/hxkube/hxprovisioner-tc1.yaml
secret/hxprovisioner created
configmap/hxprovisioner-config created
serviceaccount/hxprovisioner created
clusterrolebinding.rbac.authorization.k8s.io/hxprovisioner-binding created
deployment.apps/hx-provisioner created
ocpuser@admin-host:~$
ステップ 5
HyperFlex Provisioner ポッドが動作していることを確認します。
コマンド:
oc get pods -n kube-system
例:
ocpuser@admin-host:~$ oc get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-node-6mc7b 2/2 Running 0 1d
calico-node-tjks9 2/2 Running 0 1d
calico-node-z4png 2/2 Running 0 1d
calico-typha-7d48f84746-crrb2 1/1 Running 0 1d
calico-typha-7d48f84746-vt6gm 1/1 Running 0 1d
etcd-openshift-master 1/1 Running 0 1d
hx-provisioner-f98479996-k79v6 1/1 Running 0 31s
kube-apiserver-openshift-master 1/1 Running 0 1d
kube-controller-manager-openshift-master 1/1 Running 0 1d
kube-dns-6c74cdd686-k877b 3/3 Running 0 1d
kube-proxy-8s6j6 1/1 Running 0 1d
kube-proxy-f2d2z 1/1 Running 0 1d
kube-proxy-vfqjz 1/1 Running 0 1d
kube-scheduler-openshift-master 1/1 Running 0 1d
tiller-deploy-5c567bd778-7xr6d 1/1 Running 0 1d
ocpuser@admin-host:~$
HyperFlex FlexVolume Provisioner のバージョンの確認
ステップ 1
kubectl get pods -n kube-system
コマンドを実行して、展開されている HyperFlex FlexVolume Provisioner ポッドの完全な名前を取得します。
kubectl get pods -n kube-system
例:
ccpuser@admin-host:~$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-node-6mc7b 2/2 Running 0 7d
calico-node-tjks9 2/2 Running 0 7d
calico-node-z4png 2/2 Running 0 7d
calico-typha-7d48f84746-crrb2 1/1 Running 0 7d
calico-typha-7d48f84746-vt6gm 1/1 Running 0 7d
etcd-tc1-mastercf1ff968f8 1/1 Running 0 7d
hx-provisioner-f98479996-k79v6 1/1 Running 0 6d
kube-apiserver-tc1-mastercf1ff968f8 1/1 Running 0 7d
kube-controller-manager-tc1-mastercf1ff968f8 1/1 Running 0 7d
kube-dns-6c74cdd686-k877b 3/3 Running 0 7d
kube-proxy-8s6j6 1/1 Running 0 7d
kube-proxy-f2d2z 1/1 Running 0 7d
kube-proxy-vfqjz 1/1 Running 0 7d
kube-scheduler-tc1-mastercf1ff968f8 1/1 Running 0 7d
tiller-deploy-5c567bd778-7xr6d 1/1 Running 0 7d
ccpuser@admin-host:~$
ステップ 2
kubectl describe pods...
コマンドを実行して、展開されている HyperFlex FlexVolume Provisioner ポッドの完全な詳細情報を取得します。バージョンをタグとして含む hx-provisioner
コンテナ イメージ名(つまり、コンテナ名のコロンの後ろ)を探します。
kubectl describe pods <pod_name> -n kube-system
例:
ccpuser@admin-host:~$ kubectl describe pods hx-provisioner-f98479996-k79v6 -n kube-system
Name: hx-provisioner-f98479996-k79v6
Namespace: kube-system
Node: tc1-worker87d761f2d0/172.0.13.116
Start Time: Fri, 14 Sep 2018 21:23:41 -0400
Labels: app=hx-provisioner
pod-template-hash=954035552
Annotations: cni.projectcalico.org/podIP=192.168.2.11/32
Status: Running
IP: 192.168.2.11
Controlled By: ReplicaSet/hx-provisioner-f98479996
Containers:
hx-provisioner:
Container ID: docker://f5cc3d45480a7a706264b965cd71ee7af47680393101d507ce36826e4e4b384f
Image: hx-provisioner:0.10.274.git.365b059e
Image ID: docker://sha256:0184783ed8cd143b786ab77654a9a1ec693c6c005adb22a988f39e0538e1b822
Port: 443/TCP
Host Port: 0/TCP
Args:
-hxapi-url=$(HX_API_URL)
-hxapi-token-file=/secrets/hxapi/token
-hxapi-hxclusteruuid=$(HX_CLUSTERUUID)
State: Running
ccpuser@admin-host:~$
HyperFlex FlexVolume Provisioner の更新
ステップ 1
シスコ ソフトウェア ダウンロード から最新の HX Kubernetes リリース パッケージをダウンロードします。
ステップ 2
「 HyperFlex FlexVolume ソフトウェアの配信 」の手順に従って、最新の HX Kubernetes リリース パッケージを各 OpenShift クラスタ ノードにコピーします。ファイルを解凍します。
コマンド:
for host in <master_node_ip> \
<worker_node_1_ip> \
<worker_node_2_ip> \
...
<worker_node_N_ip>; \
do ssh <ocpuser>@$host sudo docker image load –-input ~/hxkube/hx-provisioner.tar.gz; \
done
例:
ocpuser@admin-host:~$ for host in 172.0.13.114 \
> 172.0.13.115 \
> 172.0.13.116; \
> do ssh ocpuser@$host sudo docker image load –-input ~/hxkube/hx-provisioner.tar.gz; \
> done
962a0db319db: Loading layer [==================================================>] 21.93 MB/21.93 MB
Loaded image: hx-provisioner:1.0.284.git.4022e8ec.hx35
962a0db319db: Loading layer [==================================================>] 21.93 MB/21.93 MB
Loaded image: hx-provisioner:1.0.284.git.4022e8ec.hx35
962a0db319db: Loading layer [==================================================>] 21.93 MB/21.93 MB
Loaded image: hx-provisioner:1.0.284.git.4022e8ec.hx35
ocpuser@admin-host:~$
ステップ 3
上記のコマンドの出力から、新しくロードされた Docker イメージの完全な名前を書き留めます。
962a0db319db: Loading layer [=========================================>] 21.93 MB/21.93 MB
Loaded image: hx-provisioner:1.0.284.git.4022e8ec.hx35
962a0db319db: Loading layer [==================================================>] 21.93 MB/21.93 MB
Loaded image: hx-provisioner:1.0.284.git.4022e8ec.hx35
962a0db319db: Loading layer [==================================================>] 21.93 MB/21.93 MB
Loaded image: hx-provisioner:1.0.284.git.4022e8ec.hx35
ステップ 4
oc set image
コマンドを実行して、更新されたコンテナ イメージを使用するように HyperFlex FlexVolume Provisioner コンテナの展開を更新します。
コマンド:
oc set image deployment/hx-provisioner hx-provisioner=<new_image_name>
StorageClass の設定
CCP テナント クラスタを展開するときに [HyperFlexローカルネットワーク(HyperFlex Local Network)] オプションが正しく設定されていたら、CCP コントロール プレーンは、HyperFlex の StorageClass を CCP テナント クラスタに自動的に作成します。デフォルトでは、HyperFlex の StorageClass は CCP
テナント クラスタのデフォルトの StorageClass として設定されていません。この場合、デフォルトでは、開発者は、HyperFlex FlexVolume Storage Integration を使用するために、HyperFlex を永続ボリューム
クレームの StorageClass として明示的に指定する必要があります。
kubectl get sc
コマンドを使用して、CCP テナント クラスタ上の StorageClass を表示します。
ccpuser@admin-host:~$ kubectl get sc
NAME PROVISIONER AGE
hyperflex hyperflex.io/hxvolume 4s
standard (default) kubernetes.io/vsphere-volume 4s
ccpuser@admin-host:~$
永続ボリュームのプロビジョニング
ステップ 1
次のコマンドを実行して、ユーザ定義の persistent_volume_claim_name と size を提供する永続ボリューム クレーム YAML ファイルを作成します。
ストレージ要求を HyperFlex FlexVolume Provisioner に送信するには、storageClassName: hyperflex
行が必要です。
vi ~/hxkube/pvc.yaml
<insert the following>
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: <persistent_volume_claim_name>
spec:
storageClassName: hyperflex
accessModes:
- ReadWriteOnce
resources:
requests:
storage: <size>Gi
例:
ccpuser@admin-host:~$ vi ~/hxkube/pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: message-board-pvc
spec:
storageClassName: hyperflex
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
ccpuser@admin-host:~$
ステップ 2
kubectl create
コマンドを実行して pvc.yaml
ファイルを送信し、CCP テナント Kubernetes クラスタに永続ボリューム クレーム オブジェクトを作成します。同時に、その動作の一環として、HyperFlex は、永続ボリューム オブジェクトを作成して永続ボリューム クレーム オブジェクトを補完し、2
つのオブジェクトを Kubernetes でいっしょにバインドします。
kubectl create -f ~/hxkube/<pvc_name>.yaml
例:
ccpuser@admin-host:~$ kubectl create -f ~/hxkube/pvc.yaml
persistentvolumeclaim/message-board-pvc created
ccpuser@admin-host:~$
ステップ 3
「kubectl get pvc」コマンドによって永続ボリューム クレーム オブジェクトのステータスを確認して、そのオブジェクトが正常に作成され、永続ボリューム オブジェクトに「バインド」されていることを確認します。
kubectl get pvc
例:
ccpuser@admin-host:~$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
message-board-pvc Bound
ステップ 4
「kubectl create」コマンドによって Kubernetes ポッドを展開します。その際、永続ボリューム クレーム オブジェクトをポッド YAML ファイルで指定します。
kubectl create -f <pod_yaml_file>
例:ポッド YAML
apiVersion: v1
kind: Pod
metadata:
name: message-board
labels:
app: message-board
name: message-board
namespace: default
spec:
containers:
- name: message-board
image: michzimm/message_board:version1
volumeMounts:
- name: demovolume1
mountPath: /sqldb
ports:
- containerPort: 5000
volumes:
- name: demovolume1
persistentVolumeClaim:
例:
ccpuser@admin-host:~$ kubectl create -f ./message-board.yaml
pod/message-board created
ccpuser@admin-host:~$
ステップ 5
展開したポッドのステータスを調べて、動作していることを確認します。
kubectl get pods
例:
ccpuser@admin-host:~$ kubectl get pods
NAME READY STATUS RESTARTS AGE
message-board 1/1 Running 0 35m
ccpuser@admin-host:~$