k8snetworkplumbingwg/multus-cni

A CNI meta-plugin for multi-homed pods in Kubernetes

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 43 minutes ago
Added to GitGenius on June 12th, 2025
Created on December 13th, 2016
Open Issues & Pull Requests: 24 (+0)
Number of forks: 674
Total Stargazers: 2,936 (+0)
Total Subscribers: 63 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 13.8 days
Mean response time: 168.1 days
90th percentile: 746.8 days
Tracked items: 98

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 9% of issues opened in the past year have been closed. Three people close 53% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 9
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 49 days
Stale 30+ days: 6
Stale 90+ days: 0

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Stale (180)
  • help wanted (26)
  • enhancement (19)
  • bug (17)
  • question (7)
  • readme-update (4)
  • triaged (4)
  • good-first-issue (2)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Multus-CNI is a meta-plugin for the Container Network Interface that enables Kubernetes pods to attach multiple network interfaces simultaneously. Written in Go, it addresses a fundamental limitation in standard Kubernetes networking where each pod typically has only a single network interface. By acting as a meta-plugin that orchestrates calls to other CNI plugins, Multus allows the creation of multi-homed pods with multiple interfaces, each capable of connecting to different networks.

The project implements the Kubernetes Network Custom Resource Definition De-facto Standard, providing a standardized approach for specifying configurations of additional network interfaces. This standard was developed by the Kubernetes Network Plumbing Working Group, which maintains this repository. The architecture allows a pod to have a primary interface (eth0) connecting to the Kubernetes cluster network for communication with core services like the API server and kubelet, while additional interfaces (such as net0 and net1) can connect to other networks using various CNI plugins including VLAN, VXLAN, and point-to-point implementations.

A significant architectural evolution occurred with the multus 4.0 release, which introduced a thick plugin deployment model alongside the original thin plugin approach. The thick plugin uses a client-server style architecture consisting of two binaries: multus-daemon and multus-shim CNI plugin. The multus-daemon runs as a local agent on all nodes and provides additional capabilities such as metrics collection that were unavailable in the thin plugin deployment. This architectural choice involves a resource consumption tradeoff, with the thick plugin recommended for most environments while the thin plugin remains available for resource-constrained deployments.

Installation flexibility is a core feature of the project, with multiple deployment options available. Users can apply a daemonset using kubectl for quick setup, download pre-built binaries from the release page, use Docker images from the GitHub Container Registry, or build from source. The project includes comprehensive documentation covering usage patterns, quick-start guides, configuration options, development information, and thick plugin specifics.

Community engagement around Multus-CNI shows moderate activity levels according to GitGenius tracking data. The repository shares contributors with major projects including microsoft/vscode, microsoft/typescript, and rust-lang/rust, indicating cross-project involvement from its maintainers.

Multus-CNI is positioned as part of Intel's Baremetal Container Experience kit and serves use cases requiring containerized virtual network functions and multi-network pod deployments in Kubernetes environments.