linux 怎么查 sr-iov
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 怎么查 sr-iov相关的知识,希望对你有一定的参考价值。
参考技术A 不支持 576 580 350 这些是1000m支持的。 10G 目前82598不支持其他 的应该都支使用 SR-IOV 隔离 pod 流量
【中文标题】使用 SR-IOV 隔离 pod 流量【英文标题】:Segregate pod traffic with SR-IOV 【发布时间】:2021-10-06 23:30:51 【问题描述】:我了解,SR-IOV 使物理网卡可以被“视为”多个设备并单独使用。 (参考here。)虽然下面的例子来自Charmed Kubernetes,但它代表了在pod中使用SR-IOV的一般机制。
我的问题如下。如果还有另一个 pod
定义(类似于下面的定义),我可以让那个 pod 专门使用特定的“设备”吗?相反,另一个pod
定义是否会与之前定义的pod
共享“设备”?或者,SR-IOV 是否仅适用于多宿主吊舱?
apiVersion: v1
kind: Pod
metadata:
name: ubuntu
namespace: default
annotations:
k8s.v1.cni.cncf.io/networks: sriov
spec:
containers:
- name: ubuntu
image: ubuntu:20.04
command: ['sleep', '3600']
resources:
requests:
intel.com/intel_sriov_netdevice: '1'
limits:
intel.com/intel_sriov_netdevice: '1'
【问题讨论】:
【参考方案1】:请参阅SR-IOV CNI page,尤其是。 Parameters 和 Runtime Configuration 部分。
CNI 插件通常需要为其管理的 pod 接口处理 MAC 和 IP 地址分配。对于 SR-IOV CNI,pod 接口的 MAC 地址,即发出的数据包中的源 MAC 地址,就是 pod 接口绑定的 NIC 中的 PCI VF 的 MAC 地址。因此,SR-IOV CNI 允许通过以下两种方式之一分配 MAC 地址:
在 SR-IOV CNI 的配置文件中,集群管理员可以根据其 PCI 总线设备功能地址为特定 VF 指定 MAC 地址。见Parameters。 在 pod 元数据中,K8s API 用户可以指定网络和 MAC 地址作为注解。见Runtime Configuration。 SR-IOV CNI 将使用此 MAC 配置所选 VF(如果它是有效 MAC)。我可以让那个 pod 专门使用特定的“设备”吗?
定义术语“设备”。您可以在 pod 元数据中选择一个 MAC,该 MAC 将应用于选择的任何 VF。我不认为你可以选择 VF,因为这违反了让编排器(Kubernetes)管理集群中的资源的原则。
相反,其他 pod 定义是否会与之前定义的 pod 共享“设备”?
如果“设备”表示一个 VF,则它不能在多个 pod 之间共享。它作为 PCI 设备传递到特定 pod 中的特定容器。该 VF 的所有 PCI 交互——内存映射 IO(用于寄存器读/写)、DMA 和中断——一次只能映射到一个用户空间域(在此上下文中为容器)。
或者,SR-IOV 是否仅适用于多宿主吊舱?
多宿主 pod 意味着该 pod 具有多个接口。任何使用 SR-IOV 的 pod 都必须是多宿主的,因为您将首先使用 Multus CNI 创建多个接口,主接口位于您的默认 CNI 上,另一个接口位于 SR-IOV CNI 上。
【讨论】:
以上是关于linux 怎么查 sr-iov的主要内容,如果未能解决你的问题,请参考以下文章