第 2 章 ClusterUserDefinedNetwork [k8s.ovn.org/v1]
- 描述
- ClusterUserDefinedNetwork 描述在命名空间间共享网络的网络请求。
- 类型
-
object
- 必填
-
spec
-
2.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| namespaceSelector 标签选择器,其命名空间网络应该可用。 |
|
| Network 是用户定义的 spec |
2.1.2. .spec.namespaceSelector 复制链接链接已复制到粘贴板!
- 描述
- namespaceSelector 标签选择器,其命名空间网络应该可用。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| 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
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
2.1.5. .spec.network 复制链接链接已复制到粘贴板!
- 描述
- Network 是用户定义的 spec
- 类型
-
object
- 必填
-
topology
-
属性 | 类型 | 描述 |
---|---|---|
|
| Layer2 是 Layer2 拓扑配置。 |
|
| Layer3 是 Layer3 拓扑配置。 |
|
| localnet 是 Localnet 拓扑配置。 |
|
| 拓扑描述了网络配置。 允许的值是 "Layer3", "Layer2" 和 "Localnet"。Layer3 拓扑会为每个节点创建一个第 2 层段,各自有不同的子网。第 3 层路由用于互连节点子网。Layer2 拓扑创建一个供所有节点共享的逻辑交换机。localnet 拓扑基于第 2 层拓扑,但也允许连接到现有的(配置)物理网络,为工作负载提供南北流量。 |
2.1.6. .spec.network.layer2 复制链接链接已复制到粘贴板!
- 描述
- Layer2 是 Layer2 拓扑配置。
- 类型
-
object
- 必填
-
role
-
属性 | 类型 | 描述 |
---|---|---|
|
| IPAM 部分包含与网络相关的 IPAM 配置。 |
|
| JoinSubnets 在 OVN 网络拓扑中使用。 双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。 |
|
| MTU 是网络的最大传输单元。如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。 |
|
| Role 描述了 pod 中的 network 角色。
允许的值是 "Secondary"。二级网络只分配给使用 |
|
| 子网用于集群中的 pod 网络。双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。
格式应该与标准 CIDR 表示法匹配(例如 "10.128.0.0/16")。如果 |
2.1.7. .spec.network.layer2.ipam 复制链接链接已复制到粘贴板!
- 描述
- IPAM 部分包含与网络相关的 IPAM 配置。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 生命周期控制 IP 地址管理生命周期。
唯一允许的值是 Persistent。设置后,OVN Kubernetes 分配的 IP 地址将保留在 |
|
|
模式 控制 OVN 管理 IP 配置的数量。 |
2.1.8. .spec.network.layer3 复制链接链接已复制到粘贴板!
- 描述
- Layer3 是 Layer3 拓扑配置。
- 类型
-
object
- 必填
-
role
-
subnets
-
属性 | 类型 | 描述 |
---|---|---|
|
| JoinSubnets 在 OVN 网络拓扑中使用。 双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。此字段仅允许"Primary"网络。不建议在不明确需要和了解 OVN 网络拓扑的情况下设置此字段。省略时,平台将选择一个合理的默认值,该默认值可能会随时间变化。 |
|
| MTU 是网络的最大传输单元。 如果没有提供 MTU,则 OVN-Kubernetes 中全局配置的值(默认为 1400)用于网络。 |
|
| Role 描述了 pod 中的 network 角色。
允许的值是 "Primary" 和 "Secondary"。主网络会自动分配给在同一命名空间中创建的每个 pod。二级网络只分配给使用 |
|
| 子网用于集群中的 pod 网络。 双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。 |
|
|
2.1.9. .spec.network.layer3.subnets 复制链接链接已复制到粘贴板!
- 描述
子网用于集群中的 pod 网络。
双栈集群可以设置 2 个子网(每个 IP 系列一个),否则只允许 1 个子网。给定子网被分成较小的子网。
- 类型
-
数组
2.1.10. .spec.network.layer3.subnets[] 复制链接链接已复制到粘贴板!
- 描述
- 类型
-
object
- 必填
-
cidr
-
属性 | 类型 | 描述 |
---|---|---|
|
| CIDR 指定 L3Subnet,每个节点被分成较小的子网。 |
|
| HostSubnet 指定每个节点的子网大小。 如果没有设置,则会自动分配。 |
2.1.11. .spec.network.localnet 复制链接链接已复制到粘贴板!
- 描述
- localnet 是 Localnet 拓扑配置。
- 类型
-
object
- 必填
-
physicalNetworkName
-
role
-
属性 | 类型 | 描述 |
---|---|---|
|
|
excludeSubnets 是要从 |
|
|
network 的 IPAM 配置。ipam 是可选的。省略时,必须指定 |
|
|
MTU 是网络的最大传输单元。mtu 是可选的。如果省略时,OVN-Kubernetes 中配置的值(默认为 localnet 拓扑)用于网络。IPv4 子网的最小值是 576,IPv6 子网的值是 1280。最大值为 65536。在场景 |
|
|
physicalNetworkName 指向节点上配置的 OVS 网桥映射的 network-name 需要。最小长度为 1,最大长度为 253,不能包含 |
|
|
Role 描述了 pod 中需要的网络角色。控制 pod 接口是否充当主要还是次要。localnet 拓扑仅支持 |
|
|
子网是用于集群中此 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")。如果 |
|
|
network 的 VLAN 配置。vlan.mode 是 VLAN 模式。当设置了 "Access" 时,OVN-Kubernetes 以访问模式配置网络逻辑交换机端口。vlan.access 是访问 VLAN 配置。vlan.access.id 是要在网络逻辑交换机端口上设置的 VLAN ID (VID)。在忽略底层网络默认 VLAN 时,将是可选的。 |
2.1.12. .spec.network.localnet.ipam 复制链接链接已复制到粘贴板!
- 描述
-
network 的 IPAM 配置。ipam 是可选的。省略时,必须指定
子网
。当ipam.mode
为Disabled
时,必须省略子网
。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.mode
为Enabled
时支持。 - 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 生命周期控制 IP 地址管理生命周期。
唯一允许的值是 Persistent。设置后,OVN Kubernetes 分配的 IP 地址将保留在 |
|
|
模式 控制 OVN 管理 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
- 必填
-
模式
-
属性 | 类型 | 描述 |
---|---|---|
|
| 访问是访问 VLAN 配置 |
|
| 模式描述网络 VLAN 模式。允许的值是 "Access"。访问以访问模式设置网络逻辑交换机端口,具体取决于配置。 |
2.1.14. .spec.network.localnet.vlan.access 复制链接链接已复制到粘贴板!
- 描述
- 访问是访问 VLAN 配置
- 类型
-
object
- 必填
-
id
-
属性 | 类型 | 描述 |
---|---|---|
|
| ID 是要为网络设置的 VLAN ID (VID)。id 应高于 0,小于 4095。 |
2.1.15. .status 复制链接链接已复制到粘贴板!
- 描述
- ClusterUserDefinedNetworkStatus 包含 ClusterUserDefinedNetwork 的观察状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 指示 ClusterUserDefineNetwork 状态详情的条件对象片段。 |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
2.1.16. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 指示 ClusterUserDefineNetwork 状态详情的条件对象片段。
- 类型
-
array
2.1.17. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- condition 包含此 API 资源当前状态的一个方面的详细信息。
- 类型
-
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 中的条件类型。 |