18.3.3.4. Tang サーバーの永続的な再生成エラーのトラブルシューティング
Tang サーバーのキーを再生成した後に、長期間経過しても READY の数が DESIRED の数と等しくない場合は、永続的な障害状態を示している可能性があります。この場合、以下のような状況である場合があります。
-
NEW_TANG_PIN定義で Tang サーバーの URL またはサムプリントの誤字がある。 - Tang サーバーが無効になっているか、キーが完全に失われている。
前提条件
- この手順で説明されているコマンドが、Tang サーバーまたは Tang サーバーへのネットワークアクセスのある Linux システムで実行できる。
手順
デーモンセットの定義に従って各 Tang サーバーの設定に対して単純な暗号化および復号化操作を実行して、Tang サーバー設定を検証します。
これは、不適切なサムプリントで暗号化および復号化を試行する例です。
$ echo "okay" | clevis encrypt tang \ '{"url":"http://tangserver02:7500","thp":"badthumbprint"}' | \ clevis decrypt出力例
Unable to fetch advertisement: 'http://tangserver02:7500/adv/badthumbprint'!これは、正常なサムプリントで暗号化および復号化を試行する例です。
$ echo "okay" | clevis encrypt tang \ '{"url":"http://tangserver03:7500","thp":"goodthumbprint"}' | \ clevis decrypt出力例
okay根本的な原因を特定した後に、その原因となる状況に対応します。
- 機能しないデーモンセットを削除します。
デーモンセットの定義を編集して基礎となる問題を修正します。これには、以下のアクションのいずれかが含まれる場合があります。
- Tang サーバーのエントリーを編集して URL とサムプリントを修正します。
- 使用されなくなった Tang サーバーを削除します。
- 使用停止したサーバーの代わりとなる、新規の Tang サーバーを追加します。
- 更新されたデーモンセットを再度配布します。
Tang サーバーを設定から置き換え、削除、または追加する場合に、現在キーの再生成が行われているサーバーを含め、少なくとも 1 つの元のサーバーが機能している限り、キーの再生成操作は成功します。元の Tang サーバーのいずれも機能しなくなるか、復元できない場合には、システムの回復は不可能で、影響を受けるノードを再デプロイする必要があります。
検証
デーモンセットの各 Pod からのログをチェックして、キーの再生成が正常に完了したかどうかを判断します。キーの再生成に成功しなかった場合には、その失敗している状態がログに表示される可能性があります。
デーモンセットによって作成されたコンテナーの名前を見つけます。
$ oc get pods -A | grep tang-rekey出力例
openshift-machine-config-operator tang-rekey-7ks6h 1/1 Running 20 (8m39s ago) 89mコンテナーからログを印刷します。キーの再生成操作に成功すると、以下のログのようになります。
$ oc logs tang-rekey-7ks6h出力例
Current tang pin: 1: sss '{"t":1,"pins":{"tang":[{"url":"http://10.46.55.192:7500"},{"url":"http://10.46.55.192:7501"},{"url":"http://10.46.55.192:7502"}]}}' Applying new tang pin: {"t":1,"pins":{"tang":[ {"url":"http://tangserver01:7500","thp":"WOjQYkyK7DxY_T5pMncMO5w0f6E"}, {"url":"http://tangserver02:7500","thp":"I5Ynh2JefoAO3tNH9TgI4obIaXI"}, {"url":"http://tangserver03:7500","thp":"38qWZVeDKzCPG9pHLqKzs6k1ons"} ]}} Updating binding... Binding edited successfully Pin applied successfully