KubernetesクラスタでのOCIネイティブ・イングレス・コントローラの設定

OCIネイティブ・イングレス・コントローラを設定して、Kubernetesイングレス・リソースに定義されたルールおよび構成オプションを実装し、受信トラフィックをロード・バランシングし、クラスタ内のワーカー・ノードで実行されているサービス・ポッドにルーティングする方法をご覧ください。

OCIネイティブ・イングレス・コントローラは、Kubernetesイングレス・リソースに定義されたルールおよび構成オプションを実装して、受信トラフィックをロード・バランシングし、クラスタ内のワーカー・ノードで実行されているサービス・ポッドにルーティングします。OCIネイティブ・イングレス・コントローラは、リクエストを処理するOCIフレキシブル・ロード・バランサを作成し、イングレス・リソースで定義されたルールに従ってリクエストをルーティングするようにOCIロード・バランサを構成します。ルーティング・ルールまたは他のサポート・リソースに変更がある場合、OCIネイティブ・イングレス・コントローラはそれに応じてロード・バランサ構成を更新します。OCIネイティブ・イングレス・コントローラは、クラスタ内のランダムに選択されたワーカー・ノードで単一のポッドとして実行されます。

OCIネイティブ・イングレス・コントローラは、次のようにOCIロード・バランサ・リソースを作成します:

  • OCIネイティブ・イングレス・コントローラをコントローラとして指定した各IngressClassリソースのロード・バランサ。
  • クラスタ内のIngressリソースのルーティング・ルールに含める一意のKubernetesサービス名およびポート番号の組合せごとに、ロード・バランサ・バックエンド・セット。
  • クラスタ内のIngressリソースのルーティング・ルールに含める一意のポートごとにロード・バランサ・リスナー。OCIネイティブ・イングレス・コントローラは、イングレス・バックエンド構成に基づいて各リスナーのプロトコル(HTTP、HTTPS、HTTP/2)を決定します。

OCIネイティブ・イングレス・コントローラは、バックエンド・セットにバックエンドとして、クラスタがポッド・ネットワーキングに使用するCNIプラグインに応じて、それぞれのKubernetesサービス名およびポートのエンドポイントとして機能するポッド、またはそれらのポッドを実行できるワーカー・ノードを追加します:

  • クラスタがポッド・ネットワークにOCI VCNネイティブ・ポッド・ネットワークCNIプラグインを使用する場合、OCIネイティブ・イングレス・コントローラによって、ポッドがバックエンドとして追加されます。
  • クラスタがポッド・ネットワーキングにFlannel CNIプラグインを使用する場合、OCIネイティブ・イングレス・コントローラはワーカー・ノードをバックエンドとして追加します。この場合、OCIネイティブ・イングレス・コントローラは、サービスのマニフェストのexternalTrafficPolicy設定を使用して、バックエンド・セットに追加するワーカー・ノードを次のように判断します:
    • externalTrafficPolicy: Clusterの場合、OCIネイティブ・イングレス・コントローラは、クラスタ内のすべてのワーカー・ノードをバックエンド・セットに追加します。
    • externalTrafficPolicy: Localの場合、OCIネイティブ・イングレス・コントローラは、サービスのポッドがデプロイされているワーカー・ノードのみをバックエンド・セットに追加します。

OCIネイティブ・イングレス・コントローラは、IPアドレス、バックエンド・セット、リスナーおよびバックエンド・サーバーの合計数に関する通常のLoad Balancerサービス制限の対象となるOCIロード・バランサ・リソースを作成します。詳細は、ロード・バランシング・リソースの制限を参照してください。

OCIネイティブ・イングレス・コントローラは、次のいずれかの方法でKubernetesクラスタにデプロイできます:

OCIネイティブ・イングレス・コントローラを使用して受信トラフィックのロード・バランシングおよびルーティングを行う場合は、次の点に注意してください:

  • OCIネイティブ・イングレス・コントローラをスタンドアロン・プログラムとしてインストールする場合、クラスタでKubernetesバージョン1.26以上が実行されている必要があります。OCIネイティブ・イングレス・コントローラをクラスタ・アドオンとしてインストールする場合、クラスタでKubernetesバージョン1.28以降が実行されている必要があります。
  • クラスタには、ロード・バランサ・サブネット・セキュリティ・ルールが構成されている必要があります。
  • クラスタは、OCI VCNネイティブ・ポッド・ネットワークCNIプラグインまたはポッド・ネットワーク用のチャネルCNIプラグインのいずれかを使用できます。クラスタがポッド・ネットワーキングにFlannel CNIプラグインを使用する場合、OCIネイティブ・イングレス・コントローラは、サービスのマニフェストで指定されたtype: NodePortのバックエンド・サービスのみをサポートします。
  • OCIネイティブ・イングレス・コントローラがOCIサービスおよびリソースにアクセスできるようにするインスタンス・プリンシパルの使用は、仮想ノードを持つクラスタではサポートされていません。
  • 拡張クラスタではワークロード・アイデンティティ・プリンシパルを指定できますが、基本クラスタでは指定できません。
  • OCIネイティブ・イングレス・コントローラがスタンドアロン・プログラムとしてクラスタにすでにデプロイされている場合は、OCIネイティブ・イングレス・コントローラ・クラスタ・アドオンもクラスタにデプロイしないでください。