Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
第4章 オペレーティングシステムの更新
メジャーリリース間でのアップグレードや、マイナーリリースのソフトウェアの更新のいずれかによってホストでオペレーティングシステム (OS) を更新すると、それらのマシンで実行されている OpenShift Container Platform ソフトウェアに影響が及びます。とくに、これらの更新は、OpenShift Container Platform で動作する必要のある iptables
ルールまたは ovs
フローに影響を与えます。
4.1. ホストでのオペレーティングシステムの更新
ホストで OS を安全にアップグレードするには、以下を実行します。
メンテナーンスの準備のためにノードをドレイン (解放) します。
$ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
更新される必要のない重要なパッケージを保護するには、ホストに除外ルールを適用します。
# atomic-openshift-docker-excluder exclude # atomic-openshift-excluder exclude
再起動により、ホストで最新バージョンが実行されていることを確認できます。 これは、
container engine
および OpenShift Container Platform プロセスが再起動されていることを意味し、これにより、他のサービスのすべてのルールが正しいことの確認が強制的に実行されます。# yum update # reboot
ただし、ノードホストを再起動する代わりに、影響を受けるサービスを再起動するか、または
iptables
状態を保持することができます。どちらのプロセスについても、OpenShift Container Platform iptables のトピックで説明されています。ovs
フロールールは保存される必要がありませんが、OpenShift Container Platform ノードソフトウェアを再起動するとフロールールが固定されます。ホストを再びスケジュール対象 (Schedulable) に設定するには、以下を実行します。
$ oc adm uncordon <node_name>
4.1.1. OpenShift Container Storage を実行するノードのアップグレード
OpenShift Container Storage を使用している場合、OpenShift Container Storage を実行する OpenShift Container Platform ノードを一度に 1 つずつアップグレードします。
- まず、OpenShift Container Storage がデプロイされたプロジェクトを再度呼び出します。
サービスの daemonset に設定されたノードおよび Pod セレクターを確認します。
$ oc get daemonset -n <project_name> -o wide
注記出力に Pod セレクターを含めるには
-o wide
を使用します。これらのセレクターは、それぞれ
NODE-SELECTOR
およびSELECTOR
で参照できます。以下のコマンド例では、それぞれglusterfs=storage-host
とglusterfs=storage-pod
を使用します。daemonset のノードセレクターを使用して、どのホストにラベルが指定されているかを確認し、DeamonSet から Pod が実行されていることを確認します。
$ oc get nodes --selector=glusterfs=storage-host
オペレーティングシステムがアップグレードされたノードを選択します。
daemonset ラベルをノードから削除します。
$ oc label node <node_name> glusterfs-
これにより、OpenShift Container Storage Pod はそのノードで終了します。
上記のように、ノードが OS をアップグレードできるようになりました。
ノードで OpenShift Container Storage Pod を再起動するには、demonset ラベルでノードのラベルを変更します。
$ oc label node <node_name> glusterfs=storage-host
- OpenShift Container Storage Pod が再生成され、表示されるまで待機します。
daemonset の Pod セレクターでは、OS をアップグレードしたノードで実行されている Pod を検索し、新しく起動された Pod の名前を判別します。
$ oc get pod -n <project_name> --selector=glusterfs=storage-pod -o wide
注記-o wide
を使用して、出力に Pod が実行されているホストを追加します。oc rsh
を Pod に実行し、Gluster Pod でボリュームの修復を確認します。$ oc rsh <pod_name> $ for vol in `gluster volume list`; do gluster volume heal $vol info; done $ exit
すべてのボリュームが自動修復され、未処理のタスクがないことを確認します。
heal info
コマンドは所定ボリュームの自動修復プロセスのすべての未処理エントリーを一覧表示します。ボリュームは、ボリュームのNumber of entries
が0
の場合に自動修正済みとみなされます。ボリュームの追加の詳細情報についてはgluster volume status <volume_name>
を使用します。Online
状態の場合は、すべてのブリックについてY
のマークを付ける必要があります。