This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.12.3. ノードのネットワーク設定のトラブルシューティング
ノードのネットワーク設定で問題が発生した場合には、ポリシーが自動的にロールバックされ、enactment (実行) レポートは失敗します。これには、以下のような問題が含まれます。
- ホストで設定を適用できません。
- ホストはデフォルトゲートウェイへの接続を失います。
- ホストは API サーバーへの接続を失います。
12.3.1. 正確でないノードネットワーク設定のポリシー設定のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
ノードネットワーク設定ポリシーを適用し、クラスター全体でノードのネットワーク設定への変更を適用することができます。正確でない設定を適用する場合、以下の例を使用して、失敗したノードネットワークポリシーのトラブルシューティングと修正を行うことができます。
この例では、Linux ブリッジポリシーは、3 つのコントロールプレーンノード (マスター) と 3 つのコンピュート (ワーカー) ノードを持つクラスターのサンプルに適用されます。ポリシーは正しくないインターフェイスを参照するために、適用することができません。エラーを確認するには、利用可能な NMState リソースを調べます。その後に、正しい設定でポリシーを更新できます。
手順
ポリシーを作成し、これをクラスターに適用します。以下の例では、
ens01
インターフェイスに単純なブリッジを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f ens01-bridge-testfail.yaml
$ oc apply -f ens01-bridge-testfail.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
nodenetworkconfigurationpolicy.nmstate.io/ens01-bridge-testfail created
nodenetworkconfigurationpolicy.nmstate.io/ens01-bridge-testfail created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してポリシーのステータスを確認します。
oc get nncp
$ oc get nncp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力は、ポリシーが失敗したことを示しています。
出力例
NAME STATUS ens01-bridge-testfail FailedToConfigure
NAME STATUS ens01-bridge-testfail FailedToConfigure
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ただし、ポリシーのステータスのみでは、すべてのノードで失敗したか、ノードのサブセットで失敗したかを確認することはできません。
ノードのネットワーク設定の enactment (実行) を一覧表示し、ポリシーがいずれかのノードで成功したかどうかを確認します。このポリシーがノードのサブセットに対してのみ失敗した場合は、問題が特定のノード設定にあることが示唆されます。このポリシーがすべてのノードで失敗した場合には、問題はポリシーに関連するものであることが示唆されます。
oc get nnce
$ oc get nnce
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力は、ポリシーがすべてのノードで失敗したことを示しています。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 失敗した enactment (実行) のいずれかを表示し、トレースバックを確認します。以下のコマンドは、出力ツール
jsonpath
を使用して出力をフィルターします。oc get nnce compute-1.ens01-bridge-testfail -o jsonpath='{.status.conditions[?(@.type=="Failing")].message}'
$ oc get nnce compute-1.ens01-bridge-testfail -o jsonpath='{.status.conditions[?(@.type=="Failing")].message}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、簡潔にするために編集されている大きなトレースバックを返します。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NmstateVerificationError
は、desired
ポリシー設定、ノード上のポリシーのcurrent
設定、および一致しないパラメーターを強調表示するdifference
を一覧表示します。この例では、port
はdifference
に組み込まれ、これは問題がポリシーのポート設定に関連するものであることを示唆します。ポリシーが適切に設定されていることを確認するには、
NodeNetworkState
オブジェクトを要求して、1 つまたはすべてのノードのネットワーク設定を表示します。以下のコマンドは、control-plane-1
ノードのネットワーク設定を返します。oc get nns control-plane-1 -o yaml
$ oc get nns control-plane-1 -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は、ノード上のインターフェイス名は
ens1
であるものの、失敗したポリシーがens01
を誤って使用していることを示します。出力例
- ipv4: ... name: ens1 state: up type: ethernet
- ipv4: ... name: ens1 state: up type: ethernet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のポリシーを編集してエラーを修正します。
oc edit nncp ens01-bridge-testfail
$ oc edit nncp ens01-bridge-testfail
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... port: - name: ens1
... port: - name: ens1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーを保存して修正を適用します。
ポリシーのステータスをチェックして、更新が正常に行われたことを確認します。
oc get nncp
$ oc get nncp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ens01-bridge-testfail SuccessfullyConfigured
NAME STATUS ens01-bridge-testfail SuccessfullyConfigured
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
更新されたポリシーは、クラスターのすべてのノードで正常に設定されました。