第 21 章 Network [operator.openshift.io/v1]
- 描述
- network 描述了集群所需的网络配置。它被 cluster-network-operator 使用。兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
object
21.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 | |
|
| NetworkSpec 是顶级网络配置对象。 |
|
| NetworkStatus 是详细的 operator 状态,它被干扰到 Network clusteroperator 对象。 |
21.1.1. .spec
- 描述
- NetworkSpec 是顶级网络配置对象。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| additionalNetworks 是启用了多个网络时可供 pod 使用的额外网络列表。 |
|
| AdditionalNetworkDefinition 配置了一个额外的网络,该网络可用但没有默认创建。相反,pod 必须按名称请求它们。必须指定类型,以及与类型匹配的 "Config"。 |
|
| clusterNetwork 是用于 pod IP 的 IP 地址池。一些网络提供程序(如 OpenShift SDN)支持多个 ClusterNetworks。其他产品仅支持一个。这等同于 cluster-cidr。 |
|
| ClusterNetworkEntry 是一个要从中分配 PodIP 的子网。当节点加入集群时,将分配大小为 HostPrefix (以 CIDR 表示法)的网络。如果插件不使用 HostPrefix 字段,则可以取消设置它。不是所有网络供应商都支持多个 ClusterNetworks |
|
| defaultNetwork 是所有 pod 将接收的"默认"网络 |
|
| deployKubeProxy 指定 Operator 是否应该部署独立 kube-proxy。有些网络供应商包括 kube-proxy 或类似功能。如果未设置,则插件将尝试选择正确的值,该值在 OpenShift SDN 和 ovn-kubernetes 被使用时为 false,否则为 true。 |
|
| disableMultiNetwork 指定是否应禁用多个 pod 网络支持。如果未设置,此属性默认为 'false',并启用多个网络支持。 |
|
| disableNetworkDiagnostics 指定 PodNetworkConnectivityCheck CR 从一个测试 pod 到每个节点,apiserver 和 LB 是否应该被禁用。如果未设置,此属性默认为 'false',并且启用了网络诊断。把它设置为 'true' 可减少执行检查的 pod 的额外负载。 |
|
| exportNetworkFlows 通过使用协议 NetFlow、SFlow 或 IPFIX 启用并配置来自 pod 网络的网络流元数据导出。目前仅在 OVN-Kubernetes 插件中支持。如果未设置,则不会将流导出到任何收集器。 |
|
| kubeProxyConfig 可让我们配置所需的代理配置。如果未指定,OpenShift 将直接选择相应的默认值。不会被所有网络供应商使用 - 目前只有 openshift-sdn。 |
|
| Loglevel 是整个组件的意图型日志记录。它无法提供精细的控制,但管理操作员必须针对其操作对象解释的粗粒度日志记录选择是一个简单的方法。有效值为:"Normal", "Debug", "Trace", "TraceAll"。默认值为 "Normal"。 |
|
| managementState 指明 Operator 是否应该管理组件 |
|
| 迁移启用并配置集群网络迁移。迁移步骤允许更改网络类型和 MTU。 |
| `` | observedConfig 包含一个从集群状态观察到的稀疏配置。它存在于 spec 中,因为它是 Operator 的级别输入 |
|
| operatorLogLevel 是 Operator 本身的意图日志。它无法提供精细的控制,但管理操作员必须自行解释的粗粒度日志记录选择是一个简单的方法。有效值为:"Normal", "Debug", "Trace", "TraceAll"。默认值为 "Normal"。 |
|
| serviceNetwork 是服务 IP 当前使用的 ip 地址池,所有现有的网络供应商只支持一个值,但这是一个允许增长的数组。 |
| `` | unsupportedConfigOverrides 包含稀疏配置,它将覆盖任何之前设置的选项。它只需要是覆盖字段才能按照以下顺序进行覆盖:1.硬编码默认值 2. observedConfig 3. unsupportedConfigOverrides |
|
| useMultiNetworkPolicy 启用一个控制器,允许 MultiNetworkPolicy 对象用于 Multus CNI 创建的额外网络。MultiNetworkPolicy 与 NetworkPolicy 对象类似,但 NetworkPolicy 对象只适用于主接口。使用 MultiNetworkPolicy,您可以控制 pod 可以通过二级接口接收的流量。如果未设置,此属性默认为 'false' 和 MultiNetworkPolicy 对象。如果 'disableMultiNetwork' 是 'true',则此字段的值将被忽略。 |
21.1.2. .spec.additionalNetworks
- 描述
- additionalNetworks 是启用了多个网络时可供 pod 使用的额外网络列表。
- 类型
-
array
21.1.3. .spec.additionalNetworks[]
- 描述
- AdditionalNetworkDefinition 配置了一个额外的网络,该网络可用但没有默认创建。相反,pod 必须按名称请求它们。必须指定类型,以及与类型匹配的 "Config"。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 是网络的名称。这将在生成的 CRD 中填充,这必须是唯一的。 |
|
| namespace 是网络的命名空间。这将在生成的 CRD 中填充,如果没有给定网络会在 default 命名空间中创建。 |
|
| rawCNIConfig 是要在 NetworkAttachmentDefinition CRD 中创建的原始 CNI 配置 json |
|
| 在 type:NetworkTypeSimpleMacvlan 时,simpleMacvlanConfig 配置 macvlan 接口 |
|
| type 是网络类型。支持的值有 NetworkTypeRaw, NetworkTypeSimpleMacvlan |
21.1.4. .spec.additionalNetworks[].simpleMacvlanConfig
- 描述
- 在 type:NetworkTypeSimpleMacvlan 时,simpleMacvlanConfig 配置 macvlan 接口
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| ipamConfig 配置 IPAM 模块将用于 IP 地址管理(IPAM)。 |
|
| master 是要从中创建 macvlan 接口的主机接口。如果没有指定,它将是默认路由接口 |
|
| 模式是 macvlan 模式:bridge、private、vepa、passthru。默认值为 bridge |
|
| MTU 是用于 macvlan 接口的 mtu。如果未设置,主机的内核将选择该值。 |
21.1.5. .spec.additionalNetworks[].simpleMacvlanConfig.ipamConfig
- 描述
- ipamConfig 配置 IPAM 模块将用于 IP 地址管理(IPAM)。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 在类型为:IPAMTypeStatic 时,staticIPAMConfig 配置静态 IP 地址 |
|
| type 是 IPAM 模块的类型将用于 IP 地址管理(IPAM)。支持的值有 IPAMTypeDHCP, IPAMTypeStatic |
21.1.6. .spec.additionalNetworks[].simpleMacvlanConfig.ipamConfig.staticIPAMConfig
- 描述
- 在类型为:IPAMTypeStatic 时,staticIPAMConfig 配置静态 IP 地址
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 地址为接口配置 IP 地址 |
|
| StaticIPAMAddresses 为静态 IPAM 地址提供 IP 地址和网关 |
|
| DNS 为接口配置 DNS |
|
| 路由为接口配置 IP 路由 |
|
| StaticIPAMRoutes 为静态 IPAM 路由提供 Destination/Gateway 对 |
21.1.7. .spec.additionalNetworks[].simpleMacvlanConfig.ipamConfig.staticIPAMConfig.addresses
- 描述
- 地址为接口配置 IP 地址
- 类型
-
array
21.1.8. .spec.additionalNetworks[].simpleMacvlanConfig.ipamConfig.staticIPAMConfig.addresses[]
- 描述
- StaticIPAMAddresses 为静态 IPAM 地址提供 IP 地址和网关
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| address 是 CIDR 格式的 IP 地址 |
|
| gateway 是子网内部的 IP,指定为网关 |
21.1.9. .spec.additionalNetworks[].simpleMacvlanConfig.ipamConfig.staticIPAMConfig.dns
- 描述
- DNS 为接口配置 DNS
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| domain 配置用于短主机名查找的本地域的 domainname |
|
| 名称服务器指向 DNS 服务器进行 IP 查找 |
|
| 搜索配置优先级排序的搜索域以进行短主机名查找 |
21.1.10. .spec.additionalNetworks[].simpleMacvlanConfig.ipamConfig.staticIPAMConfig.routes
- 描述
- 路由为接口配置 IP 路由
- 类型
-
array
21.1.11. .spec.additionalNetworks[].simpleMacvlanConfig.ipamConfig.staticIPAMConfig.routes[]
- 描述
- StaticIPAMRoutes 为静态 IPAM 路由提供 Destination/Gateway 对
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 目标点 IP 路由目的地 |
|
| gateway 是路由的下一跃点 IP 地址(如果未设置),则假定默认网关(由 CNI 插件决定)。 |
21.1.12. .spec.clusterNetwork
- 描述
- clusterNetwork 是用于 pod IP 的 IP 地址池。一些网络提供程序(如 OpenShift SDN)支持多个 ClusterNetworks。其他产品仅支持一个。这等同于 cluster-cidr。
- 类型
-
array
21.1.13. .spec.clusterNetwork[]
- 描述
- ClusterNetworkEntry 是一个要从中分配 PodIP 的子网。当节点加入集群时,将分配大小为 HostPrefix (以 CIDR 表示法)的网络。如果插件不使用 HostPrefix 字段,则可以取消设置它。不是所有网络供应商都支持多个 ClusterNetworks
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
|
21.1.14. .spec.defaultNetwork
- 描述
- defaultNetwork 是所有 pod 将接收的"默认"网络
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| kuryrConfig 配置 kuryr 插件 |
|
| openshiftSDNConfig 配置 openshift-sdn 插件 |
|
| ovnKubernetesConfig 配置 ovn-kubernetes 插件。 |
|
| type 是网络 All NetworkTypes 的类型,但 NetworkTypeRaw 除外 |
21.1.15. .spec.defaultNetwork.kuryrConfig
- 描述
- kuryrConfig 配置 kuryr 插件
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 端口 kuryr-controller 将侦听就绪度和存活度请求。 |
|
| 端口 kuryr-daemon 将侦听就绪度和存活度请求。 |
|
| 当 true 将使 Kuryr 预填充时,enablePortPoolsPrepopulation 会使每个新创建的端口池具有最少数量的端口。Kuryr 使用 Neutron 端口池来混淆,它会需要大量时间来创建。当将第一个 pod 配置为在命名空间中创建为 pod 使用专用网络时,它会创建多个端口,并使它们准备好附加到 pod。默认情况下禁用端口预填充。 |
|
| MTU 是 Kuryr 在 Neutron 中创建 pod 网络时应使用的 MTU。该值必须较低或等于节点网络的 MTU,Neutron 必须允许使用此类 MTU 创建租户网络。如果取消设置 Pod 网络,则会使用与节点网络相同的 MTU 创建。 |
|
|
openStackServiceNetwork 包含网络 CIDR,从中为 OpenStack Octavia 的 Amphora 虚拟机分配 IP。请注意,在 Amphora 驱动程序 Octavia 时,每个 loadbalancer 都使用来自该网络的两个 IP,一个由 OpenShift 指定,第二个用于 VRRP 连接。由于第一个由 OpenShift 管理,第二个由 Neutron 的 IPAM 管理,因此它们需要来自不同的池。因此,openStackServiceNetwork 需要至少为 |
|
| poolBatchPorts 设置在单一批处理请求中应该创建的多个端口来扩展端口池。默认值为 3。有关端口池的更多信息,请参阅 enablePortPoolsPrepopulation 设置。 |
|
| poolMaxPorts 设置在端口池中保留的最大可用端口数。如果端口数量超过此设置,则空闲端口将被删除。设置 0 将禁用此上限,有效防止池缩小,这是默认值。有关端口池的更多信息,请参阅 enablePortPoolsPrepopulation 设置。 |
|
| poolMinPorts 设置应在端口池中保留的最小可用端口。如果端口数量低于此设置,则将创建新端口并添加到池中。默认值为 1。有关端口池的更多信息,请参阅 enablePortPoolsPrepopulation 设置。 |
21.1.16. .spec.defaultNetwork.openshiftSDNConfig
- 描述
- openshiftSDNConfig 配置 openshift-sdn 插件
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 启用并发控制服务代理是否支持闲置和取消闲置服务。默认情况下启用取消闲置。 |
|
|
|
|
|
|
|
|
|
|
|
|
21.1.17.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21.1.18.
|
| 如果省略,这意味着用户没有建议,平台会被保留选择合理的默认值,这可能会随时间变化。当前的默认值为 1 秒。0 代表禁用 EgressIP 节点的可访问性检查。 |
21.1.19. .spec.defaultNetwork.ovnKubernetesConfig.gatewayConfig
- 描述
- gatewayConfig 包含节点网关选项的配置。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| routingViaHost 允许 pod 出口流量通过 ovn-k8s-mp0 管理端口退出,然后再将其发送到主机。如果没有设置,流量将始终直接从 OVN 出口到外部,而无需涉及主机堆栈。把它设置为 true 表示不支持硬件卸载。如果指定了 GatewayConfig,则默认为 false。 |
21.1.20. .spec.defaultNetwork.ovnKubernetesConfig.hybridOverlayConfig
- 描述
- hybridOverlayConfig 为不使用 OVN 的对等点配置额外的覆盖网络。
- 类型
-
object
属性 | ||
---|---|---|
|
|
|
|
|
|
|
|
|
21.1.21.
21.1.22.
|
| |
|
|
21.1.23.
21.1.24.
|
|
|
|
|
|
|
|
|
|
|
|
21.1.25.
|
|
|
|
|
|
|
|
|
21.1.26.
|
|
|
21.1.27.
|
|
|
21.1.28.
|
|
|
21.1.29.
|
|
|
|
|
|
|
|
|
|
|
|
21.1.30.
21.1.31.
|
|
|
|
|
|
|
|
|
21.1.32.
|
|
|
|
|
|
|
|
|
21.1.33.
|
|
|
|
|
|
21.1.34.
|
|
|
|
|
|
21.1.35.
|
|
|
|
|
|
21.1.36.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21.1.37.
21.1.38.
|
| |
|
| |
|
| |
|
| |
|
|
21.1.39.
21.1.40.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|