第 2 章 ClusterUserDefinedNetwork [k8s.ovn.org/v1]


描述
ClusterUserDefinedNetwork 描述在命名空间间共享网络的网络请求。
类型
object
必填
  • spec

2.1. 规格

Expand
属性类型描述

apiVersion

string

APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

object

ClusterUserDefinedNetworkSpec 定义 ClusterUserDefinedNetwork 的所需状态。

status

object

ClusterUserDefinedNetworkStatus 包含 ClusterUserDefinedNetwork 的观察状态。

2.1.1. .spec

描述
ClusterUserDefinedNetworkSpec 定义 ClusterUserDefinedNetwork 的所需状态。
类型
object
必填
  • namespaceSelector
  • network
Expand
属性类型描述

namespaceSelector

object

namespaceSelector 标签选择器,其命名空间网络应该可用。

network

object

Network 是用户定义的 spec

2.1.2. .spec.namespaceSelector

描述
namespaceSelector 标签选择器,其命名空间网络应该可用。
类型
object
Expand
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

2.1.3. .spec.namespaceSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
array

2.1.4. .spec.namespaceSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
Expand
属性类型描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

2.1.5. .spec.network

描述
Network 是用户定义的 spec
类型
object
必填
  • topology
Expand
属性类型描述

layer2

object

Layer2 是 Layer2 拓扑配置。

layer3

object

Layer3 是 Layer3 拓扑配置。

localnet

object

localnet 是 Localnet 拓扑配置。

topology

string

拓扑描述了网络配置。

允许的值是 "Layer3", "Layer2" 和 "Localnet"。Layer3 拓扑会为每个节点创建一个第 2 层段,各自有不同的子网。第 3 层路由用于互连节点子网。Layer2 拓扑创建一个供所有节点共享的逻辑交换机。localnet 拓扑基于第 2 层拓扑,但也允许连接到现有的(配置)物理网络,为工作负载提供南北流量。

2.1.6. .spec.network.layer2

描述
Layer2 是 Layer2 拓扑配置。
类型
object
必填
  • role
Expand
属性类型描述

ipam

object

IPAM 部分包含与网络相关的 IPAM 配置。

joinSubnets

数组(字符串)

JoinSubnets 在 OVN 网络拓扑中使用。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。

mtu

整数

MTU 是网络的最大传输单元。如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。

role

string

Role 描述了 pod 中的 network 角色。

允许的值是 "Secondary"。二级网络只分配给使用 k8s.v1.cni.cncf.io/networks 注解来选择给定网络的 pod。

subnets

数组(字符串)

子网用于集群中的 pod 网络。双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。

格式应该与标准 CIDR 表示法匹配(例如 "10.128.0.0/16")。如果 ipam.modeDisabled,则必须省略此字段。

2.1.7. .spec.network.layer2.ipam

描述
IPAM 部分包含与网络相关的 IPAM 配置。
类型
object
Expand
属性类型描述

生命周期

string

生命周期控制 IP 地址管理生命周期。

唯一允许的值是 Persistent。设置后,OVN Kubernetes 分配的 IP 地址将保留在 ipamclaims.k8s.cni.cncf.io 对象中。如果请求,其他 pod 将重复使用这些 IP 地址。仅在 启用 模式时支持。

模式

string

模式 控制 OVN 管理 IP 配置的数量。启用 意味着 OVN-Kubernetes 会将 IP 配置应用到 SDN 基础架构,它还会将 IP 从所选子网分配给单个 pod。禁用 意味着 OVN-Kubernetes 将只分配 MAC 地址并提供第 2 层通信,允许用户为 pod 配置 IP 地址。disabled 仅适用于二级网络。禁用 IPAM 后,任何依赖于 IP 选择 pod 的 Kubernetes 功能将不再起作用(如网络策略、服务等)。此外,附加到这个网络的接口也会禁用 IP 端口安全性。默认为 已启用

2.1.8. .spec.network.layer3

描述
Layer3 是 Layer3 拓扑配置。
类型
object
必填
  • role
  • subnets
Expand
属性类型描述

joinSubnets

数组(字符串)

JoinSubnets 在 OVN 网络拓扑中使用。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。

mtu

整数

MTU 是网络的最大传输单元。

如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。

role

string

Role 描述了 pod 中的 network 角色。

允许的值是 "Primary" 和 "Secondary"。主网络会自动分配给在同一命名空间中创建的每个 pod。二级网络只分配给使用 k8s.v1.cni.cncf.io/networks 注解来选择给定网络的 pod。

subnets

数组

子网用于集群中的 pod 网络。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。

subnets[]

object

 

2.1.9. .spec.network.layer3.subnets

描述

子网用于集群中的 pod 网络。

双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。

类型
数组

2.1.10. .spec.network.layer3.subnets[]

描述
类型
object
必填
  • cidr
Expand
属性类型描述

cidr

string

CIDR 指定 L3Subnet,每个节点被分成较小的子网。

hostSubnet

整数

HostSubnet 指定每个节点的子网大小。

如果没有设置,则会自动分配。

2.1.11. .spec.network.localnet

描述
localnet 是 Localnet 拓扑配置。
类型
object
必填
  • physicalNetworkName
  • role
Expand
属性类型描述

excludeSubnets

数组(字符串)

excludeSubnets 是要从 子网 中指定 CIDR 中删除的 CIDR 列表。此列表中的 CIDR 必须包括在子网 . excludeSubnets 中指定的至少一个 子网 范围内。当省略没有 IP 地址时,子网 中指定的所有 IP 地址都可能会分配。格式应该与标准 CIDR 表示法匹配(例如 "10.128.0.0/16")。如果未设置 子网,或者 ipam.modeDisabled,则必须省略此字段。当 physicalNetworkName 指向具有保留 IP 地址(不应由 OVN-Kubernetes 分配)的网络的 OVS 网桥映射时,不会分配指定的 CIDR。例如:Given: subnets: "10.0.0.0/24", excludeSubnets: "10.0.0.200/30",不会为 pod 分配以下地址: '10.0.0.201,10.0.0.202

ipam

object

network 的 IPAM 配置。ipam 是可选的。省略时,必须指定 子网。当 ipam.modeDisabled 时,必须省略子网ipam.mode 控制 OVN 管理 IP 配置的数量。启用后,OVN-Kubernetes 会将 IP 配置应用到 SDN infra,并将所选子网的 IP 分配给 pod。当禁用 时,OVN-Kubernetes 只分配 MAC 地址并提供 layer2 通信,并允许用户在 pod 上配置 IP 地址。ipam.lifecycle 控制 IP 地址管理生命周期。当设置为 'Persistent' 时,分配的 IP 地址将保留在 ipamclaims.k8s.cni.cncf.io 对象中。对于虚拟机,在重启和迁移后,IP 地址将会被保留。当 ipam.modeEnabled 时支持。

mtu

整数

MTU 是网络的最大传输单元。mtu 是可选的。如果省略时,OVN-Kubernetes 中配置的值(默认为 localnet 拓扑)用于网络。IPv4 子网的最小值是 576,IPv6 子网的值是 1280。最大值为 65536。在场景 physicalNetworkName 指向配置了某些 MTU 设置的网络的 OVS 网桥映射中,此字段允许在 pod 接口上配置相同的 MTU,使 pod MTU 与网络 MTU 保持一致。堆栈中的错误对齐 MTU (例如: pod 具有 MTU X,节点 NIC 具有 MTU Y),可能会导致网络中断和性能不当。

physicalNetworkName

string

physicalNetworkName 指向节点上配置的 OVS 网桥映射的 network-name 需要。最小长度为 1,最大长度为 253,不能包含 ,: 字符。如果 OVS bridge-mapping 由带有 NodeNetworkConfigurationPolicy (NNCP)的 Kubernetes-nmstate 定义,此字段应指向 NNCP spec.desiredState.ovn.bridge-mappings 项的 localnet 值。

role

string

Role 描述了 pod 中需要的网络角色。控制 pod 接口是否充当主要还是次要。localnet 拓扑仅支持 Secondary。网络将分配给具有 k8s.v1.cni.cncf.io/networks 注解的 pod,以指向 subject。

subnets

数组(字符串)

子网是用于集群中此 localnet 网络中 pod 的子网列表。列表可以是 1 个 IPv4 子网、1 IPv6 子网或每个 IP 系列中的 1 个。设置后,OVN-Kubernetes 将指定 CIDR 的 IP 地址分配给连接的 pod,无需手动 IP 分配或依赖外部 IPAM 服务(如 DHCP 服务器)。子网是可选的。当省略 OVN-Kubernetes 时,不会自动分配 IP 地址。双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。格式应该与标准 CIDR 表示法匹配(例如 "10.128.0.0/16")。如果 ipam.modeDisabled,则必须省略此字段。当 physicalNetworkName 指向提供 IPAM 服务(如 DHCP 服务器)的网络的 OVS 网桥映射时,ipam.mode 应该设置为 Disabled。这会关闭 OVN-Kubernetes IPAM,并避免与此 localnet 网络上现有的 IPAM 服务冲突。

vlan

object

network 的 VLAN 配置。vlan.mode 是 VLAN 模式。当设置了 "Access" 时,OVN-Kubernetes 以访问模式配置网络逻辑交换机端口。vlan.access 是访问 VLAN 配置。vlan.access.id 是要在网络逻辑交换机端口上设置的 VLAN ID (VID)。在忽略底层网络默认 VLAN 时,将是可选的。设置后,OVN-Kubernetes 会将 VLAN 配置应用到 SDN infra 并连接到连接的 pod。

2.1.12. .spec.network.localnet.ipam

描述
network 的 IPAM 配置。ipam 是可选的。省略时,必须指定 子网。当 ipam.modeDisabled 时,必须省略子网ipam.mode 控制 OVN 管理 IP 配置的数量。启用后,OVN-Kubernetes 会将 IP 配置应用到 SDN infra,并将所选子网的 IP 分配给 pod。当禁用 时,OVN-Kubernetes 只分配 MAC 地址并提供 layer2 通信,并允许用户在 pod 上配置 IP 地址。ipam.lifecycle 控制 IP 地址管理生命周期。当设置为 'Persistent' 时,分配的 IP 地址将保留在 ipamclaims.k8s.cni.cncf.io 对象中。对于虚拟机,在重启和迁移后,IP 地址将会被保留。当 ipam.modeEnabled 时支持。
类型
object
Expand
属性类型描述

生命周期

string

生命周期控制 IP 地址管理生命周期。

唯一允许的值是 Persistent。设置后,OVN Kubernetes 分配的 IP 地址将保留在 ipamclaims.k8s.cni.cncf.io 对象中。如果请求,其他 pod 将重复使用这些 IP 地址。仅在 启用 模式时支持。

模式

string

模式 控制 OVN 管理 IP 配置的数量。启用 意味着 OVN-Kubernetes 会将 IP 配置应用到 SDN 基础架构,它还会将 IP 从所选子网分配给单个 pod。禁用 意味着 OVN-Kubernetes 将只分配 MAC 地址并提供第 2 层通信,允许用户为 pod 配置 IP 地址。disabled 仅适用于二级网络。禁用 IPAM 后,任何依赖于 IP 选择 pod 的 Kubernetes 功能将不再起作用(如网络策略、服务等)。此外,附加到这个网络的接口也会禁用 IP 端口安全性。默认为 已启用

2.1.13. .spec.network.localnet.vlan

描述
network 的 VLAN 配置。vlan.mode 是 VLAN 模式。当设置了 "Access" 时,OVN-Kubernetes 以访问模式配置网络逻辑交换机端口。vlan.access 是访问 VLAN 配置。vlan.access.id 是要在网络逻辑交换机端口上设置的 VLAN ID (VID)。在忽略底层网络默认 VLAN 时,将是可选的。设置后,OVN-Kubernetes 会将 VLAN 配置应用到 SDN infra 并连接到连接的 pod。
类型
object
必填
  • 模式
Expand
属性类型描述

access

object

访问是访问 VLAN 配置

模式

string

模式描述网络 VLAN 模式。允许的值是 "Access"。访问以访问模式设置网络逻辑交换机端口,具体取决于配置。

2.1.14. .spec.network.localnet.vlan.access

描述
访问是访问 VLAN 配置
类型
object
必填
  • id
Expand
属性类型描述

id

整数

ID 是要为网络设置的 VLAN ID (VID)。id 应高于 0,小于 4095。

2.1.15. .status

描述
ClusterUserDefinedNetworkStatus 包含 ClusterUserDefinedNetwork 的观察状态。
类型
object
Expand
属性类型描述

conditions

数组

指示 ClusterUserDefineNetwork 状态详情的条件对象片段。

conditions[]

object

condition 包含此 API 资源当前状态的一个方面的详细信息。

2.1.16. .status.conditions

描述
指示 ClusterUserDefineNetwork 状态详情的条件对象片段。
类型
array

2.1.17. .status.conditions[]

描述
condition 包含此 API 资源当前状态的一个方面的详细信息。
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
Expand
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

条件的状态,True, False, Unknown 之一。

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat