CIDRブロックおよびContainer Engine for Kubernetes

Container Engine for Kubernetes (OKE)の使用時に指定するCIDRブロックについて確認します。

Container Engine for Kubernetesで使用するようにVCNおよびサブネットを構成する場合、リソースに割り当てることができるネットワーク・アドレスを示すCIDRブロックを指定します。CIDRブロックは、Kubernetes APIエンドポイント、ワーカー・ノード、ロード・バランサ、ポッドの(VCNネイティブ・ポッド・ネットワーキングの場合)に使用されます。クラスタの作成とデプロイメントのためのネットワーク・リソース構成を参照してください。

ポッド・ネットワーク用のFlannel CNIプラグインを使用する場合のCIDRブロック

Container Engine for Kubernetesを使用してクラスタを作成し、ポッド・ネットワーキングにflannel CNIプラグインを使用する場合は、次を指定します:

ポッド・ネットワークにFlannel CNIプラグインを使用する場合、次の点に注意してください。

  • チャネルCNIプラグインは、管理対象ノード・プールがあるクラスタでポッド・ネットワーキングに使用できますが、仮想ノード・プールがあるクラスタでは使用できません。
  • VCNおよびサブネットに指定するCIDRブロックは、Kubernetesサービスおよびポッドに指定するCIDRブロックと重複することはできません。
  • Kubernetes APIエンドポイント・サブネットには小さいCIDRブロックのみが必要です。これは、クラスタはこのサブネットに1つのIPアドレスしか必要としないためです。Kubernetes APIエンドポイント・サブネットには、/30 CIDRブロックのネットワーク・アドレスで十分です。
  • クラスタで実行されているポッドに指定するCIDRブロックは、Kubernetes APIエンドポイント、ワーカー・ノードおよびロード・バランサ・サブネットに指定するCIDRブロックと重複できません。
  • ワーカー・ノードで実行されている各ポッドには、独自のネットワーク・アドレスが割り当てられます。Container Engine for Kubernetesは、クラスタ内の各ワーカー・ノードにネットワーク・アドレスの/25 CIDRブロックを割り当てて、そのノードで実行されているポッドに割り当てます。/25 CIDRブロックは128個の個別IPアドレスに相当し、そのうちの1つは予約されています。したがって、各ワーカー・ノードで実行されているポッドには、最大127個のネットワーク・アドレスを割り当てることができます(ノード当たりのポッド数が110に制限されている場合は十分です)。
  • クラスタを作成する場合、クラスタのポッドCIDRブロック・プロパティの値を指定します(クイック作成ワークフローの場合は暗黙的に、カスタム作成ワークフローの場合は明示的に指定します)。クラスタの作成後にクラスタの「ポッドCIDRブロック」プロパティを変更することはできません。クラスタの「ポッドCIDRブロック」プロパティは、クラスタ内のすべてのノードで実行されているポッドへの割当てに使用できるネットワーク・アドレスの最大合計数を制約するため、クラスタ内のノード数を効果的に制限します。デフォルトでは、クラスタの「ポッドCIDRブロック」プロパティは/16 CIDRブロックに設定され、65,536個のネットワーク・アドレスがクラスタ内のすべてのノードに使用可能になります。128個のネットワーク・アドレスが各ノードに割り当てられるため、クラスタの「ポッドCIDRブロック」プロパティに/16 CIDRブロックを指定すると、クラスタ内のノード数が512に制限されます。通常はこれで十分です。クラスタで512を超えるノードをサポートするには、カスタム作成ワークフローでクラスタを作成し、クラスタのポッドCIDRブロック・プロパティにより大きい値を指定します。たとえば、クラスタの「ポッドCIDRブロック」プロパティに/14 CIDRブロックを指定して、クラスタ内のノードに262,144個のネットワーク・アドレスが使用可能なクラスタを作成します(クラスタ当たりのノード数が基本クラスタの場合は1000に、拡張クラスタの場合は2000に上限が設定されている場合は十分です)。

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

Container Engine for Kubernetesでクラスタを作成し、ポッド・ネットワークにOCI VCNネイティブ・ポッド・ネットワークCNIプラグインを使用する場合は、次を指定します:

  • KubernetesサービスのCIDRブロック

ポッド・ネットワークにOCI VCNネイティブ・ポッド・ネットワークCNIプラグインを使用する場合、次の点に注意してください:

  • OCI VCNネイティブ・ポッド・ネットワーキングCNIプラグインは、管理対象ノード・プールを持つクラスタ、および仮想ノード・プールを持つクラスタを持つポッド・ネットワーキングに使用できます。
  • VCNおよびサブネットに指定するCIDRブロックは、Kubernetesサービスに指定するCIDRブロックと重複することはできません。
  • Kubernetes APIエンドポイント・サブネットには小さいCIDRブロックのみが必要です。これは、クラスタはこのサブネットに1つのIPアドレスしか必要としないためです。Kubernetes APIエンドポイント・サブネットには、/29 CIDRブロックのネットワーク・アドレスで十分です。
  • ノード・プール内のすべてのワーカー・ノード(インスタンス)には、プライマリIPアドレスを持つプライマリ仮想ネットワーク・インタフェース・カード(VNIC)があります。ノード・プールに選択したシェイプによっては、各ワーカー・ノードに1つ以上のセカンダリVNICがアタッチされていることもあります。VNICは、ポッド通信用に選択されたサブネット内に存在します。各VNICは複数のセカンダリIPアドレスに関連付けることができます。ワーカー・ノードで実行されているポッドは、VNICからセカンダリIPアドレスを取得し、そのIPアドレスを自身に割り当て、そのIPアドレスをインバウンドおよびアウトバウンド通信に使用できます。ワーカー・ノードにアタッチされている各セカンダリVNICは、最大31のセカンダリIPアドレスを割り当てることができます。
  • 通常、ポッド・サブネットのネットワーク・アドレスの/19 CIDRブロックで十分です。ただし、ポッド数が多いクラスタでは、ネットワーク・アドレスのCIDRブロックが大きくなります(たとえば、/16)。