All Projects → nmstate → Kubernetes Nmstate

nmstate / Kubernetes Nmstate

Licence: gpl-2.0
Declarative node network configuration driven through Kubernetes API.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Kubernetes Nmstate

Awesome Scalability Toolbox
My opinionated list of products and tools used for high-scalability projects
Stars: ✭ 34 (-26.09%)
Mutual labels:  networking
Bond Cni
Bond-cni is for fail-over and high availability of networking in cloudnative orchestration
Stars: ✭ 36 (-21.74%)
Mutual labels:  networking
Ineter
Fast Java library for working with IP addresses, ranges, and subnets
Stars: ✭ 39 (-15.22%)
Mutual labels:  networking
Miniupnp
UPnP IGD implementation
Stars: ✭ 974 (+2017.39%)
Mutual labels:  networking
Xmnetworking
A lightweight but powerful network library with simplified and expressive syntax based on AFNetworking.
Stars: ✭ 980 (+2030.43%)
Mutual labels:  networking
Openwisp Monitoring
Network monitoring system written in Python and Django, designed to be extensible, programmable, scalable and easy to use by end users: once the system is configured, monitoring checks, alerts and metric collection happens automatically.
Stars: ✭ 37 (-19.57%)
Mutual labels:  networking
Carrot
🥕 Build multi-device AR applications
Stars: ✭ 32 (-30.43%)
Mutual labels:  networking
Uvloop
Ultra fast asyncio event loop.
Stars: ✭ 8,246 (+17826.09%)
Mutual labels:  networking
Xdp
Package xdp allows one to use XDP sockets from the Go programming language.
Stars: ✭ 36 (-21.74%)
Mutual labels:  networking
Dratini
Dratini is a neat network abstraction layer.
Stars: ✭ 38 (-17.39%)
Mutual labels:  networking
Androidnetworktools
Set of useful android network tools
Stars: ✭ 978 (+2026.09%)
Mutual labels:  networking
Anette
Simple haxe network library
Stars: ✭ 35 (-23.91%)
Mutual labels:  networking
Clusteredbigcache
golang bigcache with clustering as a library.
Stars: ✭ 37 (-19.57%)
Mutual labels:  networking
Verwalter
A tool which manages cluster of services
Stars: ✭ 34 (-26.09%)
Mutual labels:  networking
Objecttransport
Send and Receive objects over TCP or UDP
Stars: ✭ 39 (-15.22%)
Mutual labels:  networking
Network Programming
Small Projects on Socket Programming, Website Scanning, Wireless & Network Security
Stars: ✭ 33 (-28.26%)
Mutual labels:  networking
Sst Elements
SST Architectural Simulation Components and Libraries
Stars: ✭ 36 (-21.74%)
Mutual labels:  networking
Cilium
eBPF-based Networking, Security, and Observability
Stars: ✭ 10,256 (+22195.65%)
Mutual labels:  networking
Dknetworking
基于 AFNetworking + YYCache 的二次封装,支持缓存策略的网络请求框架
Stars: ✭ 41 (-10.87%)
Mutual labels:  networking
Volleyplus
🏐 Volley library : make everything faster . Its an improvements for Volley by Google for Android https://android.googlesource.com/platform/frameworks/volley
Stars: ✭ 986 (+2043.48%)
Mutual labels:  networking

kubernetes-nmstate

[keɪ ɛn ɛm steɪt] Declarative node network configuration driven through Kubernetes API.

How it works

We use nmstate to perform state driven network configuration on cluster nodes and to report back their current state. Both the configuration and reporting is controlled via Kubernetes objects.

apiVersion: nmstate.io/v1beta1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: br1-eth0
spec:
  desiredState:
    interfaces:
    - name: br1
      type: linux-bridge
      state: up
      ipv4:
        dhcp: true
        enabled: true
      bridge:
        port:
        - name: eth0

The only external dependency is NetworkManager running on nodes. See more details in Compatibility documentation.

Deployment and Usage

You can choose to deploy this operator on a local virtualized cluster or on your arbitrary cluster.

Following comprehensive 101 series is the best place to start learning about all the features:

  1. Reporting - observe the current state of network on cluster nodes.
  2. Configuring - configure networks and observe the progress.
  3. Troubleshooting - see what's wrong if a configuration fails.

These example manifests should serve as reference on how to configure various configuration options:

The "Why"

With hybrid clouds, node-networking setup is becoming even more challenging. Different payloads have different networking requirements, and not everything can be satisfied as overlays on top of the main interface of the node (e.g. SR-IOV, L2, other L2). The Container Network Interface (CNI) standard enables different solutions for connecting networks on the node with pods. Some of them are part of the standard, and there are others that extend support for Open vSwitch bridges, SR-IOV, and more...

However, in all of these cases, the node must have the networks setup before the pod is scheduled. Setting up the networks in a dynamic and heterogenous cluster, with dynamic networking requirements, is a challenge by itself - and this is what this project is addressing.

Development and Contributing

Contributions are welcome! Find details about the project's design and development workflow in the developer guide.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].