3.8. コンテナーネットワーク namespace での 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 インターフェイスのネットワークアタッチメントを定義します。
以下の図は、SR-IOV VF に複数の 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 ここでは、以下のようになります。
vendor-
SR-IOV ネットワークデバイスのベンダーの 16 進数コード。
15b3の値は Mellanox NIC に関連付けられます。 deviceIDSR-IOV ネットワークデバイスのデバイスの 16 進数コード。
注記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 ここでは、以下のようになります。
master-
VLAN 設定では
master名を指定する必要があります。Pod の networks アノテーションで名前を指定できます。 linkInContainer-
linkInContainerパラメーターを指定する必要があります。
以下のコマンドを実行して、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ファイルという名前のファイルを作成します。注記マニフェストの例には、次のリソースが含まれています。
- セキュリティーラベルのある namespace
- 適切なネットワークアノテーションを含む Pod 定義
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
interface-
VLAN インターフェイスの
マスターインターフェイスとして使用される名前。
以下のコマンドを実行して、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 ここでは、以下のようになります。
master- ネットワークアタッチメントに関連付けるイーサネットインターフェイスを指定します。その後、イーサネットインターフェイスは Pod ネットワークアノテーションで設定されます。
linkInContainer-
マスターインターフェイスがコンテナーネットワーク namespace に存在することを指定します。
以下のコマンドを実行して、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 ここでは、以下のようになります。
k8s.v1.cni.cncf.io/networks,interface-
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に関連付けられていることを示しています。