ポッド・サブネット(VCNネイティブ・ポッド)の作成

Roving Edgeデバイス上でVCNネイティブ・ポッド・ネットワーキングのポッド・サブネットを作成する方法をご紹介します。

このトピックの手順では、コントロール・プレーン・ノードで実行されているポッドのプライベートIPアドレスを提供する"pod"という名前のポッド・サブネットをVCNに作成します。このサブネット内のIPアドレスの数は、コントロール・プレーン・サブネット内のIPアドレスの数以上である必要があります。ポッド・サブネットはプライベート・サブネットである必要があります。

ポッド・サブネットは、プライベート・ポッドIPアドレスを使用して、ポッド間の通信および個々のポッドへの直接アクセスをサポートします。ポッド・サブネットはプライベートである必要があります。ポッド・サブネットにより、ポッドは同じワーカー・ノード上の他のポッドと通信でき、他のワーカー・ノード上のポッドはOCIサービス(サービス・ゲートウェイ経由)およびインターネット(NATゲートウェイ経由)と通信できます。

次のリソースを、リストされた順序で作成します。

  1. Podセキュリティ・リスト

  2. ポッド・サブネット

ポッド・セキュリティ・リストの作成

セキュリティ・リストを作成します。「セキュリティ・リストの作成」を参照してください。Terraform入力については、Terraformスクリプトの例(VCNネイティブ・ポッド)を参照してください。

次の表に示すセキュリティ・ルールでは、ポッドに直接接続できるトラフィックを定義します。これらのセキュリティ・ルールは、ネットワーク・セキュリティ・グループ(NSG)の一部またはセキュリティ・リストで使用します。NSGを使用することをお薦めします。

セキュリティ・ルールは、ノード・プールに指定されたポッド・サブネットに接続されているすべてのワーカー・ノード内のすべてのポッドに適用されます。

ルーティング・ルールおよびルート表で指定されたルーティング・ポリシーに基づいて、受信リクエストをポッドにルーティングします。VCNの作成(VCNネイティブ・ポッド・ネットワーキング)で定義されているルート表を参照してください。

この例では、ポッド・サブネット・セキュリティ・リストに次の入力を使用します。

デバイス・コンソール・プロパティ

CLIプロパティー

  • 名前: pod-seclist

  • --vcn-id: ocid1.vcn.oke_vcn_id

  • --display-name: pod-seclist

1つのエグレス・セキュリティ・ルール:

  • ステートレス: ボックスをクリア

  • エグレスCIDR: 0.0.0.0/0

  • IPプロトコル: 全プロトコル

  • 説明: 「すべての送信トラフィックを許可します。」

1つのエグレス・セキュリティ・ルール:

--egress-security-rules

  • isStateless: false

  • destination: 0.0.0.0/0

  • destinationType: CIDR_BLOCK

  • protocol: all

  • description: すべての送信トラフィックを許可します。

8つのイングレス・セキュリティ・ルール:

8つのイングレス・セキュリティ・ルール:

--ingress-security-rules

イングレス・ルール 1

  • ステートレス: ボックスをクリア

  • イングレスCIDR: vcn_cidr

  • IPプロトコル: TCP

    • 宛先ポート範囲: 22

  • 説明: 「VCN内のすべてのサブネットからのポッド・サブネットへのSSH接続を許可します。」

イングレス・ルール 1

  • isStateless: false

  • source: vcn_cidr

  • sourceType: CIDR_BLOCK

  • protocol: 6

  • tcpOptions

    destinationPortRange

    • max: 22

    • min: 22

  • description: VCN内のすべてのサブネットからのポッド・サブネットへのSSH接続を許可します。

イングレス・ルール 2

  • ステートレス: ボックスをクリア

  • イングレスCIDR: workerlb_cidr

  • IPプロトコル: TCP

    • 宛先ポート範囲: 10256

  • 説明: 「ワーカー・ロード・バランサがポッドに接続できるようにします。」

イングレス・ルール 2

  • isStateless: false

  • source: workerlb_cidr

  • sourceType: CIDR_BLOCK

  • protocol: 6

  • tcpOptions

    destinationPortRange

    • max: 10256

    • min: 10256

  • description: ワーカー・ロード・バランサがポッドに接続できるようにします。

イングレス・ルール 3

  • ステートレス: ボックスをクリア

  • イングレスCIDR: worker_cidr

  • IPプロトコル: TCP

    • 宛先ポート範囲: 10250

  • 説明: 「Kubernetes APIエンドポイントが(ワーカー・ノードを介して)通信をポッドできるようにします。」

イングレス・ルール 3

  • isStateless: false

  • source: worker_cidr

  • sourceType: CIDR_BLOCK

  • protocol: 6

  • tcpOptions

    destinationPortRange

    • max: 10250

    • min: 10250

  • description: Kubernetes APIエンドポイントが(ワーカー・ノードを介して)通信をポッドできるようにします。

イングレス・ルール 4

  • ステートレス: ボックスをクリア

  • イングレスCIDR: worker_cidr

  • IPプロトコル: TCP

    • 宛先ポート範囲: 10256

  • 説明: "Allow Load Balancer or Network Load Balancer to communication with kube-proxy pod (via the worker subnet)"

イングレス・ルール 4

  • isStateless: false

  • source: worker_cidr

  • sourceType: CIDR_BLOCK

  • protocol: 6

  • tcpOptions

    destinationPortRange

    • max: 10256

    • min: 10256

  • description: 「ロード・バランサまたはネットワーク・ロード・バランサが(ワーカー・サブネットを介して)kube-proxyポッドと通信できるようにします。」

イングレス・ルール 5

  • ステートレス: ボックスをクリア

  • イングレスCIDR: worker_cidr

  • IPプロトコル: TCP

    • 宛先ポート範囲: 80

  • 説明: 「ワーカー・ノードがポッドに接続できるようにします。」

このイングレスはオプションです。このポートは、エンド・ユーザー・アプリケーション用に開いています。このルールは、デプロイされるアプリケーションによって異なる場合があります。

イングレス・ルール 5

  • isStateless: false

  • source: worker_cidr

  • sourceType: CIDR_BLOCK

  • protocol: 6

  • tcpOptions

    destinationPortRange

    • max: 80

    • min: 80

  • description: ワーカー・ノードがポッドに接続できるようにします。

このイングレスはオプションです。このポートは、エンド・ユーザー・アプリケーション用に開いています。このルールは、デプロイされるアプリケーションによって異なる場合があります。

イングレス・ルール 6

  • ステートレス: ボックスをクリア

  • イングレスCIDR: kmi_cidr

  • IPプロトコル: ICMP

    • パラメータタイプ: 8: エコー

  • 説明: 「リクエストを送信して、kmi_cidrからネットワーク・ポッドの到達可能性をテストします。」

イングレス・ルール 6

  • isStateless: false

  • source: kmi_cidr

  • sourceType: CIDR_BLOCK

  • protocol: 1

  • icmpOptions

    • type: 8

  • description: リクエストを送信して、kmi_cidrからネットワーク・ポッドの到達可能性をテストします。

イングレス・ルール 7

  • ステートレス: ボックスをクリア

  • イングレスCIDR: kmi_cidr

  • IPプロトコル: ICMP

    • パラメータ・タイプ: 0: Echo Reply

  • 説明: 「宛先ポッドがkmi_cidrから到達可能な場合は、ICMP Echo Replyで応答してください。」

イングレス・ルール 7

  • isStateless: false

  • source: kmi_cidr

  • sourceType: CIDR_BLOCK

  • protocol: 1

  • icmpOptions

    • type: 0

  • description: 宛先ポッドがkmi_cidrからアクセス可能である場合は、ICMP Echo Replyで応答します。

イングレス・ルール 8

  • ステートレス: ボックスをクリア

  • イングレスCIDR: pod_cidr

  • IPプロトコル: 全プロトコル

  • 説明: 「ポッドCIDRが自身と通信できるようにします。」

イングレス・ルール 8

  • isStateless: false

  • source: pod_cidr

  • sourceType: CIDR_BLOCK

  • protocol: all

  • description: ポッドCIDRがそれ自体と通信できるようにします。

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

サブネットの作成サブネットの作成を参照してください。Terraform入力については、Terraformスクリプトの例(VCNネイティブ・ポッド)を参照してください。

この例では、次の入力を使用してポッド・サブネットを作成します。VCNの作成(VCNネイティブ・ポッド・ネットワーキング)で作成されたVCNのOCIDを使用します。VCNを作成したのと同じコンパートメントにポッド・サブネットを作成します。

重要

このサブネットの名前は正確に"pod"である必要があります。

デバイス・コンソール・プロパティ

CLIプロパティー

  • 名前: ポッド

  • CIDRブロック: pod_cidr

  • ルート表: リストから「nat_private」を選択します。

  • プライベート・サブネット: チェック・ボックス

  • DNSホスト名:

    このサブネットでDNSのホスト名を使用: チェック・ボックス

    • DNSラベル: ポッド

  • セキュリティ・リスト: リストから"pod-seclist"および"Default Security List for oketest-vcn"を選択します。

  • --vcn-id: ocid1.vcn.oke_vcn_id

  • --display-name: pod

  • --cidr-block: pod_cidr

  • --dns-label: pod

  • --prohibit-public-ip-on-vnic: true

  • --route-table-id: "nat_private"ルート表のOCID

  • --security-list-ids: 「pod-seclist」セキュリティ・リストのOCIDsおよび「oketest-vcnのデフォルト・セキュリティ・リスト」セキュリティ・リスト