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-namespace
Copy 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.yaml
Copy 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.yaml
Copy 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.yaml
Copy 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.yaml
Copy 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-namespace
Copy 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-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の YAML の例を使用して、
bridge-nad.yaml
という名前のブリッジNetworkAttachmentDefinition
カスタムリソース定義 (CRD) ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
NetworkAttachmentDefinition
CRD を OpenShift Container Platform クラスターに適用します。oc apply -f bridge-nad.yaml
$ oc apply -f bridge-nad.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力して、
NetworkAttachmentDefinition
CRD が正常に作成されていることを確認します。予想される出力には、NAD CRD の名前と作成期間が分単位で表示されます。oc get network-attachment-definitions
$ oc get network-attachment-definitions
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
NetworkAttachmentDefinition
CRD が正常に作成されていることを確認します。予想される出力には、NAD CRD の名前と作成期間が分単位で表示されます。oc get network-attachment-definitions
$ oc get network-attachment-definitions
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、Pod が実行されていることを確認します。
oc get pod -n test-namespace
$ oc get pod -n test-namespace
Copy 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 2m36s
Copy 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 a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力は、ネットワークインターフェイス
net2
が物理インターフェイスnet1
に関連付けられていることを示しています。