クラスタの作成とデプロイメントのためのネットワーク・リソース構成

Container Engine for Kubernetes (OKE)を使用するようにネットワーク・リソースを構成する方法を確認します。

Container Engine for Kubernetesを使用してテナンシ内のリージョンにクラスタを作成およびデプロイする前に:

  • テナント内には、必要なネットワーク・リソース(VCN、サブネット、インターネット・ゲートウェイ、ルート表、ネットワーク・セキュリティ・グループまたはセキュリティ・リスト(あるいはその両方)を含むコンパートメントがすでに存在している必要があります。そのようなコンパートメントが存在しない場合は、作成する必要があります。ネットワーク・リソースは、ルート・コンパートメントに配置できます。ただし、複数のチームがクラスタを作成すると予想される場合、ベスト・プラクティスはチームごとに個別のコンパートメントを作成することです。
  • コンパートメント内のネットワーク・リソース(VCN、サブネット、インターネット・ゲートウェイ、ルート表、ネットワーク・セキュリティ・グループまたはセキュリティ・リスト、あるいはその両方)は、クラスタを作成およびデプロイするリージョンごとに適切に構成する必要があります。新しいクラスタを作成する場合、Container Engine for Kubernetesではクイック作成ワークフローで新しいネットワーク・リソースを自動的に作成して構成できます。または、カスタム作成ワークフローで使用する既存のネットワーク・リソースを明示的に指定できます。既存のネットワーク・リソースを指定する場合は、このトピックで説明するように、あなたまたは他のユーザーがそれらのリソースを適切に構成している必要があります。

このトピックでは、ネットワーク・リソースごとに必要な構成について説明します。一般的な構成の詳細は、ネットワーク・リソース構成の例を参照してください。

紹介のチュートリアルは、Oracle Cloud Infrastructure Container Engine for Kubernetesを使用したクラスタの作成を参照してください。関連する開発者チュートリアルも多数用意されています。

VCN構成

クラスタを作成してデプロイするVCNは、次のように構成する必要があります:

VCNとサブネットおよびネットワーク・リソース構成の例を参照してください。

インターネット・ゲートウェイの構成

パブリック・サブネット(ワーカー・ノード、ロード・バランサおよび/またはKubernetes APIエンドポイント用)を使用する予定で、サブネットがインターネットとの間のアクセスを必要とする場合、VCNにはインターネット・ゲートウェイが必要です。インターネット・ゲートウェイは、宛先CIDRブロック0.0.0.0/0のターゲットとしてルート表のルート・ルールで指定する必要があります。

VCNとサブネットおよびネットワーク・リソース構成の例を参照してください。

NATゲートウェイの構成

プライベート・サブネット(ワーカー・ノード、Kubernetes APIエンドポイント、またはOCI VCNネイティブ・ポッド・ネットワーキングCNIプラグインを使用する場合のポッド)を使用する予定で、サブネットがインターネットへのアクセスを必要とする場合、VCNにNATゲートウェイが必要です。たとえば、デプロイされたアプリケーションがソフトウェアをダウンロードしたり、サード・パーティのサービスにアクセスしたりすることが予想される場合です。

NATゲートウェイは、宛先CIDRブロック0.0.0.0/0のターゲットとしてルート表のルート・ルールで指定する必要があります。

NATゲートウェイおよびネットワーク・リソース構成の例を参照してください。

サービス・ゲートウェイの構成

OCI VCNネイティブ・ポッド・ネットワーキングCNIプラグインの使用時に、ワーカー・ノード、Kubernetes APIエンドポイントまたはポッドにプライベート・サブネットを使用する場合は、VCNにサービス・ゲートウェイが必要です。

サービス・ゲートウェイをワーカー・ノード・サブネット、Kubernetes APIエンドポイント・サブネットまたはポッド・サブネットと同じVCNおよびコンパートメントに作成し、「Oracle Services Networkのすべての<region>サービス」オプションを選択します。

サービス・ゲートウェイは、Oracle Services Networkのすべての<region>サービスのターゲットとしてルート表のルート・ルールで指定する必要があります。

Oracle Servicesへのアクセス: サービス・ゲートウェイおよびネットワーク・リソース構成の例を参照してください。

ルート表の構成

ワーカー・ノード・サブネットのルート表

ワーカー・ノードをパブリック・サブネットにデプロイする場合、サブネット・ルート表には、インターネット・ゲートウェイを宛先CIDRブロック0.0.0.0/0のターゲットとして指定するルート・ルールが必要です。

ワーカー・ノードをプライベート・サブネットにデプロイする場合、サブネット・ルート表には次のものが必要です:

  • Oracle Services Networkのすべての<region>サービスのターゲットとしてサービス・ゲートウェイを指定するルート・ルール
  • NATゲートウェイを宛先CIDRブロック0.0.0.0/0のターゲットとして指定するルート・ルール

Kubernetes APIエンドポイント・サブネットのルート表

パブリック・サブネットにKubernetes APIエンドポイントをデプロイする場合、サブネット・ルート表には、宛先CIDRブロック0.0.0.0/0のターゲットとしてインターネット・ゲートウェイを指定するルート・ルールが必要です。

プライベート・サブネットにKubernetes APIエンドポイントをデプロイする場合、サブネット・ルート表には次のものが必要です:

  • Oracle Services Networkのすべての<region>サービスのターゲットとしてサービス・ゲートウェイを指定するルート・ルール
  • NATゲートウェイを宛先CIDRブロック0.0.0.0/0のターゲットとして指定するルート・ルール

ロード・バランサ・サブネットのルート表

パブリック・サブネットにロード・バランサをデプロイする場合、サブネット・ルート表には、宛先CIDRブロック0.0.0.0/0のターゲットとしてインターネット・ゲートウェイを指定するルート・ルールが必要です。

ロード・バランサをプライベート・サブネットにデプロイする場合は、サブネット・ルート表を空にできます。

ポッド・サブネットのルート表

ポッド・ネットワークにOCI VCNネイティブ・ポッド・ネットワークCNIプラグインを使用する場合は、プライベート・サブネットにポッドをデプロイします。サブネット・ルート表には次のものが必要です:

  • Oracle Services Networkのすべての<region>サービスのターゲットとしてサービス・ゲートウェイを指定するルート・ルール
  • NATゲートウェイを宛先CIDRブロック0.0.0.0/0のターゲットとして指定するルート・ルール

ポッドネットワーキングにflannel CNIプラグインを使用する場合、ポッドサブネットは必要ありません。

ルート表の構成に関するノート

DHCPオプションの構成

クラスタを作成してデプロイするVCNには、DHCPオプションが構成されている必要があります。Internet and VCN Resolverの「DNSタイプ」のデフォルト値はそのまま使用できます。

DHCPオプションおよびネットワーク・リソース構成の例を参照してください。

サブネットの構成

作成するクラスタの特性によって、構成するサブネットの数が決まります。ベスト・プラクティスは、リージョナル・サブネットを使用して、可用性ドメイン全体のフェイルオーバーを実装しやすくすることです。

クラスタを作成およびデプロイするVCNには、少なくとも2つの異なるサブネット(オプションで複数のサブネット)が必要です:

  • Kubernetes APIエンドポイント・サブネット
  • ワーカー・ノード・サブネット
  • 1つのリージョナル、または2つのAD固有のロード・バランサ・サブネット(オプション)
  • ポッド・サブネット(VCNネイティブ・ポッド・ネットワーキングを使用している場合)
  • 要塞サブネット(オプション)

サブネットを結合することも、セキュリティ・ルールを結合することもできます。ただし、この方法ではセキュリティの管理が難しくなるため、ネットワーク・セキュリティ・グループを使用してクラスタへのアクセスを制御しないかぎりお薦めしません。

サブネットCIDRブロックは、クラスタ内で実行されているポッドに指定するCIDRブロックと重複しないようにする必要があります(CIDRブロックおよびContainer Engine for Kubernetesを参照)。

仮想ノードと管理対象ノードの要件は異なるため、管理対象ノードではなく仮想ノードを使用する場合、ワーカー・ノード・サブネットとポッド・サブネットの構成は若干異なります。

サブネットは、次のプロパティで構成する必要があります:

VCNとサブネットおよびネットワーク・リソース構成の例を参照してください。

Kubernetes APIエンドポイント・サブネットの構成

Kubernetes APIエンドポイント・サブネットは、クラスタ・コントロール・プレーン上のKubernetes APIへのアクセスを提供するエンドポイントをホストします。

Kubernetes APIエンドポイント・サブネットはリージョナル・サブネットである必要があり、プライベート・サブネットまたはパブリック・サブネットにすることができます:

ワーカー・ノード・サブネットの構成

ワーカー・ノード・サブネットは、ワーカー・ノードをホストします。ノード・プール内のすべての管理対象ノードは、同じワーカー・ノード・サブネットに属します。

ワーカー・ノード・サブネットは、単一のリージョナル・サブネットまたは複数のAD固有のサブネット(各可用性ドメインに1つずつ)のいずれかです。

管理対象/自己管理ノード:ワーカー・ノード・サブネットは、パブリック・サブネットまたはプライベート・サブネットのいずれかです。ただし、最大のセキュリティのために、ワーカー・ノード・サブネットはプライベート・サブネットにすることをお薦めします。

仮想ノード:ワーカー・ノード・サブネットは、パブリック・サブネットまたはプライベート・サブネットのいずれかです。ただし、最大のセキュリティのために、ワーカー・ノード・サブネットはプライベート・サブネットにすることをお薦めします。また、ワーカー・ノード・サブネットとポッド・サブネットは同じサブネットであることをお薦めします(その場合、仮想ノードではポッド・サブネットがプライベート・サブネットであることが必要なため、ワーカー・ノード・サブネットはプライベート・サブネットである必要があります)。

ポッド・サブネットの構成

ポッド・サブネットは、VCNネイティブ・ポッド・ネットワークを使用するときに、ノード・プール内のワーカー・ノード上のポッドをホストします(「ポッド・ネットワーク用のOCI VCNネイティブ・ポッド・ネットワークCNIプラグインの使用」を参照)。

ポッド・サブネットは、単一のリージョナル・サブネットである必要があります。

管理対象ノード:ポッド・サブネットは、パブリック・サブネットまたはプライベート・サブネットです。ただし、最大のセキュリティのために、ポッド・サブネットはプライベート・サブネットにすることをお薦めします。

仮想ノード:ポッド・サブネットはプライベート・サブネットである必要があります。ポッド・サブネットとワーカー・ノード・サブネットは同じサブネット(この場合、ワーカー・ノード・サブネットもプライベート・サブネットである必要があります)にすることをお薦めします。

ロード・バランサ・サブネットの構成

ロード・バランサ・サブネットは、LoadBalancerタイプのKubernetesサービスによって作成されたOracle Cloud Infrastructureロード・バランサを接続します。

ロード・バランサ・サブネットは、単一のリージョナル・サブネットまたはAD固有のサブネット(各可用性ドメインに1つずつ)です。ただし、リージョナル・サブネットをお薦めします。

ロード・バランサ・サブネットは、クラスタにデプロイされたアプリケーションへのアクセス方法に応じて、パブリック・サブネットまたはプライベート・サブネットのいずれかになります。アプリケーションがVCN内から内部的にアクセスされる場合は、ロード・バランサ・サブネットにプライベート・サブネットを使用します。アプリケーションがインターネットからアクセスされる場合は、ロード・バランサ・サブネットにパブリック・サブネットを使用します。

要塞サブネット構成(オプション)

要塞サブネット内のオプションの要塞は、Kubernetes APIエンドポイントへのセキュアなアクセス、およびワーカー・ノードへのSSHアクセスを提供できます。クラスタ・アクセスの基本設定を参照してください。

ネットワーク・セキュリティ・グループまたはセキュリティ・リスト(あるいはその両方)でのセキュリティ・ルール構成

クラスタを作成してデプロイするVCNには、セキュリティ・ルールが定義されている必要があります。セキュリティ・ルールは、次の方法のいずれかまたは両方で定義できます。

  • ネットワーク・セキュリティ・グループ(推奨)で、ノード・プール、Kubernetes APIエンドポイント、ポッド(VCNネイティブ・ポッド・ネットワーキングを使用している場合)、およびクラスタの作成時にロード・バランサ(指定されている場合)に対して選択します。
  • ワーカー・ノード、Kubernetes APIエンドポイント、ポッド(VCNネイティブ・ポッド・ネットワーキングを使用している場合)、およびクラスタの作成時にロード・バランサ(指定されている場合)に対して選択したサブネットにすでに関連付けられているセキュリティ・リスト

ワーカー・ノード、Kubernetes APIエンドポイント、ポッド(VCNネイティブ・ポッド・ネットワーキングを使用している場合)、およびロード・バランサには、このトピックで説明するように、異なるセキュリティ・ルール要件があります。特定のニーズを満たすようにルールを追加できます。

ネットワーク・セキュリティ・グループとセキュリティ・リストの両方にセキュリティ・ルールを指定すると、すべてのセキュリティ・ルールが適用されます(つまり、セキュリティ・ルールの結合)。

詳細は、次を参照してください:

Kubernetes APIエンドポイントのセキュリティ・ルール

Kubernetes APIエンドポイント、ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に対して、次のイングレス・ルールを定義する必要があります:

状態 ソース プロトコル/宛先ポート 説明
ステートフル ワーカー・ノードCIDR TCP/6443 KubernetesワーカーからKubernetes APIエンドポイントへの通信。
ステートフル ワーカー・ノードCIDR TCP/12250 KubernetesワーカーからKubernetes APIエンドポイントへの通信。
ステートフル ポッドCIDR TCP/6443 ポッドからKubernetes APIへのエンドポイント通信(VCNネイティブ・ポッド・ネットワーキングを使用する場合)。
ステートフル ポッドCIDR TCP/12250 ポッドからKubernetes APIへのエンドポイント通信(VCNネイティブ・ポッド・ネットワーキングを使用する場合)。
ステートフル ワーカー・ノードCIDR ICMP 3,4 パス検出。

Kubernetes APIエンドポイント、ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に、次のオプションのイングレス・ルールを定義できます:

状態 ソース プロトコル/宛先ポート 説明
ステートフル 0.0.0.0/0または特定のサブネット TCP/6443 Kubernetes APIエンドポイントへのクライアント・アクセス

Kubernetes APIエンドポイント、ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に、次のエグレス・ルールを定義する必要があります:

状態 宛先 プロトコル/宛先ポート 説明
ステートフル Oracle Services Networkのすべての<region>サービス TCP/443 Kubernetes APIエンドポイントがOKEと通信できるようにします。
ステートフル ワーカー・ノードCIDR TCP/すべて ワーカー・ノードへのすべてのトラフィック(ポッド・ネットワーキングにflannelを使用している場合)。
ステートフル ポッドCIDR すべて/すべて

Kubernetes APIエンドポイントからポッドへの通信(VCNネイティブ・ポッド・ネットワーキングを使用する場合)。

ステートフル ワーカー・ノードCIDR ICMP 3,4 パス検出。
ステートフル ワーカー・ノードCIDR TCP 10250、ICMP Kubernetes APIエンドポイントからワーカー・ノードへの通信(VCNネイティブ・ポッド・ネットワーキングを使用している場合)。

ワーカー・ノードのセキュリティ・ルール

ワーカー・ノードは、クラスタ内のノード・プールを定義するときにパブリック・サブネットとプライベート・サブネットのどちらを指定するかに応じて、パブリックIPアドレスまたはプライベートIPアドレスを使用して作成されます。Container Engine for Kubernetesはワーカー・ノードにアクセスできる必要があります。

ワーカー・ノード、ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に対して、次のイングレス・ルールを定義する必要があります。

状態 ソース プロトコル/宛先ポート 説明
ステートフル ワーカー・ノードCIDR すべて/すべて ワーカー・ノード間の通信を許可します。
ステートフル ポッドCIDR すべて/すべて (VCNネイティブ・ポッド・ネットワーキングを使用している場合)あるワーカー・ノードのポッドが他のワーカー・ノードのポッドと通信できるようにする。
ステートフル Kubernetes APIエンドポイントCIDR TCP/すべて Kubernetes APIエンドポイントがワーカー・ノードと通信できるようにします。
ステートフル 0.0.0.0/0 ICMP 3,4 パス検出。
ステートフル Kubernetes APIエンドポイントCIDR TCP 10250、ICMP Kubernetes APIエンドポイントからワーカー・ノードへの通信(VCNネイティブ・ポッド・ネットワーキングを使用している場合)。

次のオプションのイングレス・ルールは、ワーカー・ノード(管理対象ノードのみ)、ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に対して定義できます:

状態 ソース プロトコル/宛先ポート 説明
ステートフル 0.0.0.0/0またはサブネットCIDR TCP/22 (オプション)ワーカー・ノードへのインバウンドSSHトラフィックを許可します。

ワーカー・ノード、ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に対して、次のエグレス・ルールを定義する必要があります。

状態 宛先 プロトコル/宛先ポート 説明
ステートフル ワーカー・ノードCIDR すべて/すべて ワーカー・ノード間の通信を許可します。
ステートフル ポッドCIDR すべて/すべて ワーカー・ノードが他のワーカー・ノード上のポッドと通信できるようにします(VCNネイティブ・ポッド・ネットワーキングを使用している場合)。
ステートフル 0.0.0.0/0 ICMP 3,4 パス検出。
ステートフル Oracle Services Networkのすべての<region>サービス TCP/すべて ノードがOKEと通信することを許可します。
ステートフル Kubernetes APIエンドポイントCIDR TCP/6443 KubernetesワーカーからKubernetes APIエンドポイントへの通信。
ステートフル Kubernetes APIエンドポイントCIDR TCP/12250 KubernetesワーカーからKubernetes APIエンドポイントへの通信。

ワーカー・ノード、ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に対して、次のオプションのエグレス・ルールを定義できます。

状態 宛先 プロトコル/宛先ポート 説明
ステートフル 0.0.0.0/0 TCP/すべて (オプション)ワーカー・ノードがインターネットと通信することを許可します。

ポッド・サブネットのセキュリティ・ルール

ポッド・ネットワークにOCI VCNネイティブ・ポッド・ネットワークCNIプラグインを使用する場合:

  • ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)のワーカー・ノード・サブネットに定義されているセキュリティ・ルールには、次のものを含める必要があります。

    • ワーカー・ノード間のすべてのトラフィックを許可するステートフル・イングレスおよびエグレス・ルール
    • ワーカー・ノードとロード・バランサ間のすべてのトラフィックを許可するステートフル・イングレスおよびエグレス・ルール
    • ワーカー・ノードとContainer Engine for Kubernetes間のトラフィックを許可するステートフルなエグレス・ルール
  • ポッド・サブネット(ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に定義されているセキュリティ・ルールには、ポッド間のすべてのトラフィックを許可するステートフル・イングレス・ルールおよびエグレス・ルールを含める必要があります

ポッド・サブネット、ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に対して、次のイングレス・ルールを定義する必要があります。

状態 ソース プロトコル/宛先ポート 説明
ステートフル Kubernetes APIエンドポイントCIDR すべて/すべて Kubernetes APIエンドポイントからポッドへの通信(VCNネイティブ・ポッド・ネットワーキングを使用する場合)。
ステートフル ワーカー・ノードCIDR すべて/すべて あるワーカー・ノードのポッドが他のワーカー・ノードのポッドと通信することを許可します。
ステートフル ポッドCIDR すべて/すべて ポッドが相互に通信できるようにします。

ポッド・サブネット、ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に対して、次のエグレス・ルールを定義する必要があります。

状態 宛先 プロトコル/宛先ポート 説明
ステートフル ポッドCIDR すべて/すべて ポッドが相互に通信できるようにします。
ステートフル Oracle Services Networkのすべての<region>サービス ICMP 3,4 パス検出。
ステートフル Oracle Services Networkのすべての<region>サービス TCP/すべて ワーカー・ノードがOCIサービスと通信できるようにします。
ステートフル Kubernetes APIエンドポイントCIDR TCP/6443 ポッドからKubernetes APIへのエンドポイント通信(VCNネイティブ・ポッド・ネットワーキングを使用する場合)。
ステートフル Kubernetes APIエンドポイントCIDR TCP/12250 ポッドからKubernetes APIへのエンドポイント通信(VCNネイティブ・ポッド・ネットワーキングを使用する場合)。

次のオプションのエグレス・ルールは、ポッド・サブネット、ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に対して定義できます:

状態 宛先 プロトコル/宛先ポート 説明
ステートフル 0.0.0.0/0 TCP/443 (オプション)ポッドがインターネットと通信できるようにします。

ロード・バランサとネットワーク・ロード・バランサのセキュリティ・ルール

Container Engine for KubernetesがタイプLoadBalancerのKubernetesサービスに対してOCIロード・バランサまたはネットワーク・ロード・バランサをプロビジョニングする場合、ロード・バランサまたはネットワーク・ロード・バランサのサブネットとの間のインバウンドおよびアウトバウンド・トラフィックを許可するための適切なセキュリティ・ルールが存在する必要があります。管理対象ノード(仮想ノードではない)の場合、これらのセキュリティ・ルールは、ロード・バランサに対してデフォルトで自動的に作成されますが、ネットワーク・ロード・バランサに対してデフォルトでは自動的に作成されません。LoadBalancerタイプのKubernetesサービスに対するOCIロード・バランサまたはネットワーク・ロード・バランサのプロビジョニングの詳細は、LoadBalancerタイプのKubernetesサービスの定義を参照してください。

ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)のサブネットに対して、イングレスおよびエグレス・セキュリティ・ルールを定義できます。詳細は、次を参照してください:

次のイングレス・セキュリティ・ルールを、いずれかまたは両方で定義します。

  • ロード・バランサまたはネットワーク・ロード・バランサ・リソースが追加されたネットワーク・セキュリティ・グループ(推奨)
  • ロード・バランサまたはネットワーク・ロード・バランサのサブネットに関連付けられたセキュリティ・リスト
状態 ソース プロトコル/宛先ポート 説明
ステートフル 0.0.0.0/0または特定のCIDR TCP/443 Load Balancerへのインバウンド・トラフィックを許可します。

特定のアプリケーション要件に合せて、イングレス・ルールのプロトコルおよび宛先ポートを適切に設定します。たとえば、UDPトラフィックを処理するアプリケーションのプロトコルとして UDPを指定します。

次のエグレス・セキュリティ・ルールを、いずれかまたは両方で定義します。

  • ロード・バランサまたはネットワーク・ロード・バランサ・リソースが追加されたネットワーク・セキュリティ・グループ(推奨)
  • ロード・バランサまたはネットワーク・ロード・バランサのサブネットに関連付けられたセキュリティ・リスト
状態 宛先 プロトコル/宛先ポート 説明
ステートフル ワーカー・ノードCIDR すべて/30000-32767 ワーカー・ノードへのトラフィックを許可します。

デフォルトでは、クラスタ内のすべてのワーカー・ノードに対するContainer Engine for Kubernetesプロキシ・リクエストによってプロビジョニングされたOCIロード・バランサまたはネットワーク・ロード・バランサ。リクエストがクラスタ内のワーカー・ノードにプロキシされる場合、ロード・バランサまたはネットワーク・ロード・バランサがポート10256 (kube-proxyヘルス・ポート)のワーカー・ノードと通信するには、次のイングレスおよびエグレス・セキュリティ・ルールが(ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に存在する必要があります:

  • ロード・バランサまたはネットワーク・ロード・バランサがワーカー・ノード上のkube-proxyと通信できるようにする、ワーカー・ノード・サブネットのセキュリティ・リスト(またはネットワーク・セキュリティ・グループ)のイングレス・セキュリティ・ルール:
    状態 ソース プロトコル/宛先ポート 説明
    ステートフル ロード・バランサまたはネットワーク・ロード・バランサ・サブネットCIDR ALL/10256 OCIロード・バランサまたはネットワーク・ロード・バランサが、ワーカー・ノードでkube-proxyと通信できるようにします。
  • ロード・バランサまたはネットワーク・ロード・バランサ・サブネットのセキュリティ・リスト(またはネットワーク・セキュリティ・グループ)のエグレス・セキュリティ・ルールを使用して、ロード・バランサまたはネットワーク・ロード・バランサがワーカー・ノードでkube-proxyと通信できるようにします:
    状態 宛先 プロトコル/宛先ポート 説明
    ステートフル ワーカー・ノード・サブネットCIDR ALL/10256 OCIロード・バランサまたはネットワーク・ロード・バランサが、ワーカー・ノードでkube-proxyと通信できるようにします。

LoadBalancerタイプのKubernetesサービスのネットワーク・ロード・バランサをプロビジョニングする場合:

  • リクエストが、クラスタ内の他のワーカー・ノードにプロキシされるのではなく、IPパケットのヘッダーで指定されたクライアントIPアドレスで終了するように指定できます(externalTrafficPolicy: Localを設定)。「受信ノードでのリクエストの終了」を参照してください。
  • リクエストがクライアントIPアドレスで終了するように指定した場合、(oci-network-load-balancer.oraclecloud.com/is-preserve-source注釈を使用して)クライアントIPアドレスをIPパケットのヘッダーに保持するかどうかも指定できます。「クライアントIPアドレスの保持」を参照してください。

どちらの場合も、クライアント接続が行われるCIDRブロックからすべてのノード・ポート(30000から32767)へのイングレス・トラフィックを許可するには、クラスタ内のワーカー・ノードに対して(ネットワーク・セキュリティ・グループ(推奨)またはセキュリティ・リスト(あるいはその両方)に)セキュリティ・ルールを設定する必要があります。アプリケーションがインターネットに公開されている場合は、セキュリティ・ルールのソースCIDRブロックを0.0.0.0/0に設定します。または、セキュリティ・ルールのソースCIDRブロックを特定のCIDRブロックに設定します(たとえば、クライアント接続が特定のサブネットからの場合)。

状態 ソース プロトコル/宛先ポート 説明
ステートフル 0.0.0.0/0またはサブネットCIDR すべて/30000-32767 ワーカー・ノードがOCI Network Load Balancerを介して接続を受信できるようにします。

要塞サブネットのセキュリティ・ルール

要塞サブネット内のオプションの要塞は、Kubernetes APIエンドポイントへのセキュアなアクセス、およびワーカー・ノードへのSSHアクセスを提供できます。定義するイングレスおよびエグレス・セキュリティ・ルールの詳細は、「クラスタ・アクセス用の要塞の設定」を参照してください。