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

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

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

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

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

  2. ポッドサブネット

Podセキュリティ・リストの作成

セキュリティ・リストを作成します。「セキュリティ・リストの作成」を参照してください。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

  • 説明: ロード・バランサまたはネットワーク・ロード・バランサが(ワーカー・サブネットを介して)kube-proxyポッドと通信することを許可します。

イングレス・ルール 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: エコー応答

  • 説明: 「宛先ポッドがkmi_cidrから到達可能な場合は、ICMPエコー・リプライで応答します。」

イングレス・ルール 7

  • isStateless: false

  • source: kmi_cidr

  • sourceType: CIDR_BLOCK

  • protocol: 1

  • icmpOptions

    • type: 0

  • description: 「宛先ポッドがkmi_cidrから到達可能な場合は、ICMPエコー・リプライで応答します。」

イングレス・ルール 8

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

  • イングレスCIDR: pod_cidr

  • IPプロトコル: すべてのプロトコルの場合

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

イングレス・ルール 8

  • isStateless: false

  • source: pod_cidr

  • sourceType: CIDR_BLOCK

  • protocol: all

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

Podサブネットの作成

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

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

重要

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

コンソール・プロパティ

CLIプロパティー

  • 名前: ポッド

  • CIDRブロック: pod_cidr

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

  • Private Subnet: チェックボックスをオンにします。

  • 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のデフォルト・セキュリティ・リスト」セキュリティ・リスト