第1章 動的デバイスを使用してデプロイされた OpenShift Data Foundation
1.1. AWS にデプロイされた OpenShift Data Foundation
動作するノードを置き換えるには、以下を参照してください。
障害のあるノードを置き換えるには、以下を参照してください。
1.1.1. ユーザーによってプロビジョニングされるインフラストラクチャーで動作する AWS ノードの置き換え
前提条件
- 置き換えるノードが、置き換えるノードと同様のインフラストラクチャーとリソースで設定されていることを確認する必要がある。
- OpenShift Container Platform クラスターにログインしている。
ユーザーがプロビジョニングしたインフラストラクチャー上の AWS ノードを交換する場合は、新しいノードを元のノードと同じ AWS ゾーンに作成する必要があります。
手順
- 置き換える必要のあるノードを特定します。
ノードにスケジュール対象外 (unschedulable) のマークを付けます。
$ oc adm cordon <node_name>
<node_name>
- 置き換える必要のあるノードの名前を指定します。
ノードをドレイン (解放) します。
$ oc adm drain <node_name> --force --delete-emptydir-data=true --ignore-daemonsets
重要このアクティビティーには、少なくとも 5〜10 分以上かかる場合があります。この期間中に生成された Ceph エラーは一時的なものであり、新しいノードにラベルを付けると自動的に解決され、機能します。
ノードを削除します。
$ oc delete nodes <node_name>
- 必要なインフラストラクチャーを使用して、新しい Amazon Web Service (AWS) マシンインスタンスを作成します。プラットフォーム要件 を参照してください。
- 新規 AWS マシンインスタンスを使用して新規 OpenShift Container Platform ノードを作成します。
Pending
状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。$ oc get csr
新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。
$ oc adm certificate approve <certificate_name>
<certificate_name>
- CSR の名前を指定します。
-
Compute
Nodes をクリックします。新しいノードが Ready 状態にあることを確認します。 以下のいずれかを使用して、OpenShift Data Foundation ラベルを新規ノードに適用します。
- ユーザーインターフェイスから
-
新規ノードについて、Action Menu (⋮)
Edit Labels をクリックします。 -
cluster.ocs.openshift.io/openshift-storage
を追加し、Save をクリックします。
-
新規ノードについて、Action Menu (⋮)
- コマンドラインインターフェイスの使用
- OpenShift Data Foundation ラベルを新規ノードに適用します。
$ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
<new_node_name>
- 新しいノードの名前を指定します。
検証手順
新しいノードが出力に存在することを確認します。
$ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
Workloads
Pods をクリックします。新しいノードの少なくとも次の Pod が Running 状態になっていることを確認します。 -
csi-cephfsplugin-*
-
csi-rbdplugin-*
-
- 他の必要なすべての OpenShift Data Foundation Pod が Running 状態にあることを確認します。
新しいオブジェクトストレージデバイス (OSD) Pod が置き換えるノードで実行されていることを確認します。
$ oc get pods -o wide -n openshift-storage| egrep -i <new_node_name> | egrep osd
(オプション) クラスターでクラスター全体の暗号化が有効な場合は、新規 OSD デバイスが暗号化されていることを確認します。
直前の手順で特定された新しい各ノードに以下を実行します。
デバッグ Pod を作成し、選択した 1 つ以上のホストの chroot 環境を開きます。
$ oc debug node/<node_name>
$ chroot /host
使用可能なブロックデバイスのリストを表示します。
$ lsblk
1 つ以上の
ocs-deviceset
名の横にあるcrypt
キーワードを確認します。
- 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください。
1.1.2. インストーラーでプロビジョニングされるインフラストラクチャーで動作する AWS ノードの置き換え
手順
-
OpenShift Web コンソールにログインし、Compute
Nodes をクリックします。 - 置き換える必要のあるノードを特定します。その マシン名 をメモします。
ノードにスケジュール対象外 (unschedulable) のマークを付けます。
$ oc adm cordon <node_name>
<node_name>
- 置き換える必要のあるノードの名前を指定します。
ノードをドレイン (解放) します。
$ oc adm drain <node_name> --force --delete-emptydir-data=true --ignore-daemonsets
重要このアクティビティーには、少なくとも 5〜10 分以上かかる場合があります。この期間中に生成された Ceph エラーは一時的なものであり、新しいノードにラベルを付けると自動的に解決され、機能します。
-
Compute
Machines をクリックします。必要なマシンを検索します。 -
必要なマシンの横にある Action menu (⋮)
Delete Machine をクリックします。 - Delete をクリックして、マシンが削除されたことを確認します。新しいマシンが自動的に作成されます。
新規マシンが起動し、Running 状態に移行するまで待機します。
重要このアクティビティーには、少なくとも 5〜10 分以上かかる場合があります。
-
Compute
Nodes をクリックします。新しいノードが Ready 状態にあることを確認します。 OpenShift Data Foundation ラベルを新規ノードに適用します。
- ユーザーインターフェイスから
-
新規ノードについて、Action Menu (⋮)
Edit Labels をクリックします。 -
cluster.ocs.openshift.io/openshift-storage
を追加し、Save をクリックします。
-
新規ノードについて、Action Menu (⋮)
- コマンドラインインターフェイスの使用
- OpenShift Data Foundation ラベルを新規ノードに適用します。
$ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
<new_node_name>
- 新しいノードの名前を指定します。
検証手順
新しいノードが出力に存在することを確認します。
$ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
Workloads
Pods をクリックします。新しいノードの少なくとも次の Pod が Running 状態になっていることを確認します。 -
csi-cephfsplugin-*
-
csi-rbdplugin-*
-
- 他の必要なすべての OpenShift Data Foundation Pod が Running 状態にあることを確認します。
新しいオブジェクトストレージデバイス (OSD) Pod が置き換えるノードで実行されていることを確認します。
$ oc get pods -o wide -n openshift-storage| egrep -i <new_node_name> | egrep osd
(オプション) クラスターでクラスター全体の暗号化が有効な場合は、新規 OSD デバイスが暗号化されていることを確認します。
直前の手順で特定された新しい各ノードに以下を実行します。
デバッグ Pod を作成し、選択した 1 つ以上のホストの chroot 環境を開きます。
$ oc debug node/<node_name>
$ chroot /host
使用可能なブロックデバイスのリストを表示します。
$ lsblk
1 つ以上の
ocs-deviceset
名の横にあるcrypt
キーワードを確認します。
- 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください。
1.1.3. ユーザーによってプロビジョニングされるインフラストラクチャーでの失敗した AWS ノードの置き換え
前提条件
- 置き換えるノードが、置き換えるノードと同様のインフラストラクチャーとリソースで設定されていることを確認する必要がある。
- OpenShift Container Platform クラスターにログインしている。
手順
- 置き換える必要のあるノードの Amazon Web Service (AWS) マシンインスタンスを特定します。
- AWS にログインし、特定した AWS マシンインスタンスを終了します。
- 必要なインフラストラクチャーで新規 AWS マシンインスタンスを作成します。プラットフォーム要件 を参照してください。
- 新規 AWS マシンインスタンスを使用して新規 OpenShift Container Platform ノードを作成します。
Pending
状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。$ oc get csr
新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。
$ oc adm certificate approve <certificate_name>
<certificate_name>
- CSR の名前を指定します。
-
Compute
Nodes をクリックします。新しいノードが Ready 状態にあることを確認します。 以下のいずれかを使用して、OpenShift Data Foundation ラベルを新規ノードに適用します。
- ユーザーインターフェイスから
-
新規ノードについて、Action Menu (⋮)
Edit Labels をクリックします。 -
cluster.ocs.openshift.io/openshift-storage
を追加し、Save をクリックします。
-
新規ノードについて、Action Menu (⋮)
- コマンドラインインターフェイスの使用
- 以下のコマンドを実行して、OpenShift Data Foundation ラベルを新規ノードに適用します。
$ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
<new_node_name>
- 新しいノードの名前を指定します。
検証手順
新しいノードが出力に存在することを確認します。
$ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
Workloads
Pods をクリックします。新しいノードの少なくとも次の Pod が Running 状態になっていることを確認します。 -
csi-cephfsplugin-*
-
csi-rbdplugin-*
-
- 他の必要なすべての OpenShift Data Foundation Pod が Running 状態にあることを確認します。
新しいオブジェクトストレージデバイス (OSD) Pod が置き換えるノードで実行されていることを確認します。
$ oc get pods -o wide -n openshift-storage| egrep -i <new_node_name> | egrep osd
(オプション) クラスターでクラスター全体の暗号化が有効な場合は、新規 OSD デバイスが暗号化されていることを確認します。
直前の手順で特定された新規ノードごとに、以下を実行します。
デバッグ Pod を作成し、選択した 1 つ以上のホストの chroot 環境を開きます。
$ oc debug node/<node_name>
$ chroot /host
使用可能なブロックデバイスのリストを表示します。
$ lsblk
1 つ以上の
ocs-deviceset
名の横にあるcrypt
キーワードを確認します。
- 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください。
1.1.4. インストーラーでプロビジョニングされるインフラストラクチャーでの失敗した AWS ノードの置き換え
手順
-
OpenShift Web コンソールにログインし、Compute
Nodes をクリックします。 - 障害のあるノードを特定し、その Machine Name をクリックします。
-
Actions
Edit Annotations をクリックし、Add More をクリックします。 -
machine.openshift.io/exclude-node-draining
を追加し、Save をクリックします。 -
Actions
Delete Machine をクリックしてから、Delete をクリックします。 新しいマシンが自動的に作成されます。新規マシンが起動するのを待機します。
重要このアクティビティーには、少なくとも 5〜10 分以上かかる場合があります。この期間中に生成された Ceph エラーは一時的なものであり、新しいノードにラベルを付けると自動的に解決され、機能します。
-
Compute
Nodes をクリックします。新しいノードが Ready 状態にあることを確認します。 以下のいずれかを使用して、OpenShift Data Foundation ラベルを新規ノードに適用します。
- ユーザーインターフェイスから
-
新規ノードについて、Action Menu (⋮)
Edit Labels をクリックします。 -
cluster.ocs.openshift.io/openshift-storage
を追加し、Save をクリックします。
-
新規ノードについて、Action Menu (⋮)
- コマンドラインインターフェイスの使用
- OpenShift Data Foundation ラベルを新規ノードに適用します。
$ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
<new_node_name>
- 新しいノードの名前を指定します。
- オプション: 失敗した Amazon Web Service (AWS) インスタンスが自動的に削除されない場合は、AWS コンソールからインスタンスを終了します。
検証手順
新しいノードが出力に存在することを確認します。
$ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
Workloads
Pods をクリックします。新しいノードの少なくとも次の Pod が Running 状態になっていることを確認します。 -
csi-cephfsplugin-*
-
csi-rbdplugin-*
-
- 他の必要なすべての OpenShift Data Foundation Pod が Running 状態にあることを確認します。
新しいオブジェクトストレージデバイス (OSD) Pod が置き換えるノードで実行されていることを確認します。
$ oc get pods -o wide -n openshift-storage| egrep -i <new_node_name> | egrep osd
(オプション) クラスターでクラスター全体の暗号化が有効な場合は、新規 OSD デバイスが暗号化されていることを確認します。
直前の手順で特定された新しい各ノードに以下を実行します。
デバッグ Pod を作成し、選択した 1 つ以上のホストの chroot 環境を開きます。
$ oc debug node/<node_name>
$ chroot /host
使用可能なブロックデバイスのリストを表示します。
$ lsblk
1 つ以上の
ocs-deviceset
名の横にあるcrypt
キーワードを確認します。
- 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください。