ネットワーク・パス分析テストを使用した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クラスタのネットワーク・パスを検証します。