ネットワーク・リソース構成例

Container Engine for Kubernetes (OKE)を使用するときに、3つの可用性ドメインを持つリージョンに高可用性クラスタを作成およびデプロイするためのネットワーク・リソースの構成方法の例をご紹介します。

新しいクラスタを作成する場合、クイック作成ワークフローを使用して、新しいネットワーク・リソースを自動的に作成できます。または、カスタム作成ワークフローを使用して、既存のネットワーク・リソースを明示的に指定できます。必要なネットワーク・リソースの詳細は、クラスタの作成とデプロイメントのためのネットワーク・リソース構成を参照してください。

このトピックでは、カスタム作成ワークフローを使用して可用性ドメインが3つあるリージョンに高可用性クラスタを作成する場合に、ネットワーク・リソースを構成する方法の例を示します:

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

ノート

この項の例は、クラスタへのアクセスを制御するためのセキュリティ・リストでのセキュリティ・ルールの使用を示しています。セキュリティ・リストよりも(推奨されている)ネットワーク・セキュリティ・グループを使用する場合は、ネットワーク・セキュリティ・グループに同一のセキュリティ・ルールを指定できます。

例1: Flannel CNIプラグイン、パブリックKubernetes APIエンドポイント、プライベート・ワーカー・ノードおよびパブリック・ロード・バランサを含むクラスタ

この例では、Kubernetes APIエンドポイントおよびロード・バランサにインターネットから直接アクセスできるようにすることを前提としています。ワーカー・ノードは、VCN内からアクセスできます。

Kubernetes APIエンドポイントには、デフォルトでプライベートIPアドレスが割り当てられます。Kubernetes APIエンドポイントをインターネットに公開するには、次のいずれかを実行します:

  • Kubernetes APIエンドポイントをホストするためのパブリック・サブネットを選択します。
  • パブリックIPアドレス(およびプライベートIPアドレス)をKubernetes APIエンドポイントに割り当てるように指定します。

この図は、パブリックKubernetes APIエンドポイント・サブネット、プライベート・ワーカー・ノード・サブネット、パブリック・ロード・バランサ・サブネット、およびプライベート・ベース・サブネットを含むクラスタ構成の例を示しています。サブネットへのアクセスは、それぞれseclist-KubernetesAPIendpoint、seclist-workernodes、seclist-loadbalancersおよびseclist-Bastionセキュリティ・リストによって制御されます。このクラスタは、ポッド・ネットワーキングにflannel CNIプラグインを使用します。Kubernetes APIエンドポイント・サブネットはVNICによってクラスタ・コントロール・プレーンに接続されます。この構成例のその他の機能については、前後のテキストで説明しています。

VCN

リソース
VCN
  • 名前: acme-dev-vcn
  • CIDRブロック: 10.0.0.0/16
  • DNS解決: 選択済
インターネット・ゲートウェイ
  • 名前: internet-gateway-0
NAT Gateway
  • 名前: nat-gateway-0
サービス・ゲートウェイ
  • 名前: service-gateway-0
  • サービス: Oracle Services Networkのすべての<region>サービス
DHCPオプション
  • DNSタイプ インターネットおよびVCNリゾルバに設定

サブネット

リソース
Kubernetes APIエンドポイントのパブリック・サブネット

名前: KubernetesAPIendpoint。次のプロパティを使用します:

  • タイプ: リージョン
  • CIDRブロック: 10.0.0.0/30
  • ルート表: routetable-KubernetesAPIendpoint
  • サブネット・アクセス: パブリック
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-KubernetesAPIendpoint
ワーカー・ノードのプライベート・サブネット

名前: workernodes。次のプロパティを使用します:

  • タイプ: リージョン
  • CIDRブロック: 10.0.1.0/24
  • ルート表: routetable-workernodes
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-workernodes
サービス・ロード・バランサのパブリック・サブネット

名前: loadbalancers。プロパティは次のとおりです:

  • タイプ: リージョン
  • CIDRブロック: 10.0.2.0/24
  • ルート表: routetable-serviceloadbalancers
  • サブネット・アクセス: パブリック
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-loadbalancers
要塞のプライベート・サブネット

名前:次のプロパティを持つ要塞:

  • タイプ:リージョン
  • CIDRブロック: 10.0.3.0/24
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-Bastion

ルート表

リソース
パブリックKubernetes APIエンドポイント・サブネットのルート表

名前: routetable-KubernetesAPIendpoint。次のように定義されたルート・ルールを使用します:

  • 宛先CIDRブロック: 0.0.0.0/0
  • ターゲット・タイプ: インターネット・ゲートウェイ
  • ターゲット: internet-gateway-0
プライベート・ワーカー・ノード・サブネットのルート表

名前: routetable-workernodes。次のように定義された2つのルート・ルールを使用します:

  • インターネットへのトラフィックのルール:
    • 宛先CIDRブロック: 0.0.0.0/0
    • ターゲット・タイプ: NATゲートウェイ
    • ターゲット: nat-gateway-0
  • OCIサービスへのトラフィックのルール:
    • 宛先: Oracle Services Networkのすべての<region>サービス
    • ターゲット・タイプ: サービス・ゲートウェイ
    • ターゲット: service-gateway-0
パブリック・ロード・バランサ・サブネットのルート表

名前: routetable-serviceloadbalancers。次のように定義されたルート・ルールを使用します:

  • 宛先CIDRブロック: 0.0.0.0/0
  • ターゲット・タイプ: インターネット・ゲートウェイ
  • ターゲット: internet-gateway-0

パブリックKubernetes APIエンドポイント・サブネットのセキュリティ・リスト・ルール

seclist-KubernetesAPIendpointセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態 ソース プロトコル/宛先ポート 説明
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/6443 KubernetesワーカーからKubernetes APIエンドポイントへの通信。
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/12250 Kubernetesワーカーからコントロール・プレーンへの通信。
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) ICMP 3,4 パス検出。
ステートフル 0.0.0.0/0、要塞サブネットCIDRまたは特定のCIDR TCP/6443

(オプション)Kubernetes APIエンドポイントへの外部アクセス。

  • 0.0.0.0/0: ソースがインターネット、サブネットがパブリックで、パブリックIPがAPIエンドポイントに割り当てられている場合
  • OCI Bastionを介してアクセスが行われた場合の要塞サブネットCIDR
  • 他の特定のCIDRからアクセスが行われる場合の特定のCIDR

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル Oracle Services Networkのすべての<region>サービス TCP/すべて Kubernetesコントロール・プレーンがOKEと通信することを許可します。
ステートフル Oracle Services Networkのすべての<region>サービス ICMP 3,4 パス検出。
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/すべて Kubernetesコントロール・プレーンがワーカー・ノードと通信することを許可します。
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) ICMP 3,4 パス検出。

プライベート・ワーカー・ノード・サブネットのセキュリティ・リスト・ルール

seclist-workernodesセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態: ソース プロトコル/宛先ポート 説明:
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) すべて/すべて あるワーカー・ノードのポッドが他のワーカー・ノードのポッドと通信することを許可します。
ステートフル 10.0.0.0/30 (Kubernetes APIエンドポイントCIDR) TCP/すべて Kubernetesコントロール・プレーンがワーカー・ノードと通信することを許可します。
ステートフル 0.0.0.0/0 ICMP 3,4 パス検出。
ステートフル 要塞サブネットCIDRまたは特定のCIDR TCP/22 (オプション)管理対象ノードへのインバウンドSSHトラフィックを許可します。
ステートフル ロード・バランサ・サブネットCIDR すべて/30000-32767 ロード・バランサからワーカー・ノード・ポート
ステートフル ロード・バランサ・サブネットCIDR ALL/10256 ロード・バランサがワーカー・ノードでkube-proxyと通信できるようにします。

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) すべて/すべて あるワーカー・ノードのポッドが他のワーカー・ノードのポッドと通信することを許可します。
ステートフル 0.0.0.0/0 ICMP 3,4 パス検出。
ステートフル Oracle Services Networkのすべての<region>サービス TCP/すべて ワーカー・ノードがOKEと通信することを許可します。
ステートフル 10.0.0.0/30 (Kubernetes APIエンドポイントCIDR) TCP/6443 KubernetesワーカーからKubernetes APIエンドポイントへの通信。
ステートフル 10.0.0.0/30 (Kubernetes APIエンドポイントCIDR) TCP/12250 Kubernetesワーカーからコントロール・プレーンへの通信。
ステートフル 0.0.0.0/0 TCP/すべて (オプション)ワーカー・ノードがインターネットと通信することを許可します。

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

seclist-loadbalancersセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態: ソース プロトコル/宛先ポート 説明:
ステートフル

アプリケーション固有(インターネットまたは特定のCIDR)

アプリケーション固有(TCP、UDP - 443、8080など)

(オプション)ロード・バランサのリスナー・プロトコルおよびポート。必要に応じてカスタマイズします。

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) すべて/30000-32767 ロード・バランサからワーカー・ノード・ポート
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) ALL/10256 ロード・バランサがワーカー・ノードでkube-proxyと通信できるようにします。

プライベート要塞サブネットのセキュリティ・リスト・ルール

seclist-Bastionセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:なし

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.0.0/30 (Kubernetes APIエンドポイントCIDR) TCP/6443

(オプション)要塞がKubernetes APIエンドポイントにアクセスできるようにします。

ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/22 (オプション)ワーカー・ノードへのSSHトラフィックを許可します。

例2: Flannel CNIプラグイン、プライベートKubernetes APIエンドポイント、プライベート・ワーカー・ノード、およびパブリック・ロード・バランサを含むクラスタ

この例では、インターネットから直接アクセスできるのはロード・バランサのみであることを前提としています。Kubernetes APIエンドポイントおよびワーカー・ノードには、VCN内からアクセスできます。

この図は、プライベートKubernetes APIエンドポイント・サブネット、プライベート・ワーカー・ノード・サブネット、パブリック・ロード・バランサ・サブネット、およびプライベート・ベース・サブネットを含むクラスタ構成の例を示しています。サブネットへのアクセスは、それぞれseclist-KubernetesAPIendpoint、seclist-workernodes、seclist-loadbalancersおよびseclist-Bastionセキュリティ・リストによって制御されます。このクラスタは、ポッド・ネットワーキングにflannel CNIプラグインを使用します。Kubernetes APIエンドポイント・サブネットはVNICによってクラスタ・コントロール・プレーンに接続されます。この構成例のその他の機能については、前後のテキストで説明しています。

VCN

リソース
VCN
  • 名前: acme-dev-vcn
  • CIDRブロック: 10.0.0.0/16
  • DNS解決: 選択済
インターネット・ゲートウェイ
  • 名前: internet-gateway-0
NAT Gateway
  • 名前: nat-gateway-0
サービス・ゲートウェイ
  • 名前: service-gateway-0
  • サービス: Oracle Services Networkのすべての<region>サービス
DHCPオプション
  • DNSタイプ インターネットおよびVCNリゾルバに設定

サブネット

リソース
Kubernetes APIエンドポイントのプライベート・サブネット

名前: KubernetesAPIendpoint。次のプロパティを使用します:

  • タイプ: リージョン
  • CIDRブロック: 10.0.0.0/30
  • ルート表: routetable-KubernetesAPIendpoint
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-KubernetesAPIendpoint
ワーカー・ノードのプライベート・サブネット

名前: workernodes。次のプロパティを使用します:

  • タイプ: リージョン
  • CIDRブロック: 10.0.1.0/24
  • ルート表: routetable-workernodes
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-workernodes
サービス・ロード・バランサのパブリック・サブネット

名前: loadbalancers。プロパティは次のとおりです:

  • タイプ: リージョン
  • CIDRブロック: 10.0.2.0/24
  • ルート表: routetable-serviceloadbalancers
  • サブネット・アクセス: パブリック
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-loadbalancers
要塞のプライベート・サブネット

名前:次のプロパティを持つ要塞:

  • タイプ:リージョン
  • CIDRブロック: 10.0.3.0/24
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-Bastion

ルート表

リソース
プライベートKubernetes APIエンドポイント・サブネットのルート表

名前: routetable-KubernetesAPIendpoint。次のように定義されたルート・ルールを使用します:

  • インターネットへのトラフィックのルール:
    • 宛先CIDRブロック: 0.0.0.0/0
    • ターゲット・タイプ: NATゲートウェイ
    • ターゲット: nat-gateway-0
  • OCIサービスへのトラフィックのルール:
    • 宛先: Oracle Services Networkのすべての<region>サービス
    • ターゲット・タイプ: サービス・ゲートウェイ
    • ターゲット: service-gateway-0
プライベート・ワーカー・ノード・サブネットのルート表

名前: routetable-workernodes。次のように定義された2つのルート・ルールを使用します:

  • インターネットへのトラフィックのルール:
    • 宛先CIDRブロック: 0.0.0.0/0
    • ターゲット・タイプ: NATゲートウェイ
    • ターゲット: nat-gateway-0
  • OCIサービスへのトラフィックのルール:
    • 宛先: Oracle Services Networkのすべての<region>サービス
    • ターゲット・タイプ: サービス・ゲートウェイ
    • ターゲット: service-gateway-0
パブリック・ロード・バランサ・サブネットのルート表

名前: routetable-serviceloadbalancers。次のように定義されたルート・ルールを使用します:

  • 宛先CIDRブロック: 0.0.0.0/0
  • ターゲット・タイプ: インターネット・ゲートウェイ
  • ターゲット: internet-gateway-0

プライベートKubernetes APIエンドポイント・サブネットのセキュリティ・リスト・ルール

seclist-KubernetesAPIendpointセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態 ソース プロトコル/宛先ポート 説明
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/6443 KubernetesワーカーからKubernetes APIエンドポイントへの通信。
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/12250 Kubernetesワーカーからコントロール・プレーンへの通信。
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) ICMP 3,4 パス検出。
ステートフル 0.0.0.0/0、要塞サブネットCIDRまたは特定のCIDR TCP/6443

(オプション)Kubernetes APIエンドポイントへの外部アクセス。

  • 0.0.0.0/0: ソースがインターネット、サブネットがパブリックで、パブリックIPがAPIエンドポイントに割り当てられている場合
  • OCI Bastionを介してアクセスが行われた場合の要塞サブネットCIDR
  • 他の特定のCIDRからアクセスが行われる場合の特定のCIDR

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル

Oracle Services Networkのすべての<region>サービス

TCP/すべて Kubernetesコントロール・プレーンがOKEと通信することを許可します。
ステートフル Oracle Services Networkのすべての<region>サービス ICMP 3,4 パス検出。
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/すべて Kubernetesコントロール・プレーンがワーカー・ノードと通信することを許可します。
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) ICMP 3,4 パス検出。

プライベート・ワーカー・ノード・サブネットのセキュリティ・リスト・ルール

seclist-workernodesセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態: ソース プロトコル/宛先ポート 説明:
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) すべて/すべて あるワーカー・ノードのポッドが他のワーカー・ノードのポッドと通信することを許可します。
ステートフル 10.0.0.0/30 (Kubernetes APIエンドポイントCIDR) TCP/すべて Kubernetesコントロール・プレーンがワーカー・ノードと通信することを許可します。
ステートフル 0.0.0.0/0 ICMP 3,4 パス検出。
ステートフル 要塞サブネットCIDRまたは特定のCIDR TCP/22 (オプション)管理対象ノードへのインバウンドSSHトラフィックを許可します。
ステートフル ロード・バランサ・サブネットCIDR すべて/30000-32767 ロード・バランサからワーカー・ノード・ポート
ステートフル ロード・バランサ・サブネットCIDR ALL/10256 ロード・バランサがワーカー・ノードでkube-proxyと通信できるようにします。

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) すべて/すべて あるワーカー・ノードのポッドが他のワーカー・ノードのポッドと通信することを許可します。
ステートフル Oracle Services Networkのすべての<region>サービス TCP/すべて ワーカー・ノードがOKEと通信することを許可します。
ステートフル 10.0.0.0/30 (Kubernetes APIエンドポイントCIDR) TCP/6443 KubernetesワーカーからKubernetes APIエンドポイントへの通信。
ステートフル 10.0.0.0/30 (Kubernetes APIエンドポイントCIDR) TCP/12250 Kubernetesワーカーからコントロール・プレーンへの通信。
ステートフル 0.0.0.0/0 TCP/すべて (オプション)ワーカー・ノードがインターネットと通信することを許可します。

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

seclist-loadbalancersセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態: ソース プロトコル/宛先ポート 説明:
ステートフル

アプリケーション固有(インターネットまたは特定のCIDR)

アプリケーション固有(TCP、UDP - 443、8080など)

(オプション)ロード・バランサのリスナー・プロトコルおよびポート。必要に応じてカスタマイズします。

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) すべて/30000-32767 ロード・バランサからワーカー・ノード・ポート
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) ALL/10256 ロード・バランサがワーカー・ノードでkube-proxyと通信できるようにします。

プライベート要塞サブネットのセキュリティ・リスト・ルール

seclist-Bastionセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:なし

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.0.0/30 (Kubernetes APIエンドポイントCIDR) TCP/6443

(オプション)要塞がKubernetes APIエンドポイントにアクセスできるようにします。

ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/22 (オプション)ワーカー・ノードへのSSHトラフィックを許可します。

例3: OCI CNIプラグイン、パブリックKubernetes APIエンドポイント、プライベート・ワーカー・ノードおよびパブリック・ロード・バランサを含むクラスタ

この例では、Kubernetes APIエンドポイントおよびロード・バランサにインターネットから直接アクセスできるようにすることを前提としています。ワーカー・ノードは、VCN内からアクセスできます。

Kubernetes APIエンドポイントには、デフォルトでプライベートIPアドレスが割り当てられます。Kubernetes APIエンドポイントをインターネットに公開するには、次のいずれかを実行します:

  • Kubernetes APIエンドポイントをホストするためのパブリック・サブネットを選択します。
  • パブリックIPアドレス(およびプライベートIPアドレス)をKubernetes APIエンドポイントに割り当てるように指定します。

この図は、パブリックKubernetes APIエンドポイント・サブネット、プライベート・ワーカー・ノード・サブネット、パブリック・ロード・バランサ・サブネット、プライベート・ポッド・サブネット、およびプライベート・ベース・サブネットを含むクラスタ構成の例です。サブネットへのアクセスは、それぞれseclist-KubernetesAPIendpoint、seclist-workernodes、seclist-loadbalancers、seclist-podsおよびseclist-Bastionセキュリティ・リストによって制御されます。このクラスタは、ポッド・ネットワーキングにOCI CNIプラグインを使用します。Kubernetes APIエンドポイント・サブネットはVNICによってクラスタ・コントロール・プレーンに接続されます。この構成例のその他の機能については、前後のテキストで説明しています。

VCN

リソース
VCN
  • 名前: acme-dev-vcn
  • CIDRブロック: 10.0.0.0/16
  • DNS解決: 選択済
インターネット・ゲートウェイ
  • 名前: internet-gateway-0
NAT Gateway
  • 名前: nat-gateway-0
サービス・ゲートウェイ
  • 名前: service-gateway-0
  • サービス: Oracle Services Networkのすべての<region>サービス
DHCPオプション
  • DNSタイプ インターネットおよびVCNリゾルバに設定

サブネット

リソース
Kubernetes APIエンドポイントのパブリック・サブネット

名前: KubernetesAPIendpoint。次のプロパティを使用します:

  • タイプ: リージョン
  • CIDRブロック: 10.0.0.0/29
  • ルート表: routetable-KubernetesAPIendpoint
  • サブネット・アクセス: パブリック
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-KubernetesAPIendpoint
ワーカー・ノードのプライベート・サブネット

名前: workernodes。次のプロパティを使用します:

  • タイプ: リージョン
  • CIDRブロック: 10.0.1.0/24
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-workernodes
ポッドのプライベート・サブネット

名前: 次のプロパティを持つポッド:

  • タイプ: リージョン
  • CIDRブロック: 10.0.32.0/19
  • ルート表: routetable-pods
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-pods
サービス・ロード・バランサのパブリック・サブネット

名前: loadbalancers。プロパティは次のとおりです:

  • タイプ: リージョン
  • CIDRブロック: 10.0.2.0/24
  • ルート表: routetable-serviceloadbalancers
  • サブネット・アクセス: パブリック
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-loadbalancers
要塞のプライベート・サブネット

名前:次のプロパティを持つ要塞:

  • タイプ:リージョン
  • CIDRブロック: 10.0.3.0/24
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-Bastion

ルート表

リソース
パブリックKubernetes APIエンドポイント・サブネットのルート表

名前: routetable-KubernetesAPIendpoint。次のように定義されたルート・ルールを使用します:

  • 宛先CIDRブロック: 0.0.0.0/0
  • ターゲット・タイプ: インターネット・ゲートウェイ
  • ターゲット: internet-gateway-0
プライベート・ポッド・サブネットのルート表

名前: routetable-pods。次のように定義された2つのルート・ルールを使用します:

  • インターネットへのトラフィックのルール:
    • 宛先CIDRブロック: 0.0.0.0/0
    • ターゲット・タイプ: NATゲートウェイ
    • ターゲット: nat-gateway-0
  • OCIサービスへのトラフィックのルール:
    • 宛先: Oracle Services Networkのすべての<region>サービス
    • ターゲット・タイプ: サービス・ゲートウェイ
    • ターゲット: service-gateway-0
パブリック・ロード・バランサ・サブネットのルート表

名前: routetable-serviceloadbalancers。次のように定義されたルート・ルールを使用します:

  • 宛先CIDRブロック: 0.0.0.0/0
  • ターゲット・タイプ: インターネット・ゲートウェイ
  • ターゲット: internet-gateway-0

パブリックKubernetes APIエンドポイント・サブネットのセキュリティ・リスト・ルール

seclist-KubernetesAPIendpointセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

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

(オプション)Kubernetes APIエンドポイントへの外部アクセス。

  • 0.0.0.0/0: ソースがインターネット、サブネットがパブリックで、パブリックIPがAPIエンドポイントに割り当てられている場合
  • OCI Bastionを介してアクセスが行われた場合の要塞サブネットCIDR
  • 他の特定のCIDRからアクセスが行われる場合の特定のCIDR

エグレス・ルール:

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

プライベート・ワーカー・ノード・サブネットのセキュリティ・リスト・ルール

seclist-workernodesセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態: ソース プロトコル/宛先ポート 説明:
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/10250 Kubernetes APIエンドポイントがワーカー・ノードと通信できるようにします。
ステートフル 0.0.0.0/0 ICMP 3,4 パス検出。
ステートフル 要塞サブネットCIDRまたは特定のCIDR TCP/22 (オプション)管理対象ノードへのインバウンドSSHトラフィックを許可します。
ステートフル ロード・バランサ・サブネットCIDR すべて/30000-32767 ロード・バランサからワーカー・ノード・ポート
ステートフル ロード・バランサ・サブネットCIDR ALL/10256 ロード・バランサがワーカー・ノードでkube-proxyと通信できるようにします。

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.32.0/19 すべて/すべて ワーカー・ノードがポッドにアクセスできるようにします。
ステートフル 0.0.0.0/0 ICMP 3,4 パス検出。
ステートフル Oracle Services Networkのすべての<region>サービス TCP/すべて ワーカー・ノードがOKEと通信することを許可します。
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/6443 KubernetesワーカーからKubernetes APIエンドポイントへの通信。
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/12250 KubernetesワーカーからKubernetes APIエンドポイントへの通信。

プライベート・ポッド・サブネットのセキュリティ・リスト・ルール

seclist-podsセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態: ソース プロトコル/宛先ポート 説明:
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) すべて/すべて ワーカー・ノードがポッドにアクセスできるようにします。
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) すべて/すべて Kubernetes APIエンドポイントがポッドと通信できるようにします。
ステートフル 10.0.32.0/19 すべて/すべて ポッドが他のポッドと通信できるようにします。

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.32.0/19 すべて/すべて ポッドが他のポッドと通信できるようにします。
ステートフル Oracle Services Networkのすべての<region>サービス

ICMP 3,4

パス検出。
ステートフル Oracle Services Networkのすべての<region>サービス

TCP/すべて

ポッドがOCIサービスと通信できるようにします。
ステートフル 0.0.0.0/0

TCP/443

(オプション)ポッドがインターネットと通信できるようにします。
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/6443 ポッドからKubernetes APIへのエンドポイント通信(VCNネイティブ・ポッド・ネットワーキングを使用する場合)。
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/12250 ポッドからKubernetes APIへのエンドポイント通信(VCNネイティブ・ポッド・ネットワーキングを使用する場合)。

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

seclist-loadbalancersセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態: ソース プロトコル/宛先ポート 説明:
ステートフル

アプリケーション固有(インターネットまたは特定のCIDR)

アプリケーション固有(TCP、UDP - 443、8080など)

(オプション)ロード・バランサのリスナー・プロトコルおよびポート。必要に応じてカスタマイズします。

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) すべて/30000-32767 ロード・バランサからワーカー・ノード・ポート
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) ALL/10256 ロード・バランサがワーカー・ノードでkube-proxyと通信できるようにします。

プライベート要塞サブネットのセキュリティ・リスト・ルール

seclist-Bastionセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:なし

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/6443

(オプション)要塞がKubernetes APIエンドポイントにアクセスできるようにします。

ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/22 (オプション)ワーカー・ノードへのSSHトラフィックを許可します。

例4: OCI CNIプラグイン、プライベートKubernetes APIエンドポイント、プライベート・ワーカー・ノードおよびパブリック・ロード・バランサを含むクラスタ

この例では、インターネットから直接アクセスできるのはロード・バランサのみであることを前提としています。Kubernetes APIエンドポイントおよびワーカー・ノードには、VCN内からアクセスできます。

この図は、プライベートKubernetes APIエンドポイント・サブネット、プライベート・ワーカー・ノード・サブネット、パブリック・ロード・バランサ・サブネット、プライベート・ポッド・サブネットおよびプライベート要塞サブネットを使用したクラスタ構成の例を示しています。サブネットへのアクセスは、それぞれseclist-KubernetesAPIendpoint、seclist-workernodes、seclist-loadbalancers、seclist-podsおよびseclist-Bastionセキュリティ・リストによって制御されます。このクラスタは、ポッド・ネットワーキングにOCI CNIプラグインを使用します。Kubernetes APIエンドポイント・サブネットはVNICによってクラスタ・コントロール・プレーンに接続されます。この構成例のその他の機能については、前後のテキストで説明しています。

VCN

リソース
VCN
  • 名前: acme-dev-vcn
  • CIDRブロック: 10.0.0.0/16
  • DNS解決: 選択済
インターネット・ゲートウェイ
  • 名前: internet-gateway-0
NAT Gateway
  • 名前: nat-gateway-0
サービス・ゲートウェイ
  • 名前: service-gateway-0
  • サービス: Oracle Services Networkのすべての<region>サービス
DHCPオプション
  • DNSタイプ インターネットおよびVCNリゾルバに設定

サブネット

リソース
Kubernetes APIエンドポイントのプライベート・サブネット

名前: KubernetesAPIendpoint。次のプロパティを使用します:

  • タイプ: リージョン
  • CIDRブロック: 10.0.0.0/29
  • ルート表: routetable-KubernetesAPIendpoint
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-KubernetesAPIendpoint
ワーカー・ノードのプライベート・サブネット

名前: workernodes。次のプロパティを使用します:

  • タイプ: リージョン
  • CIDRブロック: 10.0.1.0/24
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-workernodes
ポッドのプライベート・サブネット

名前: 次のプロパティを持つポッド:

  • タイプ: リージョン
  • CIDRブロック: 10.0.32.0/19
  • ルート表: routetable-pods
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-pods
サービス・ロード・バランサのパブリック・サブネット

名前: loadbalancers。プロパティは次のとおりです:

  • タイプ: リージョン
  • CIDRブロック: 10.0.2.0/24
  • ルート表: routetable-serviceloadbalancers
  • サブネット・アクセス: パブリック
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-loadbalancers
要塞のプライベート・サブネット

名前:次のプロパティを持つ要塞:

  • タイプ:リージョン
  • CIDRブロック: 10.0.3.0/24
  • サブネット・アクセス: プライベート
  • DNS解決: 選択済
  • DHCPオプション: デフォルト
  • セキュリティ・リスト: seclist-Bastion

ルート表

リソース
プライベートKubernetes APIエンドポイント・サブネットのルート表

名前: routetable-KubernetesAPIendpoint。次のように定義されたルート・ルールを使用します:

  • インターネットへのトラフィックのルール:
    • 宛先CIDRブロック: 0.0.0.0/0
    • ターゲット・タイプ: NATゲートウェイ
    • ターゲット: nat-gateway-0
  • OCIサービスへのトラフィックのルール:
    • 宛先: Oracle Services Networkのすべての<region>サービス
    • ターゲット・タイプ: サービス・ゲートウェイ
    • ターゲット: service-gateway-0
プライベート・ポッド・サブネットのルート表

名前: routetable-pods。次のように定義された2つのルート・ルールを使用します:

  • インターネットへのトラフィックのルール:
    • 宛先CIDRブロック: 0.0.0.0/0
    • ターゲット・タイプ: NATゲートウェイ
    • ターゲット: nat-gateway-0
  • OCIサービスへのトラフィックのルール:
    • 宛先: Oracle Services Networkのすべての<region>サービス
    • ターゲット・タイプ: サービス・ゲートウェイ
    • ターゲット: service-gateway-0
パブリック・ロード・バランサ・サブネットのルート表

名前: routetable-serviceloadbalancers。次のように定義されたルート・ルールを使用します:

  • 宛先CIDRブロック: 0.0.0.0/0
  • ターゲット・タイプ: インターネット・ゲートウェイ
  • ターゲット・インターネット・ゲートウェイ: internet-gateway-0

プライベートKubernetes APIエンドポイント・サブネットのセキュリティ・リスト・ルール

seclist-KubernetesAPIendpointセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

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

(オプション)Kubernetes APIエンドポイントへの外部アクセス。

  • OCI Bastionを介してアクセスが行われた場合の要塞サブネットCIDR
  • 他の特定のCIDRからアクセスが行われる場合の特定のCIDR

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル

Oracle Services Networkのすべての<region>サービス

TCP/すべて Kubernetes APIエンドポイントがOKEと通信できるようにします。
ステートフル Oracle Services Networkのすべての<region>サービス ICMP 3,4 パス検出。
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/10250 Kubernetes APIエンドポイントがワーカー・ノードと通信できるようにします。
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) ICMP 3,4 パス検出。
ステートフル 10.0.32.0/19 すべて/すべて Kubernetes APIエンドポイントがポッドと通信できるようにします。

プライベート・ワーカー・ノード・サブネットのセキュリティ・リスト・ルール

seclist-workernodesセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態: ソース プロトコル/宛先ポート 説明:
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/10250 Kubernetes APIエンドポイントがワーカー・ノードと通信できるようにします。
ステートフル 0.0.0.0/0 ICMP 3,4 パス検出。
ステートフル 要塞サブネットCIDRまたは特定のCIDR TCP/22 (オプション)管理対象ノードへのインバウンドSSHトラフィックを許可します。
ステートフル ロード・バランサ・サブネットCIDR すべて/30000-32767 ロード・バランサからワーカー・ノード・ポート
ステートフル ロード・バランサ・サブネットCIDR ALL/10256 ロード・バランサがワーカー・ノードでkube-proxyと通信できるようにします。

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.32.0/19 すべて/すべて ワーカー・ノードがポッドにアクセスできるようにします。
ステートフル 0.0.0.0/0 ICMP 3,4 パス検出。
ステートフル Oracle Services Networkのすべての<region>サービス TCP/すべて ワーカー・ノードがOKEと通信することを許可します。
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/6443 KubernetesワーカーからKubernetes APIエンドポイントへの通信。
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/12250 KubernetesワーカーからKubernetes APIエンドポイントへの通信。

プライベート・ポッド・サブネットのセキュリティ・リスト・ルール

seclist-podsセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態: ソース プロトコル/宛先ポート 説明:
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) すべて/すべて ワーカー・ノードがポッドにアクセスできるようにします。
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) すべて/すべて Kubernetes APIエンドポイントがポッドと通信できるようにします。
ステートフル 10.0.32.0/19 すべて/すべて ポッドが他のポッドと通信できるようにします。

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.32.0/19 すべて/すべて ポッドが他のポッドと通信できるようにします。
ステートフル Oracle Services Networkのすべての<region>サービス

ICMP 3,4

パス検出。
ステートフル Oracle Services Networkのすべての<region>サービス

TCP/すべて

ポッドがOCIサービスと通信できるようにします。
ステートフル 0.0.0.0/0

TCP/443

(オプション)ポッドがインターネットと通信できるようにします。
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/6443 ポッドからKubernetes APIへのエンドポイント通信(VCNネイティブ・ポッド・ネットワーキングを使用する場合)。
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/12250 ポッドからKubernetes APIへのエンドポイント通信(VCNネイティブ・ポッド・ネットワーキングを使用する場合)。

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

seclist-loadbalancersセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:

状態: ソース プロトコル/宛先ポート 説明:
ステートフル

アプリケーション固有(インターネットまたは特定のCIDR)

アプリケーション固有(TCP、UDP - 443、8080など)

(オプション)ロード・バランサのリスナー・プロトコルおよびポート。必要に応じてカスタマイズします。

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) すべて/30000-32767 ロード・バランサからワーカー・ノード・ポート
ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) ALL/10256 ロード・バランサがワーカー・ノードでkube-proxyと通信できるようにします。

プライベート要塞サブネットのセキュリティ・リスト・ルール

seclist-Bastionセキュリティ・リストには、次に示すイングレス・ルールとエグレス・ルールがあります。

イングレス・ルール:なし

エグレス・ルール:

状態: 宛先 プロトコル/宛先ポート 説明:
ステートフル 10.0.0.0/29 (Kubernetes APIエンドポイントCIDR) TCP/6443

(オプション)要塞がKubernetes APIエンドポイントにアクセスできるようにします。

ステートフル 10.0.1.0/24(ワーカー・ノードCIDR) TCP/22 (オプション)ワーカー・ノードへのSSHトラフィックを許可します。