第2章 ClusterUserDefinedNetwork [k8s.ovn.org/v1]
- 説明
- ClusterUserDefinedNetwork は、namespace をまたぐ共有ネットワークのネットワーク要求を記述します。
- 型
- 
						object
- 必須
- 
								spec
 
- 
								
2.1. 仕様
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
								 | 
								 | apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 | 
| 
								 | 
								 | kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 | 
| 
								 | 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
| 
								 | 
								 | ClusterUserDefinedNetworkSpec は、ClusterUserDefinedNetwork の望ましい状態を定義します。 | 
| 
								 | 
								 | ClusterUserDefinedNetworkStatus には、ClusterUserDefinedNetwork の観測ステータスが含まれます。 | 
2.1.1. .spec
- 説明
- ClusterUserDefinedNetworkSpec は、ClusterUserDefinedNetwork の望ましい状態を定義します。
- 型
- 
								object
- 必須
- 
										namespaceSelector
- 
										network
 
- 
										
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | namespace ネットワークを利用できる namespaceSelector ラベルセレクター。 | 
| 
									 | 
									 | network はユーザー定義ネットワーク仕様です。 | 
2.1.2. .spec.namespaceSelector
- 説明
- namespace ネットワークを利用できる namespaceSelector ラベルセレクター。
- 型
- 
								object
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。 | 
| 
									 | 
									 | ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。 | 
| 
									 | 
									 | matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。 | 
2.1.3. .spec.namespaceSelector.matchExpressions
- 説明
- matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。
- 型
- 
								array
2.1.4. .spec.namespaceSelector.matchExpressions[]
- 説明
- ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。
- 型
- 
								object
- 必須
- 
										key
- 
										operator
 
- 
										
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | key は、セレクターの適用先のラベルキーです。 | 
| 
									 | 
									 | operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。 | 
| 
									 | 
									 | values は文字列値の配列です。operator が In または NotIn の場合には、values 配列を空白にできません。operator が Exists または DoesNotExist の場合には、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。 | 
2.1.5. .spec.network
- 説明
- network はユーザー定義ネットワーク仕様です。
- 型
- 
								object
- 必須
- 
										topology
 
- 
										
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | layer2 は Layer2 トポロジー設定です。 | 
| 
									 | 
									 | Layer3 は、Layer3 トポロジー設定です。 | 
| 
									 | 
									 | localnet は、Localnet トポロジー設定です。 | 
| 
									 | 
									 | トポロジーはネットワーク設定を記述します。 許可される値は、"Layer3"、"Layer2"、"Localnet" です。Layer3 トポロジーでは、ノードごとにレイヤー 2 セグメントが作成され、それぞれが異なるサブネットを持ちます。レイヤー 3 ルーティングは、ノードサブネットを相互接続するために使用されます。Layer2 トポロジーでは、すべてのノードで共有される 1 つの論理スイッチが作成されます。Localnet トポロジーはレイヤー 2 トポロジーに基づいていますが、既存の (設定された) 物理ネットワークに接続して、ワークロードに north-south トラフィックを提供することもできます。 | 
2.1.6. .spec.network.layer2
- 説明
- layer2 は Layer2 トポロジー設定です。
- 型
- 
								object
- 必須
- 
										role
 
- 
										
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | IPAM セクションには、ネットワークの IPAM 関連の設定が含まれています。 | 
| 
									 | 
									 | JoinSubnets は、OVN ネットワークトポロジー内で使用されます。 デュアルスタッククラスターでは、IP ファミリーごとに 1 つずつ、合計 2 つのサブネットを設定できます。それ以外の場合は、1 つのサブネットのみが許可されます。このフィールドは "プライマリー" ネットワークにのみ許可されます。OVN ネットワークトポロジーを明確に必要とし、理解している場合を除き、このフィールドを設定することは推奨されません。省略すると、プラットフォームは適切なデフォルトを選択します。これは、今後変更される可能性があります。 | 
| 
									 | 
									 | MTU はネットワークの最大転送単位です。MTU はオプションです。指定しない場合、OVN-Kubernetes でグローバルに設定された値 (デフォルトは 1400) がネットワークに使用されます。 | 
| 
									 | 
									 | Role は、Pod 内のネットワークロールを説明します。 
									許可される値は "Secondary" です。セカンダリーネットワークは、 | 
| 
									 | 
									 | Subnets は、クラスター全体の Pod ネットワークに使用されます。デュアルスタッククラスターでは、IP ファミリーごとに 1 つずつ、合計 2 つのサブネットを設定できます。それ以外の場合は、1 つのサブネットのみが許可されます。 
									形式は標準の CIDR 表記 (例: "10.128.0.0/16") と一致する必要があります。 | 
2.1.7. .spec.network.layer2.ipam
- 説明
- IPAM セクションには、ネットワークの IPAM 関連の設定が含まれています。
- 型
- 
								object
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | lifecycle は、IP アドレスの管理ライフサイクルを制御します。 
									許可される値は Persistent のみです。設定すると、OVN Kubernetes によって割り当てられた IP アドレスが  | 
| 
									 | 
									 | 
									モードは、OVN が IP 設定を管理する程度を制御します。 | 
2.1.8. .spec.network.layer3
- 説明
- Layer3 は、Layer3 トポロジー設定です。
- 型
- 
								object
- 必須
- 
										role
- 
										subnets
 
- 
										
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | JoinSubnets は、OVN ネットワークトポロジー内で使用されます。 デュアルスタッククラスターでは、IP ファミリーごとに 1 つずつ、合計 2 つのサブネットを設定できます。それ以外の場合は、1 つのサブネットのみが許可されます。このフィールドは "プライマリー" ネットワークにのみ許可されます。OVN ネットワークトポロジーを明確に必要とし、理解している場合を除き、このフィールドを設定することは推奨されません。省略すると、プラットフォームは適切なデフォルトを選択します。これは、今後変更される可能性があります。 | 
| 
									 | 
									 | MTU はネットワークの最大転送単位です。 MTU はオプションです。指定しない場合、OVN-Kubernetes でグローバルに設定された値 (デフォルトは 1400) がネットワークに使用されます。 | 
| 
									 | 
									 | Role は、Pod 内のネットワークロールを説明します。 
									許可される値は "Primary" と "Secondary" です。プライマリーネットワークは、同じ namespace に作成されたすべての Pod に自動的に割り当てられます。セカンダリーネットワークは、 | 
| 
									 | 
									 | Subnets は、クラスター全体の Pod ネットワークに使用されます。 デュアルスタッククラスターでは、IP ファミリーごとに 1 つずつ、合計 2 つのサブネットを設定できます。それ以外の場合は、1 つのサブネットのみが許可されます。指定されたサブネットは、ノードごとに小さなサブネットに分割されます。 | 
| 
									 | 
									 | 
2.1.9. .spec.network.layer3.subnets
- 説明
- Subnets は、クラスター全体の Pod ネットワークに使用されます。 - デュアルスタッククラスターでは、IP ファミリーごとに 1 つずつ、合計 2 つのサブネットを設定できます。それ以外の場合は、1 つのサブネットのみが許可されます。指定されたサブネットは、ノードごとに小さなサブネットに分割されます。 
- 型
- 
								array
2.1.10. .spec.network.layer3.subnets[]
- 説明
- 型
- 
								object
- 必須
- 
										cidr
 
- 
										
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | CIDR は L3Subnet を指定します。これは、ノードごとに小さなサブネットに分割されます。 | 
| 
									 | 
									 | HostSubnet は、各ノードのサブネットサイズを指定します。 設定されていない場合は自動的に割り当てられます。 | 
2.1.11. .spec.network.localnet
- 説明
- localnet は、Localnet トポロジー設定です。
- 型
- 
								object
- 必須
- 
										physicalNetworkName
- 
										role
 
- 
										
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | 
									excludeSubnets は、 | 
| 
									 | 
									 | 
									ネットワークの ipam 設定。ipam はオプションです。省略する場合は、 | 
| 
									 | 
									 | 
									mtu はネットワークの最大転送単位です。mtu はオプションです。省略すると、OVN-Kubernetes で設定された値 (localnet トポロジーの場合のデフォルトは 1500) がネットワークに使用されます。IPv4 サブネットの最小値は 576、IPv6 サブネットの最小値は 1280 です。最大値は 65536 です。 | 
| 
									 | 
									 | 
									physicalNetworkName は、ノードに設定されている OVS ブリッジマッピングのネットワーク名を指します (必須)。最小長は 1、最大長は 253 です。 | 
| 
									 | 
									 | 
									role は Pod 内のネットワークロールを記述します (必須)。Pod インターフェイスが、プライマリーとセカンダリーのどちらとして機能するかを制御します。Localnet トポロジーは  | 
| 
									 | 
									 | 
									subnets は、クラスター全体のこの localnet ネットワーク内の Pod に使用されるサブネットのリストです。リストには、IPv4 サブネットを 1 つ、IPv6 サブネットを 1 つ、または各 IP ファミリーを 1 つずつ含めることができます。設定すると、OVN-Kubernetes は指定された CIDR から接続された Pod に IP アドレスを割り当てます。そのため、手動での IP 割り当てや外部 IPAM サービス (DHCP サーバーなど) に依存する必要がなくなります。subnets はオプションです。省略すると、OVN-Kubernetes は IP アドレスを自動的に割り当てません。デュアルスタッククラスターでは、IP ファミリーごとに 1 つずつ、合計 2 つのサブネットを設定できます。それ以外の場合は、1 つのサブネットのみが許可されます。形式は標準の CIDR 表記 (例: "10.128.0.0/16") と一致する必要があります。 | 
| 
									 | 
									 | 
									ネットワークの VLAN 設定。vlan.mode は VLAN モードです。"Access" が設定されている場合、OVN-Kubernetes はネットワーク論理スイッチポートをアクセスモードで設定します。vlan.access は、アクセス VLAN 設定です。vlan.access.id は、ネットワーク論理スイッチポートに設定する VLAN ID (VID) です。vlan はオプションであり、省略した場合は、基盤となるネットワークのデフォルト VLAN (通常は  | 
2.1.12. .spec.network.localnet.ipam
- 説明
- 
								ネットワークの ipam 設定。ipam はオプションです。省略する場合は、subnetsを指定する必要があります。ipam.modeがDisabledの場合、subnetsを省略する必要があります。ipam.modeは、OVN が IP 設定を管理する程度を制御します。Enabledの場合、OVN-Kubernetes は SDN インフラに IP 設定を適用し、選択したサブネットから Pod に IP を割り当てます。Disabledの場合、OVN-Kubernetes は MAC アドレスのみを割り当て、layer2 通信を提供します。これにより、ユーザーは Pod 上で IP アドレスを設定できるようになります。ipam.lifecycleは IP アドレスの管理ライフサイクルを制御します。'Persistent' に設定すると、割り当てられた IP アドレスはipamclaims.k8s.cni.cncf.ioオブジェクトで永続化されます。仮想マシンの場合に役立ち、IP アドレスは再起動および移行後も保持されます。ipam.modeがEnabledの場合にサポートされます。
- 型
- 
								object
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | lifecycle は、IP アドレスの管理ライフサイクルを制御します。 
									許可される値は Persistent のみです。設定すると、OVN Kubernetes によって割り当てられた IP アドレスが  | 
| 
									 | 
									 | 
									モードは、OVN が IP 設定を管理する程度を制御します。 | 
2.1.13. .spec.network.localnet.vlan
- 説明
- 
								ネットワークの VLAN 設定。vlan.mode は VLAN モードです。"Access" が設定されている場合、OVN-Kubernetes はネットワーク論理スイッチポートをアクセスモードで設定します。vlan.access は、アクセス VLAN 設定です。vlan.access.id は、ネットワーク論理スイッチポートに設定する VLAN ID (VID) です。vlan はオプションであり、省略した場合は、基盤となるネットワークのデフォルト VLAN (通常は 1) が使用されます。設定すると、OVN-Kubernetes は VLAN 設定を SDN インフラと接続された Pod に適用します。
- 型
- 
								object
- 必須
- 
										mode
 
- 
										
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | access はアクセス VLAN 設定です | 
| 
									 | 
									 | mode はネットワーク VLAN モードを記述します。許可される値は "Access" です。Access の場合、設定に従って、ネットワーク論理スイッチポートがアクセスモードに設定されます。 | 
2.1.14. .spec.network.localnet.vlan.access
- 説明
- access はアクセス VLAN 設定です
- 型
- 
								object
- 必須
- 
										id
 
- 
										
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | id は、ネットワークに設定する VLAN ID (VID) です。id は 0 より大きく 4095 より小さくなければなりません。 | 
2.1.15. .status
- 説明
- ClusterUserDefinedNetworkStatus には、ClusterUserDefinedNetwork の観測ステータスが含まれます。
- 型
- 
								object
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | ClusterUserDefineNetwork のステータスに関する詳細を示す条件オブジェクトの条件スライス。 | 
| 
									 | 
									 | 条件には、この API リソースの現在の状態の詳細が含まれます。 | 
2.1.16. .status.conditions
- 説明
- ClusterUserDefineNetwork のステータスに関する詳細を示す条件オブジェクトの条件スライス。
- 型
- 
								array
2.1.17. .status.conditions[]
- 説明
- condition には、この API Resource の現在の状態のある側面の詳細が含まれます。
- 型
- 
								object
- 必須
- 
										lastTransitionTime
- 
										message
- 
										reason
- 
										status
- 
										type
 
- 
										
| プロパティー | 型 | 説明 | 
|---|---|---|
| 
									 | 
									 | lastTransitionTime は、ある状態から別の状態に最後に遷移した時間です。これは、基本的な条件が変更された時点となります。不明な場合には、API フィールドが変更された時点を使用することも可能です。 | 
| 
									 | 
									 | message は、遷移の詳細を示す人が判読できるメッセージです。空の文字列の場合もあります。 | 
| 
									 | 
									 | observedGeneration は、それをベースに条件が設定された .metadata.generation を表します。たとえば、.metadata.generation が現在 12 で、.status.conditions[x].observedGeneration が 9 の場合、インスタンスの現在の状態に対して条件が古くなっています。 | 
| 
									 | 
									 | reason には、条件の最後の遷移の理由を示すプログラムによる識別子が含まれます。特定の条件タイプのプロデューサーは、このフィールドの期待値と意味、および値が保証された API と見なされるかどうかを定義できます。値は CamelCase 文字列である必要があります。このフィールドには空白を指定できません。 | 
| 
									 | 
									 | 条件のステータス、True、False、Unknown のいずれか。 | 
| 
									 | 
									 | CamelCase または foo.example.com/CamelCase の条件のタイプ。 |