3.8. コンテナーネットワーク namespace での master インターフェイスの設定
次のセクションでは、master インターフェイスに基づいて MAC-VLAN、IP-VLAN、および VLAN サブインターフェイスを作成および管理する方法の手順と情報を提供します。
3.8.1. コンテナーネットワーク namespace での master インターフェイスの設定について リンクのコピーリンクがクリップボードにコピーされました!
コンテナー namespace に存在する master インターフェイスに基づいて、MAC-VLAN、IP-VLAN、または VLAN サブインターフェイスを作成できます。別のネットワークアタッチメント定義 CRD で、Pod ネットワーク設定の一部として master インターフェイスを作成することもできます。
コンテナー namespace の master インターフェイスを使用するには、NetworkAttachmentDefinition CRD のサブインターフェイス設定に存在する linkInContainer パラメーターに true を指定する必要があります。
3.8.1.1. SR-IOV VF 上で複数の VLAN を作成する リンクのコピーリンクがクリップボードにコピーされました!
この機能を利用するユースケースの例として、SR-IOV VF に基づいて複数の VLAN を作成することが挙げられます。これを行うには、まず SR-IOV ネットワークを作成し、次に VLAN インターフェイスのネットワーク割り当てを定義します。
次の例は、この図に示されているセットアップを設定する方法を示しています。
図3.1 VLAN の作成
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - SR-IOV Network Operator がインストールされている。
手順
次のコマンドを使用して、Pod をデプロイする専用のコンテナー namespace を作成します。
oc new-project test-namespace
$ oc new-project test-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV ノードポリシーを作成します。
SriovNetworkNodePolicyオブジェクトを作成してから、YAML をsriov-node-network-policy.yamlファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記deviceType: netdeviceを設定した SR-IOV ネットワークノードポリシーの設定例は、Mellanox ネットワークインターフェイスカード (NIC) 向けに特別に調整されています。以下のコマンドを実行して YAML を適用します。
oc apply -f sriov-node-network-policy.yaml
$ oc apply -f sriov-node-network-policy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ノードの再起動が必要なため、YAML の適用には時間がかかる場合があります。
SR-IOV ネットワークを作成します。
次の CR の例のように、追加のセカンダリー SR-IOV ネットワーク割り当て用の
SriovNetworkカスタムリソース (CR) を作成します。YAML をsriov-network-attachment.yamlファイルとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して YAML を適用します。
oc apply -f sriov-network-attachment.yaml
$ oc apply -f sriov-network-attachment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
VLAN セカンダリーネットワークを作成します。
以下の YAML の例を使用して、
vlan100-additional-network-configuration.yamlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、YAML ファイルを適用します。
oc apply -f vlan100-additional-network-configuration.yaml
$ oc apply -f vlan100-additional-network-configuration.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
前に指定したネットワークを使用して、Pod 定義を作成します。
次の YAML の例を使用して、
pod-a.yamlという名前のファイルを作成します。注記以下のマニフェストには 2 つのリソースが含まれています。
- セキュリティーラベルのある namespace
- 適切なネットワークアノテーションを含む Pod 定義
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- VLAN インターフェイスの
masterとして使用される名前。
以下のコマンドを実行して、YAML ファイルを適用します。
oc apply -f pod-a.yaml
$ oc apply -f pod-a.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、
test-namespace内のnginx-podに関する詳細情報を取得します。oc describe pods nginx-pod -n test-namespace
$ oc describe pods nginx-pod -n test-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.8.1.2. コンテナー namespace のブリッジマスターインターフェイスをベースにしてサブインターフェイスを作成する リンクのコピーリンクがクリップボードにコピーされました!
コンテナー namespace に存在するブリッジ master インターフェイスに基づいてサブインターフェイスを作成できます。サブインターフェイスの作成は、他のタイプのインターフェイスに適用できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとして OpenShift Container Platform クラスターにログインしている。
手順
次のコマンドを入力して、Pod のデプロイ先となる専用のコンテナー namespace を作成します。
oc new-project test-namespace
$ oc new-project test-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の YAML の例を使用して、
bridge-nad.yamlという名前のブリッジNetworkAttachmentDefinitionカスタムリソース定義 (CRD) ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
NetworkAttachmentDefinitionCRD を OpenShift Container Platform クラスターに適用します。oc apply -f bridge-nad.yaml
$ oc apply -f bridge-nad.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
NetworkAttachmentDefinitionCRD が正常に作成されたことを確認します。予想される出力には、NAD CRD の名前と作成後の経過時間 (分) が表示されます。oc get network-attachment-definitions
$ oc get network-attachment-definitionsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の YAML の例を使用して、IPVLAN セカンダリーネットワーク設定用に
ipvlan-additional-network-configuration.yamlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、YAML ファイルを適用します。
oc apply -f ipvlan-additional-network-configuration.yaml
$ oc apply -f ipvlan-additional-network-configuration.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
NetworkAttachmentDefinitionCRD が正常に作成されたことを確認します。予想される出力には、NAD CRD の名前と作成後の経過時間 (分) が表示されます。oc get network-attachment-definitions
$ oc get network-attachment-definitionsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の YAML の例を使用して、Pod 定義用に
pod-a.yamlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- IPVLAN インターフェイスの
masterとして使用する名前を指定します。
以下のコマンドを実行して、YAML ファイルを適用します。
oc apply -f pod-a.yaml
$ oc apply -f pod-a.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、Pod が実行されていることを確認します。
oc get pod -n test-namespace
$ oc get pod -n test-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE pod-a 1/1 Running 0 2m36s
NAME READY STATUS RESTARTS AGE pod-a 1/1 Running 0 2m36sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
test-namespace内のpod-aリソースに関するネットワークインターフェイス情報を表示します。oc exec -n test-namespace pod-a -- ip a
$ oc exec -n test-namespace pod-a -- ip aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力は、ネットワークインターフェイス
net2が物理インターフェイスnet1に関連付けられていることを示しています。