ここでは、全てのコンポーネントをまとめて切り戻す手順について説明します。
以下の事項が前提です。
全コンポーネントが更新済みであること。更新済みか不明な場合は、「12.3.1 全コンポーネントのバージョン取得手順」の手順を実施し、 オープンソースが更新後のバージョンになっているか確認してください。
flannelが切り戻し済みであること。切り戻し方法については「12.7.4 flannelの切り戻し」を参考にしてください。
注意
本手順実施前に下記ページを参照し、それぞれの手順前に記載されている注意事項を確認してください。
Kubernetes masterサーバーで、以下の手順を行うことで全コンポーネントをまとめて切り戻すことができます。
事前準備
更新前に以下のコマンドを実行し、切り戻しに必要なファイルを生成します。
$ cd /var/FJSGHD/playbook $ ansible-playbook -i /var/FJSGHD/inventories/hosts play_create_playbook_for_update_tool.yml
Metrics Managementの切り戻し準備
本手順は修正パッチF1013-2021-001を適用する場合に実施します。ご利用のストレージ上で、以下のファイルを削除します。
/var/FJSGHD/volumes/fj-esdp-system-prometheus-volume/lock
全コンポーネントの一括切り戻し
以下のコマンドを実行し、全コンポーネントをまとめて切り戻します。 コマンド実行時にオプションを指定することができます。 オプションの詳細については、下記参考をご覧ください。
$ ansible-playbook -i /var/FJSGHD/inventories/hosts play_backout.yml
コマンドを実行すると、以下のメッセージが表示されます。誤って実行した場合や前提条件を満たしていない場合は、「n」を入力し、Enterキーを押下することで切り戻しを中断できます。切り戻しを継続する場合は「y」を入力し、Enterキーを押下します。
[Please confirm] ============================================================== [WARNING] Do you want to backout? (y/n) ============================================================== :
参考
【オプション説明】
以下に示すAnsibleのコマンドオプションを利用することができます。
-eオプション
切り戻しコマンド実行後のコンソール画面上での確認 y/n や Enterキー などの入力をスキップできます。
$ ansible-playbook -i /var/FJSGHD/inventories/hosts play_backout.yml -e <指定値>
指定値 | オプション説明 |
---|---|
no_interactive=True | 切り戻し確認のための y/n 入力をスキップします。 |
interactive_backout=False | 切り戻し中、ロードバランサーからKubernetes nodeサーバーへの振り分け停止/再開を行う操作の確認のためのEnterキーの入力待ちをスキップできます。 |
注意
切り戻しの際に、各コンポーネントが使用しているPersistent Volume内のファイルを削除する必要があります。 切り戻し中、以下のようなメッセージが出力され、切り戻し処理が一時停止されます。
====================================================== [WARNING] Please delete the files in Persistent Volume used by <コンポーネント名>. Press enter key after deleting data. ======================================================
<コンポーネント名>が使用しているPersistent Volume内の全てのファイル(隠しファイルを含む)を削除し、 Enterキーを押下して処理を再開させてください。 Persistent Volumeに設定しているストレージは/var/FJSGHD/inventories/group_vars/all/storage.ymlを参照してください。
Kubernetesの切り戻し処理では、nodeサーバーを1台ずつ、配備されたPodを別のnodeサーバーに退避させながらメンテナンスします。 nodeサーバーが2台以上の場合、メンテナンス中のnodeサーバーにアプリケーションへのリクエストを振り分けないように、メンテナンス前後で 以下のメッセージが出力され切り戻し処理が一時停止されます。 ロードバランサーからnodeサーバーへの振り分け停止および再開を実施し、Enterキーを押下してください。
メンテナンス前には以下のメッセージが表示されます。
【メッセージ】
[backout/container_mng/k8s_cluster : confirm] ====================================================== [WARNING] Backout the version of the kubernetes node [<IPアドレス>] to <バージョン>. Please stop routing requests to the kubernetes node [<IPアドレス>] from the load balancer. If you have stopped routing requests, please press the enter key. ======================================================
【説明】
<IPアドレス>のKubernetes nodeサーバーを<バージョン>に切り戻します。 ロードバランサーから<IPアドレス>のKubernetes nodeサーバーへの振り分けを停止してください。 振り分け停止後、Enterキーを押下してください。
メンテナンス後には以下のメッセージが表示されます。
【メッセージ】
[backout/container_mng/k8s_cluster : confirm] ====================================================== [WARNING] The kubernetes node [<IPアドレス>] has been backout to <バージョン>. Please resume routing requests to the kubernetes node [<IPアドレス>] from the load balancer. If you have resumed routing requests, please press the enter key. ======================================================
【説明】
<IPアドレス>のKubernetes nodeサーバーが<バージョン>に切り戻されました。 ロードバランサーから<IPアドレス>のKubernetes nodeサーバーへの振り分けを再開してください。 振り分け再開後、Enterキーを押下してください。
【正常終了時】
正常終了時は下記のようにunreachable=0, failed=0となり、XX、YYは任意の整数が記載されています。
PLAY RECAP ********************************************************************* 127.0.0.1 : ok=XX changed=YY unreachable=0 failed=0
【異常終了時】
異常終了時は下記のようにunreachable, failedのAAおよびBBは1以上の任意の整数が記載されています。
PLAY RECAP ********************************************************************* 127.0.0.1 : ok=XX changed=YY unreachable=AA failed=BB