トラブルシューティング
一般的な問題のトラブルシューティング
概要
第1章 インストールされているバージョンの確認
トラブルシューティングを開始するには、インストールされている Red Hat build of MicroShift のバージョンを確認します。
1.1. コマンドラインインターフェイスを使用した Red Hat build of MicroShift のバージョンの確認
トラブルシューティングを開始するには、Red Hat build of MicroShift のバージョンを知っている必要があります。この情報を取得する方法として、CLI を使用する方法があります。
手順
次のコマンドを実行して、バージョン情報を確認します。
$ microshift version
出力例
Red Hat build of MicroShift Version: 4.12-0.microshift-e6980e25 Base OCP Version: 4.12
1.2. API を使用した Red Hat build of MicroShift のバージョンの確認
トラブルシューティングを開始するには、Red Hat build of MicroShift のバージョンを知っている必要があります。この情報を取得する方法として、API を使用する方法があります。
手順
OpenShift CLI (
oc
) を使用してバージョン番号を取得するには、次のコマンドを実行してkube-public/microshift-version
設定マップを表示します。$ oc get configmap -n kube-public microshift-version -o yaml
出力例
apiVersion: v1 data: major: "4" minor: "10" version: 4.10.0-0.microshift-e6980e25 kind: ConfigMap metadata: creationTimestamp: "2022-08-08T21:06:11Z" name: microshift-version namespace: kube-public
第2章 応答型の再起動およびセキュリティー証明書
Red Hat build of MicroShift はシステム設定の変更に対応し、IP アドレスの変更、クロックの調整、セキュリティー証明書の有効期限などの変更が検出されると再起動します。
2.1. IP アドレスの変更またはクロックの調整
Red Hat build of MicroShift は、デバイスの IP アドレスとシステム全体のクロック設定に依存して、ランタイム時に一貫性を保ちます。ただし、これらの設定は、DHCP やネットワークタイムプロトコル (NTP) の更新など、エッジデバイスで変更されることがあります。
このような変更が発生すると、一部の Red Hat build of MicroShift コンポーネントが正しく機能しなくなる可能性があります。この状況を軽減するために、Red Hat build of MicroShift は IP アドレスとシステム時間を監視し、設定の変更が検出された場合に再起動します。
時計の変更のしきい値は、いずれかの方向で時間の調整が 10 秒以上になった場合に適用されます。ネットワークタイムプロトコル (NTP) サービスによって実行される定期的な時刻調整の誤差が小さいと、再起動が行われません。
2.2. セキュリティー証明書の有効期間
Red Hat build of MicroShift 証明書は、次の 2 つの基本グループに分けられます。
- 証明書の有効期間が 1 年間の短期証明書。
- 証明書の有効期間が 10 年間の長期証明書。
ほとんどのサーバーまたはリーフ証明書の有効期限は短くなっています。
有効期間の長い証明書の例は、system:admin user
認証用のクライアント証明書、または kube-apiserver
外部提供証明書の署名者の証明書です。
2.2.1. 証明書のローテーション
証明書が古くなると、Red Hat build of MicroShift を再起動して証明書をローテーションできます。有効期限が近づいている証明書も、自動的に再起動する可能性があります。次の状況の概要を読んで、各時点でのアクションを確認してください。
グリーンゾーン:
- 短期証明書が 5 か月経過している場合には、ローテーションは発生しません。
- 長期証明書が 8.5 年経過している場合には、ローテーションは発生しません。
イエローゾーン:
- 短期証明書が 8 か月経過すると、Red Hat build of MicroShift の起動または再起動時にローテーションされます。
- 長期証明書が 9 年経過すると、Red Hat build of MicroShift の開始または再起動時にローテーションされます。
レッドゾーン
- 短期証明書が 8 か月経過すると、Red Hat build of MicroShift は再起動してローテーションし、新しい証明書を適用します。
- 長期証明書が 9 年経過すると、Red Hat build of MicroShift が再起動して、新しい証明書がローテーションされて適用されます。
ローテーションされた証明書が認証局である場合は、署名されたすべての証明書がローテーションされます。
図2.1 Red Hat build of MicroShift 証明書の有効期限のストップライトタイムライン。
第3章 トラブルシューティング
既知の問題のトラブルシューティングと、考えられる解決策を確認してください。
3.1. NodePort サービスの iptable ルールのトラブルシューティング
OVN-Kubernetes は、ネットワークアドレス変換 (NAT) テーブルに iptable チェーンをセットアップして、NodePort サービスへの着信トラフィックを処理します。NodePort サービスに到達できない場合、または接続が拒否された場合は、ホストの iptable ルールをチェックして、関連するルールが適切に挿入されていることを確認してください。
手順
次のコマンドを実行して、NodePort サービスの iptable ルールを表示します。
$ iptables-save | grep NODEPORT
出力例
-A OUTPUT -j OVN-KUBE-NODEPORT -A OVN-KUBE-NODEPORT -p tcp -m addrtype --dst-type LOCAL -m tcp --dport 30326 -j DNAT --to-destination 10.43.95.170:80
OVN-Kubernetes は、NAT テーブルに
OVN-KUBE-NODEPORT
iptable チェーンを設定して宛先ポートと一致させ、パケットを宛先ネットワークアドレス変換 (DNAT) してclusterIP
サービスに送信します。次に、DNAT されたパケットは、ホストのルーティングルールを経由してゲートウェイブリッジbr-ex
を介して OVN ネットワークにルーティングされます。次のコマンドを実行して、ルーティングルールを使用してネットワーク経由でパケットをルーティングします。
$ ip route
出力例
10.43.0.0/16 via 192.168.122.1 dev br-ex mtu 1400
このルーティングルールは、Kubernetes サービスの IP アドレス範囲と一致し、パケットをゲートウェイブリッジ
br-ex
に転送します。ホストでip_forward
を有効にする必要があります。パケットが OVS ブリッジbr-ex
に転送されると、そのパケットは OVS の OpenFlow ルールによって処理されてから OVN ネットワークに誘導され、最終的に Pod に誘導されます。