2.2. NetworkAttachmentDefinition を使用したプライマリーネットワークの作成
次のセクションでは、NetworkAttachmentDefinition
(NAD) リソースを使用してプライマリーネットワークを作成および管理する方法を説明します。
2.2.1. プライマリーネットワークの管理方法 リンクのコピーリンクがクリップボードにコピーされました!
NAD によって作成されたプライマリーネットワークのライフサイクルは、次のどちらかの方法で管理できます。
-
Cluster Network Operator (CNO) 設定を変更します。この方法を使用すると、CNO によって
NetworkAttachmentDefinition
オブジェクトが自動的に作成および管理されます。CNO は、オブジェクトのライフサイクルを管理するだけでなく、DHCP によって割り当てられる IP アドレスを使用するプライマリーネットワークで DHCP が利用可能であることを確認します。 -
YAML マニフェストを適用します。この方法を使用すると、
NetworkAttachmentDefinition
オブジェクトを作成してプライマリーネットワークを直接管理できます。この方法では、Pod にプライマリーネットワークインターフェイスを割り当てるために複数の CNI プラグインを呼び出すことができます。
各アプローチは同時に使用できず、プライマリーネットワークを管理する場合に 1 つのアプローチしか使用できません。どちらのアプローチでも、プライマリーネットワークは、お客様が設定した Container Network Interface (CNI) プラグインによって管理されます。
OVN SDN を使用して、Red Hat OpenStack Platform (RHOSP) に複数のネットワークインターフェイスを持つ OpenShift Container Platform ノードをデプロイすると、セカンダリーインターフェイスの DNS 設定がプライマリーインターフェイスの DNS 設定よりも優先される場合があります。その場合は、次のコマンドを実行して、セカンダリーインターフェイスに割り当てられているサブネット ID の DNS ネームサーバーを削除します。
openstack subnet set --dns-nameserver 0.0.0.0 <subnet_id>
$ openstack subnet set --dns-nameserver 0.0.0.0 <subnet_id>
2.2.2. Cluster Network Operator によるプライマリーネットワーク割り当ての作成 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Network Operator (CNO) は追加ネットワークの定義を管理します。作成するプライマリーネットワークを指定すると、CNO によって NetworkAttachmentDefinition
カスタムリソース定義 (CRD) が自動的に作成されます。
Cluster Network Operator によって管理される NetworkAttachmentDefinition
CRD は編集しないでください。これを実行すると、プライマリーネットワークのネットワークトラフィックが中断する可能性があります。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
オプション: プライマリーネットワークの namespace を作成します。
oc create namespace <namespace_name>
$ oc create namespace <namespace_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CNO 設定を編集するには、以下のコマンドを入力します。
oc edit networks.operator.openshift.io cluster
$ oc edit networks.operator.openshift.io cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のサンプル CR のように、作成されるプライマリーネットワークの設定を追加して、作成している CR を変更します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存し、テキストエディターを終了して、変更をコミットします。
検証
次のコマンドを実行して、CNO が
NetworkAttachmentDefinition
CRD を作成したことを確認します。CNO が CRD を作成するまでに遅延が発生する可能性があります。予想される出力には、NAD CRD の名前と作成後の経過時間 (分) が表示されます。oc get network-attachment-definitions -n <namespace>
$ oc get network-attachment-definitions -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<namespace>
- CNO の設定に追加したネットワーク割り当ての namespace を指定します。
2.2.2.1. プライマリーネットワークアタッチメントの設定 リンクのコピーリンクがクリップボードにコピーされました!
プライマリーネットワークは、k8s.cni.cncf.io
API グループの NetworkAttachmentDefinition
API を使用して設定されます。
API の設定は、以下の表で説明されています。
フィールド | 型 | 説明 |
---|---|---|
|
| プライマリーネットワークの名前。 |
|
| オブジェクトが関連付けられる namespace。 |
|
| JSON 形式の CNI プラグイン設定。 |
2.2.3. YAML マニフェストを適用したプライマリーネットワークアタッチメントの作成 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - NAD のデプロイ先となる namespace で作業している。
手順
以下の例のように、プライマリーネットワーク設定を含む YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- オプション: NAD が適用される namespace を指定できます。NAD のデプロイ先となる namespace で作業している場合、この仕様は必要ありません。
プライマリーネットワークを作成するには、次のコマンドを入力します。
oc apply -f <file>.yaml
$ oc apply -f <file>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<file>
- YAML マニフェストを含むファイルの名前を指定します。