ネットワーク・パス分析テストを使用したKubernetesクラスタのネットワーク構成の問題の トラブルシューティング

ネットワーク・パス分析テストを使用して、Kubernetes Engine (OKE)を使用して作成したクラスタでのネットワーク接続の問題を解決する方法をご紹介します。

Kubernetesエンジンで作成したクラスタが正しく機能するには、クラスタに指定されたネットワーク・リソースを適切に構成する必要があります。クイック作成ワークフローを使用してクラスタを作成すると、Kubernetesエンジンは、クラスタ作成およびデプロイメントのネットワーク・リソース構成で説明されているガイドラインに従って、新しいネットワーク・リソースを作成して構成します。ただし、カスタム作成ワークフローを使用してクラスタを作成する場合、使用する新規クラスタ用の既存のネットワーク・リソースを指定します。これらのリソースは、クラスタとのネットワーク通信を可能にし、異なるクラスタ・コンポーネントが相互に通信できるように適切に構成する必要があります。

Kubernetesクラスタのネットワーク・リソースの構成は複雑になる可能性があります。したがって、Kubernetes Engineには、ネットワーク構成の問題をトラブルシューティングするための事前定義済のネットワーク・パス分析テストが多数用意されています。これらのパス分析テストでは、仮想ネットワーク・トポロジを調査し、複数のルート表をウォークスルーし、ネットワーク・セキュリティ・グループ(NSG)およびセキュリティ・リストのセキュリティ・ルールを精査します。実際のトラフィックは送信されず、かわりに到達可能性の確認のために構成が調査および使用されます。

パス分析テストを使用すると、1つのOCIリソースが別のOCIリソース(ソースから宛先への単方向接続)に到達できるかどうか、および2つのOCIリソースが相互に到達できるかどうか(双方向接続)を判断できます。たとえば、パス分析テストを使用して、VCNネイティブ・ポッド・ネットワーキングCNIプラグインを使用するKubernetesクラスタ内のポッドがOCIサービスに到達できるかどうかを判断できます。その逆も同様です。

コンソールを使用する場合は、「クラスタの詳細」画面から事前定義済のパス分析テストを選択できます。使用可能な事前定義済のパス分析テストの詳細は、事前定義済のパス分析テストを参照してください。

事前定義された各パス分析テストには、多数の異なるテスト・パラメータが必要です。テストを実行すると、選択したテストに応じて、一部のテスト・パラメータまたはすべてのテスト・パラメータのデフォルト値は、クラスタで使用されるリソースのプロパティから導出されます。場合によっては、デフォルト値を変更できます。デフォルト値がないテスト・パラメータの値を指定する必要があります。事前定義済のパス分析テストを実行した後、結果をJSONファイルとして保存して、時間の経過とともにテスト結果を比較できます。クラスタに対して事前定義済のパス分析テストを実行する方法の詳細は、事前定義済のパス分析テストの実行を参照してください。

パス分析テストは、接続に影響する仮想ネットワーク構成の問題を識別するOracle Cloud Infrastructure Network Path Analyzer (NPA)を利用します。「クラスタ詳細」画面から使用できる事前定義済のパス分析テストに加えて、NPAを使用して独自のカスタム・パス分析テストを作成することもできます。NPAの実行に必要な権限、NPAを使用したパス分析テストの作成および実行方法など、NPAの詳細は、ネットワーク・パス・アナライザを参照してください。

パス分析テストを実行するために必要なIAMポリシー

パス分析テストを実行して、Kubernetesエンジンを使用して作成したKubernetesクラスタのネットワーク・パスを検証するには、ネットワーク・パス・アナライザ(NPA)を使用する権限が付与されているグループに属している必要があります。ネットワーク・パス・アナライザには、様々なネットワーク・リソースにアクセスする権限も付与されている必要があります。

付与する権限および推奨されるIAMポリシーを確認するには、ネットワーク・パス・アナライザのドキュメントで必要な権限を参照してください。

事前定義済のパス分析テスト

様々な事前定義済パス分析テストを使用して、Kubernetesエンジンを使用して作成したKubernetesクラスタのネットワーク・パスを検証できます。コンソールでは、次の方法でパス分析テストのリストをフィルタできます:

  • チェックする問題のタイプ(DNS障害、Kubernetesコントロール・プレーン障害、登録に失敗したノードなど)
  • Kubernetes Engineの正しい機能に必須、推奨またはオプションのパス

テストは、次の広範なテスト・カテゴリに分類されます。

  • クラスタAPIテスト:クラスタのKubernetes APIエンドポイントが他のクラスタ・コンポーネントおよびネットワークの場所と双方向に通信できるように、1つ以上のパスが使用可能であることを確認するために使用します。
  • ノード・テスト: Kubernetesデータ・プレーンのワーカー・ノードが他のクラスタ・コンポーネントおよびネットワークの場所と双方向に通信できるように、1つ以上のパスが使用可能であることを確認するために使用します。
  • ポッド・テスト: Kubernetesデータ・プレーンのポッドが他のクラスタ・コンポーネントおよびネットワークの場所と双方向に通信できるように、1つ以上のパスが使用可能であることを確認するために使用します。
  • Load Balancerテスト: OCIロード・バランサまたはネットワーク・ロード・バランサが他のクラスタ・コンポーネントおよびネットワークの場所と双方向で通信できるように、1つ以上のパスが使用可能であることを確認するために使用します。

クラスタ・コンポーネントは、クラスタのネットワーク・タイプ(Flannel overayまたはVCNネイティブ)およびクラスタに含まれるワーカー・ノードのタイプ(管理対象または仮想)に応じて、他のクラスタ・コンポーネントおよびネットワークの場所と通信するために異なるパスを使用します。各テスト・カテゴリには、これらの異なるパスを検証するための異なるパス分析テストがあります。

コンソールには、現在のクラスタに適用可能なパス分析テストのみが表示されます。たとえば、クラスタのネットワーク・タイプがFlannelオーバーレイの場合、Flannelオーバーレイ・ネットワーク・タイプに適用されるパス分析テストのみを選択できます。

事前定義済パス分析テストの実行

コンソールを使用して事前定義済のパス分析テストを実行し、Kubernetesエンジンを使用して作成したKubernetesクラスタのネットワーク・パスを検証します。

コンソールの使用

  1. ナビゲーション・メニューを開き、「開発者サービス」を選択します。「コンテナおよびアーティファクト」で、「Kubernetesクラスタ(OKE)」を選択します。
  2. 作業する権限があるコンパートメントを選択します。
  3. 「クラスタ・リスト」ページで、事前定義済のネットワーク・パス分析テストを実行するクラスタの名前をクリックします。
  4. 「リソース」で、「パス分析テスト」をクリックします。
    事前定義済のパス分析テストは、様々なテスト・カテゴリ・タブに表示される、次の広範なカテゴリにグループ化されます。
    • クラスタAPIテスト:クラスタのKubernetes APIエンドポイントが他のクラスタ・コンポーネントおよびネットワークの場所と双方向に通信できるように、1つ以上のパスが使用可能であることを確認するために使用します。
    • ノード・テスト: Kubernetesデータ・プレーンのワーカー・ノードが他のクラスタ・コンポーネントおよびネットワークの場所と双方向に通信できるように、1つ以上のパスが使用可能であることを確認するために使用します。
    • ポッド・テスト: Kubernetesデータ・プレーンのポッドが他のクラスタ・コンポーネントおよびネットワークの場所と双方向に通信できるように、1つ以上のパスが使用可能であることを確認するために使用します。
    • Load Balancerテスト: OCIロード・バランサまたはネットワーク・ロード・バランサが他のクラスタ・コンポーネントおよびネットワークの場所と双方向で通信できるように、1つ以上のパスが使用可能であることを確認するために使用します。
  5. (オプション)「チェックする問題のタイプ」で、チェックする問題のタイプを選択して、テスト・カテゴリ・タブに表示されるパス分析テストを指定します:
    • すべての問題
    • DNSの失敗
    • Kubernetesコントロール・プレーンの失敗
    • ノードが登録されていません
  6. (オプション)「フィルタ」で、次のように1つ以上の「OKE必須」オプションを選択または選択解除して、テスト・カテゴリ・タブに表示されるパス分析テストの数を減らすか、展開します。
    • はい: Kubernetesエンジンが正しく機能するために必要不可欠なパスを検証するパス分析テストを表示します。
    • 推奨: Kubernetes Engineによって作成されたクラスタで実行されているアプリケーションで使用するために推奨されている(必須ではない)パスを検証するパス分析テストを表示します。
    • いいえ:これらのパス分析テストを表示して、Kubernetes Engineでは不要で、特に推奨されていないが、Kubernetes Engineによって作成されたクラスタで実行されているアプリケーションで使用できるパスを検証します。
    「フィルタ」でOKEの必須オプションをすべて選択すると、使用可能なすべてのパス分析テストがテスト・カテゴリ・タブに表示されます。「フィルタ」でOKEの必須オプションをすべて選択解除すると、どのテスト・カテゴリ・タブにもパス分析テストは表示されません。
  7. テスト名と説明を使用して、いずれかのテスト・カテゴリ・タブで実行するパス分析テストを見つけます。
    ヒント:探しているパス分析テストが見つからない場合、またはパス分析テストが表示されていない場合は、「チェックする問題のタイプ」および「OKEが必要」オプションが正しく設定されていることを再度確認してください。また、実行するパス分析テストが現在のクラスタに適用可能であることも再度確認してください。たとえば、クラスタのネットワーク・タイプがFlannelオーバーレイの場合、Flannelオーバーレイ・ネットワーク・タイプに適用されるパス分析テストのみを選択できます。
  8. 実行するパス分析テストの横にある「パス分析の起動」をクリックして、「パス分析」ページを表示します。
    選択したパス分析テストを実行する適切な権限がない場合は、エラー・メッセージが表示されます。続行する前に、正しい権限を付与する必要があります。付与する権限および推奨されるIAMポリシーを確認するには、ネットワーク・パス・アナライザのドキュメントで必要な権限を参照してください。
  9. 選択したパス分析テストに応じて、デフォルト値を変更するか、「パス分析」ページでソースおよび宛先のテスト・パラメータの値を指定します。
    多くの場合、テスト・パラメータのデフォルト値は、クラスタで使用されるリソースのプロパティから導出されます。場合によっては、デフォルト値を変更できます。デフォルト値がないテスト・パラメータの値を指定する必要があります。
  10. 「分析の実行」をクリックして、パス分析テストを実行します。
  11. パス分析テストの実行を許可します(完了までに最大1分かかる場合があります)。
    パス分析テストの実行中は、トラフィックが実際にネットワークを横断していません。ネットワーク構成情報は単に収集および分析され、ソースと宛先の間のパスがどのように機能するか、または失敗するかを判断します。
    パス分析テストの実行後、ソースと宛先の間で識別された可能性のあるすべてのパス(最大8つ)が、「検出されたパス」セクションの異なるタブに表示されます。
    各タブには、パス分析テスト用に構成されたオプションと、ソースと宛先間のトラフィックのフォワード・パスと(構成されている場合)、および各パスのステータスをビジュアル化した図が表示されます。
    • パス分析テストで、ネットワーク・トラフィックが特定のパスを正常に通過できると判断した場合、そのパスのダイアグラムの「パス・ステータス」「到達可能」になります。緑色の矢印は、パス全体のノード間で成功した各ホップを表します。
    • パス分析テストで、ネットワーク・トラフィックが特定のパスを正常に移動できないと判断した場合、そのパスのダイアグラムの「パス・ステータス」「アクセス不可」になります。緑色の矢印はパス全体で成功したホップを表し、赤い矢印は到達できないホップまたはネットワーク・セグメントを表します。
  12. 「ダイアグラム情報の表示」をクリックして各パスのホップの詳細を表示するか、特定の矢印をクリックして特定のホップの詳細を取得します。たとえば、特定のノードのルーティングまたはセキュリティ構成に誤りがあるためにホップが失敗したかどうかを判断します。
    各ホップにはルーティング・ステータスがあり、次のいずれかの値があります:
    • 転送済:関連するルート表によってトラフィックが許可されます。
    • ルートなし:ルート表ではトラフィックが明示的に許可されません。
    • 不明:アカウントに必要な権限がないか、ノード・ルーティング情報がなんらかの理由で利用できないため、ルート表を分析できません。

    ノードがOCIリソースの場合、ルーティング情報は関連するルート・ルールに直接リンクします。

    各ホップにはセキュリティ・ステータスがあり、次のいずれかの値があります:
    • 許可:関連するセキュリティ・リストまたはルールによってトラフィックが許可されます。
    • ブロック済:セキュリティ・リストまたはルールによってトラフィックがブロックされます。
    • 不明:セキュリティ・リストまたはルールを分析できません。アカウントに必要な権限がないか、ノード・セキュリティ情報がなんらかの理由で利用できないためです。

    ノードがOCIリソースの場合、セキュリティ情報は関連するセキュリティ・リストまたはルールに直接リンクしています。

  13. (オプション)「JSONとして保存」をクリックして、パス分析テストの出力をデフォルトのダウンロード・ディレクトリのJSONファイルに保存します。
    パス分析テスト出力をJSONファイルとして保存すると、時間の経過とともにテスト結果を比較できます。
  14. 「クローズ」をクリックして「パス分析」ページを閉じます。