OCIでのVCNの構成

OCIでのクラスタ用の仮想クラウド・ネットワークの設定

Oracle Cloud Infrastructure (OCI)上にOracle Cloud Native Environment (OCNE)クラスタまたはOracle Container Engine for Kubernetes (OKE)クラスタを作成する前に、OCIコンパートメントで仮想クラウド・ネットワーク(VCN)を構成する必要があります。VCNは、クラウド・リソースへのアクセスを管理するソフトウェア定義のネットワークです。

詳細は、OCIのドキュメントの「ネットワーキングの概要」を参照してください。

OCIコンソールのVCNウィザードを使用すると、必要なほとんどのネットワーク・インフラストラクチャを自動的に作成できます。追加のサブネットおよびセキュリティ・ルール(後述)を手動で追加する必要があります。

VCN内では次のものが必要です:

  • サブネット(セキュリティ・ルールあり)
  • ゲートウェイ
  • ルート表

サブネット

サブネットは、構成設定の編成に役立つVCN内のサブディビジョンです。サブネット内のすべてのインスタンスは、同じルート表、セキュリティ・リストおよびDHCPオプションを使用します。サブネットは、パブリックまたはプライベートのいずれかになります。OCNEおよびOKEクラスタの場合、パブリック・サブネットとプライベート・サブネットの両方が必要で、サブネットは合計で4つになります。

詳細は、OCIのドキュメントの「VCNとサブネットの概要」を参照してください。

各サブネットには、仮想ファイアウォールのルールを確立する独自のセキュリティ・ルールのセットが必要です。これらのイングレス・ルールおよびエグレス・ルールは、インスタンスの内外で許可されるトラフィックのタイプ(プロトコルおよびポート)を指定します。

詳細は、OCIのドキュメントの「セキュリティ・ルール」を参照してください。

サブネット1: コントロール・プレーン・エンドポイント

OCIロード・バランサを収容するコントロール・プレーン・エンドポイントのパブリック・サブネット。ロード・バランサは、Kubernetes APIサーバーのリバース・プロキシとして機能します。

このサブネットで、次のトラフィックを対象とするセキュリティ・ルールを作成します:

  • エグレス: コントロール・プレーン・トラフィック
  • イングレス: Kubernetes APIエンドポイントへの外部アクセス
  • イングレス: ICMPパス検出
セキュリティ・ルールの例

エグレス・ルール

宛先タイプ 宛先 宛先ポート プロトコル 説明
CIDRブロック 10.0.0.0/29 6443 TCP Kubernetes APIサーバー・アクセス用のコントロール・プレーンへのHTTPSトラフィック

イングレス・ルール

宛先タイプ 宛先 宛先ポート プロトコル 説明
CIDRブロック 0.0.0.0/0 6443 TCP エンドポイントOCIロード・バランサへのパブリック・アクセス
CIDRブロック 10.0.0.0/16 ICMPタイプ3、コード4 パスMTU検出

サブネット2: コントロール・プレーン・ノード

APIサーバーやコントロール・プレーン・ポッドなど、Kubernetesコントロール・プレーン・コンポーネントを実行するコントロール・プレーン・ノードを収容するプライベート・サブネット。

このサブネットで、次のトラフィックを対象とするセキュリティ・ルールを作成します:

  • エグレス: ノード・インターネット・アクセス
  • イングレス: VCN内から発生する東西トラフィック
  • イングレス: APIエンドポイント上のコントロール・プレーン・エンドポイントからコントロール・プレーン・ノードへのアクセス
  • イングレス: APIエンドポイント上のワーカー・ノードからコントロール・プレーン・ノードへのアクセス
  • イングレス: ETCDクライアントおよびピア
  • イングレス: SSHトラフィック
  • イングレス: コントロール・プレーンからコントロール・プレーンへのkubelet通信
  • イングレス:
  • イングレス: 次に対するコントロール・プレーン・ノードおよびワーカー・ノードのCalicoルール
    • BGP
    • IP-in-IP
セキュリティ・ルールの例

エグレス・ルール

宛先タイプ 宛先 宛先ポート プロトコル 説明
CIDRブロック 0.0.0.0/0 すべて すべて イメージをプルするためのコントロール・プレーン・ノードのインターネットへのアクセス

イングレス・ルール

宛先タイプ 宛先 宛先ポート プロトコル 説明
CIDRブロック 10.0.0.8/29 6443 TCP Kubernetes APIエンドポイントからKubernetesコントロール・プレーンへの通信
CIDRブロック 10.0.0.0/29 6443 TCP コントロール・プレーンからコントロール・プレーンへの(APIサーバー・ポート)通信
CIDRブロック 10.0.64.0/20 6443 TCP ワーカー・ノードからKubernetesコントロール・プレーンへの(APIサーバー)通信
CIDRブロック 10.0.0.0/29 10250 TCP コントロール・プレーンからコントロール・プレーン・ノードへのkubelet通信
CIDRブロック 10.0.0.0/29 2379 TCP etcdクライアント通信
CIDRブロック 10.0.0.0/29 2380 TCP etcdピア通信
CIDRブロック 10.0.0.0/29 179 TCP Calicoネットワーキング(BGP)
CIDRブロック 10.0.64.0/20 179 TCP Calicoネットワーキング(BGP)
CIDRブロック 10.0.0.0/29 IP-in-IP IP-in-IPが有効なCalicoネットワーキング
CIDRブロック 10.0.64.0/20 IP-in-IP IP-in-IPが有効なCalicoネットワーキング
CIDRブロック 10.0.0.0/16 ICMPタイプ3、コード4 パスMTU検出
CIDRブロック 0.0.0.0/0 22 TCP ワーカー・ノードへのインバウンドSSHトラフィック
CIDRブロック 10.0.0.0/16 すべて TCP Kubernetes APIサーバー・アクセス/DNSアクセス用の東西通信

サブネット3: サービス・ロード・バランサ

サービス・ロード・バランサを収容するパブリック・サブネット。

このサブネットで、次のトラフィックを対象とするセキュリティ・ルールを作成します:

  • エグレス: ワーカー・ノード上のサービス・ロード・バランサからNodePort
  • イングレス: ICMPパス検出
  • イングレス: HTTPおよびHTTPSトラフィック
セキュリティ・ルールの例

エグレス・ルール

宛先タイプ 宛先 宛先ポート プロトコル 説明
CIDRブロック 10.0.64.0/20 32000-32767 TCP サービス・ロード・バランサからNodePortサービスへのアクセス

イングレス・ルール

宛先タイプ 宛先 宛先ポート プロトコル 説明
CIDRブロック 0.0.0.0/0 80, 443 TCP サービスへの受信トラフィック
CIDRブロック 10.0.0.0/16 ICMPタイプ3、コード4 パスMTU検出

サブネット4: ワーカー・ノード

ワーカー・ノードを収容するプライベート・サブネット。

このサブネットで、次のトラフィックを対象とするセキュリティ・ルールを作成します:

  • エグレス: ノード・インターネット・アクセス
  • イングレス: VCN内から発生する東西トラフィック
  • イングレス: SSHトラフィック
  • イングレス: ICMPパス検出
  • イングレス: ワーカー・ノード上のコントロール・プレーンからkubelet
  • イングレス: ワーカー・ノードからワーカー・ノード
  • イングレス: 次に対するコントロール・プレーン・ノードおよびワーカー・ノードのCalicoルール
    • BGP
    • IP-in-IP
  • イングレス: ワーカー・ノードからデフォルトのNodePortへのイングレス
セキュリティ・ルールの例

エグレス・ルール

宛先タイプ 宛先 宛先ポート プロトコル 説明
CIDRブロック 0.0.0.0/0 すべて すべて イメージをプルするためのワーカー・ノードのインターネットへのアクセス

イングレス・ルール

宛先タイプ 宛先 宛先ポート プロトコル 説明
CIDRブロック 10.0.0.32/27 32000-32767 TCP サービス・ロード・バランサからの受信トラフィック(NodePort通信)
CIDRブロック 10.0.0.0/29 10250 TCP コントロール・プレーン・ノードからワーカー・ノード(kubelet通信)
CIDRブロック 10.0.64.0/20 10250 TCP ワーカー・ノードからワーカー・ノード(kubelet通信)
CIDRブロック 10.0.0.0/29 179 TCP Calicoネットワーキング(BGP)
CIDRブロック 10.0.64.0/20 179 TCP Calicoネットワーキング(BGP)
CIDRブロック 10.0.0.0/29 IP-in-IP IP-in-IPが有効なCalicoネットワーキング
CIDRブロック 10.0.64.0/20 IP-in-IP IP-in-IPが有効なCalicoネットワーキング
CIDRブロック 10.0.0.0/16 ICMPタイプ3、コード4 パスMTU検出
CIDRブロック 0.0.0.0/0 22 22 ワーカー・ノードへのインバウンドSSHトラフィック
CIDRブロック 10.0.0.0/16 すべて TCP Kubernetes APIサーバー・アクセス/DNSアクセス用の東西通信

ゲートウェイ

ゲートウェイは、VCNから他のネットワークへのアクセスを制御します。次の3つの異なるタイプのゲートウェイを構成する必要があります:

VCNのサブネットをインターネットに直接公開するには、追加の構成が必要になる場合があります。詳細は、OCIのドキュメントの「インターネットへのアクセス」を参照してください。

ルート表

ルート表は、従来のネットワーク・ルート・ルールと同様のルールを使用して、VCNからトラフィックを(インターネット、オンプレミス・ネットワーク、ピアリングされたVCNなどに)送信します。

詳細は、OCIのドキュメントの「VCNルート表」を参照してください。

OCNEおよびOKEクラスタの場合、次の2つのルート表を作成する必要があります:

  1. インターネット・ゲートウェイとの間のステートフル・トラフィックをルーティングするパブリック・サブネットのルート表。このルート表を両方のパブリック・サブネットに割り当てます。
  2. NATゲートウェイとサービス・ゲートウェイとの間のステートフル・トラフィックをルーティングするプライベート・サブネットのルート表。このルート表を両方のプライベート・サブネットに割り当てます。