13.6. 配置 SR-IOV InfiniBand 网络附加
您可以为集群中的单根 I/O 虚拟化(SR-IOV)设备配置 InfiniBand(IB)网络附加。
13.6.1. Infiniband 设备配置对象
您可以通过定义 SriovIBNetwork
对象来配置 InfiniBand(IB)网络设备。
以下 YAML 描述了 SriovIBNetwork
对象:
apiVersion: sriovnetwork.openshift.io/v1 kind: SriovIBNetwork metadata: name: <name> 1 namespace: openshift-sriov-network-operator 2 spec: resourceName: <sriov_resource_name> 3 networkNamespace: <target_namespace> 4 ipam: |- 5 {} linkState: <link_state> 6 capabilities: <capabilities> 7
- 1
- 对象的名称。SR-IOV Network Operator 创建一个名称相同的
NetworkAttachmentDefinition
对象。 - 2
- 安装 SR-IOV Operator 的命名空间。
- 3
- 用于为这个额外网络定义 SR-IOV 硬件的
SriovNetworkNodePolicy
对象中的spec.resourceName
参数的值。 - 4
SriovIBNetwork
对象的目标命名空间。只有目标命名空间中的 pod 可以附加到网络设备。- 5
- 可选:将 IPAM CNI 插件配置为 YAML 块 scalar。该插件管理网络附加定义的 IP 地址分配。
- 6
- 可选:虚拟功能(VF)的链接状态。允许的值是
enable
、disable
和auto
。 - 7
- 可选:为此网络配置功能。您可以指定
"{ "ips": true }"
来启用 IP 地址支持,或者"{ "infinibandGUID": true }"
启用 IB Global Unique Identifier(GUID)支持。
13.6.1.1. 为额外网络配置 IP 地址分配
IP 地址管理(IPAM)Container Network Interface(CNI)插件为其他 CNI 插件提供 IP 地址。
您可以使用以下 IP 地址分配类型:
- 静态分配。
- 通过 DHCP 服务器进行动态分配。您指定的 DHCP 服务器必须可从额外网络访问。
- 通过 Whereabouts IPAM CNI 插件进行动态分配。
13.6.1.1.1. 静态 IP 地址分配配置
下表描述了静态 IP 地址分配的配置:
字段 | 类型 | 描述 |
---|---|---|
|
|
IPAM 地址类型。值是 |
|
| 指定分配给虚拟接口的 IP 地址的对象数组。支持 IPv4 和 IPv6 IP 地址。 |
|
| 指定要在 pod 中配置的路由的对象数组。 |
|
| 可选:指定 DNS 配置的对象数组。 |
address
数组需要带有以下字段的对象:
字段 | 类型 | 描述 |
---|---|---|
|
|
您指定的 IP 地址和网络前缀。例如:如果您指定 |
|
| 出口网络流量要路由到的默认网关。 |
字段 | 类型 | 描述 |
---|---|---|
|
|
CIDR 格式的 IP 地址范围,如 |
|
| 网络流量路由的网关。 |
字段 | 类型 | 描述 |
---|---|---|
|
| 用来发送 DNS 查询的一个或多个 IP 地址的数组。 |
|
|
要附加到主机名的默认域。例如,如果将域设置为 |
|
|
在 DNS 查找查询过程中,附加到非限定主机名(如 |
静态 IP 地址分配配置示例
{ "ipam": { "type": "static", "addresses": [ { "address": "191.168.1.7/24" } ] } }
13.6.1.1.2. 动态 IP 地址(DHCP)分配配置
以下 JSON 描述了使用 DHCP 进行动态 IP 地址地址分配的配置:
pod 在创建时获取其原始 DHCP 租期。该租期必须由集群中运行的一个小型的 DHCP 服务器部署定期续订。
要触发 DHCP 服务器的部署,您必须编辑 Cluster Network Operator 配置来创建 shim 网络附加,如下例所示:
shim 网络附加定义示例
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster spec: additionalNetworks: - name: dhcp-shim namespace: default type: Raw rawCNIConfig: |- { "name": "dhcp-shim", "cniVersion": "0.3.1", "type": "bridge", "ipam": { "type": "dhcp" } } # ...
字段 | 类型 | 描述 |
---|---|---|
|
|
IPAM 地址类型。值 |
动态 IP 地址(DHCP)分配配置示例
{ "ipam": { "type": "dhcp" } }
13.6.1.1.3. 使用 Whereabouts 进行动态 IP 地址分配配置
Whereabouts CNI 插件允许在不使用 DHCP 服务器的情况下动态地将 IP 地址分配给额外网络。
下表描述了使用 Whereabouts 进行动态 IP 地址分配的配置:
字段 | 类型 | 描述 |
---|---|---|
|
|
IPAM 地址类型。值是 |
|
| CIDR 表示法中的 IP 地址和范围。IP 地址是通过这个地址范围来分配的。 |
|
| 可选: CIDR 表示法中存在零或多个 IP 地址和范围的列表。包含在排除地址范围中的 IP 地址。 |
使用 Whereabouts 的动态 IP 地址分配配置示例
{ "ipam": { "type": "whereabouts", "range": "192.0.2.192/27", "exclude": [ "192.0.2.192/30", "192.0.2.196/32" ] } }