当前位置: 首页 > 软件库 > 云计算 > 云原生 >

multus-cni

授权协议 Apache-2.0 License
开发语言 Google Go
所属分类 云计算、 云原生
软件类型 开源软件
地区 不详
投 递 者 姬奇思
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Multus-CNI

multus-cni Logo

BuildTest

Multus CNI enables attaching multiple network interfaces to pods in Kubernetes.

How it works

Multus CNI is a container network interface (CNI) plugin for Kubernetes that enables attaching multiple network interfaces to pods. Typically, in Kubernetes each pod only has one network interface (apart from a loopback) -- with Multus you can create a multi-homed pod that has multiple interfaces. This is accomplished by Multus acting as a "meta-plugin", a CNI plugin that can call multiple other CNI plugins.

Multus CNI follows the Kubernetes Network Custom Resource Definition De-facto Standard to provide a standardized method by which to specify the configurations for additional network interfaces. This standard is put forward by the Kubernetes Network Plumbing Working Group.

Multus is one of the projects in the Baremetal Container Experience kit

Multi-Homed pod

Here's an illustration of the network interfaces attached to a pod, as provisioned by Multus CNI. The diagram shows the pod with three interfaces: eth0, net0 and net1. eth0 connects kubernetes cluster network to connect with kubernetes server/services (e.g. kubernetes api-server, kubelet and so on). net0 and net1 are additional network attachments and connect to other networks by using other CNI plugins (e.g. vlan/vxlan/ptp).

Quickstart Installation Guide

The quickstart installation method for Multus requires that you have first installed a Kubernetes CNI plugin to serve as your pod-to-pod network, which we refer to as your "default network" (a network interface that every pod will be created with). Each network attachment created by Multus will be in addition to this default network interface. For more detail on installing a default network CNI plugins, refer to our quick-start guide.

Clone this GitHub repository, we'll apply a daemonset which installs Multus using to kubectl from this repo. From the root directory of the clone, apply the daemonset YAML file:

$ cat ./deployments/multus-daemonset.yml | kubectl apply -f -

This will configure your systems to be ready to use Multus CNI, but, to get started with adding additional interfaces to your pods, refer to our complete quick-start guide

Additional installation Options

  • Install via daemonset using the quick-start guide, above.
  • Download binaries from release page
  • By Docker image from Docker Hub
  • Or, roll-your-own and build from source

Comprehensive Documentation

Contact Us

For any questions about Multus CNI, feel free to ask a question in #general in the NPWG Slack, or open up a GitHub issue. Request an invite to NPWG slack here.

  •         众所周知,Kubernetes 支持单一网络接口!Kubernetes网络模型的实现,需要借助一些具有独特的多网络特性的网络方法来实现多个网络接口。          您可以将 Multus CNI 视为在 Kubernetes 中实现多网络接口的方法。基本上,Multus CNI 是一个 Kubernetes CNI 插件,可以在 Kubernetes 中创建额外的 pod 网络

  • 已发表的技术专栏 0  grpc-go、protobuf、multus-cni 技术专栏 总入口 1  grpc-go 源码剖析与实战  文章目录 2  Protobuf介绍与实战 图文专栏  文章目录 3  multus-cni   文章目录(k8s多网络实现方案) 4  grpc、oauth2、openssl、双向认证、单向认证等专栏文章目录 推荐使用Google Chrome浏览器进行浏览

  • 环境 k8s 版本: v1.22.3 SRIOV 网卡:E810 组件功能 Multus Plugin: 多网卡支持。 SRIOV-Network-Device Plugin:通过规则实现SR-IOV的VF自动选取。 SRIOV CNI:具体干活的,把VF挂载到POD里面,设置MAC,VLAN等等。 SRIOV CNI 安装 git clone https://github.com/intel/s

  • 详细的源码介绍请见: Kubernetes插件:Intel sriov-cni插件简介/修改         githubBlog 配置需求: Go1.7+ 网卡支持SR-IOV 物理主机开启SR-IOV功能(可登录主机通过racadm getbios.integratedDevices.sriovGlobalEnable查看) 安装步骤: 1、下载源码: git clone https://gi

 相关资料
  • sudo cp/etc/kubernetes/admin.conf$home/sudo chown$(id-u):$(id-g)$home/admin.conf导出kubeconfig=$home/admin.conf 设置组织 kubectl apply--文件名https://git.io/weave-kube-1.6 验证主模式是否已就绪,以及dns吊舱是否正在运行。 没有错误的连接节点。

  • 下面是我用来为k8s启用calico CNI的清单文件,吊舱能够通过ipv4通信,但我无法使用ipv6,k8s版本1.14和calico版本3.11到达外部,我是否缺少一些设置, 在“sysctl-w net.ipv6.conf.all.forwarding=1”的主机上启用转发

  • 我运行的是vanilla EKS Kubernetes版本1.12。 我已经使用CNI Genie允许自定义选择的CNI,豆荚使用时启动,我已经安装了标准的Calico CNI设置。 但是,如果一个吊舱移动到不同的工作节点,那么它们之间的网络在集群内就不能工作。 我检查了calico auto配置的worker节点上的路由表,在我看来这是合乎逻辑的。 下面是我在所有名称空间中的广泛的pod列表:

  • 客户端版本:version.info{Major:“1”,Minor:“20”,GitVersion:“V1.20.1”,GitCommit:“C4D752765B3BBBA2237BF87CF0B1C2E307844666”,GitTreest:“Clean”,BuildDate:“2020-12-19T11:45:27Z”,GoVersion:“GO1.15.5”,编译器:“GC”,平台:“L

  • 它抱怨资源版本太旧。如何升级版本?