Code Monkey home page Code Monkey logo

nuage-cni's Introduction

nuage-cni

The goal of nuage-cni is to provide Nuage Container Network Interface (CNI) plugin and allow launched containers/pods to be attached to and detached from Nuage overlay networks. For more information on CNI refer to https://github.com/containernetworking/cni

Nuage CNI plugin modes

The Nuage CNI plugin functions in two modes:

  • CNI mode

  • Audit Daemon mode

CNI Mode

In the CNI mode, the Nuage CNI plugin gets invoked by network/cni isolator when a container gets launched or deleted.

  • When container/pod gets launched, the Nuage CNI Plugin gets invoked. It creates a container port in VRS and resolves that container with an IP address from Nuage defined VSD overlay network.

  • When container/pod gets deleted, the Nuage CNI Plugin gets invoked. It deletes the container port entry from VRS thereby detaching the container from Nuage defined VSD overlay network.

Audit Daemon Mode

In Audit Daemon mode, the Nuage CNI plugin also operates as a background systemd service (nuage-cni) on each agent VRS node and periodically audits agent VRS nodes to make sure the ports in VRS correspond to the currently functional containers/pods. If there are any stale VRS ports which do not correspond to any currently running containers/pods, the nuage-cni service deletes those ports from VRS. nuage-cni service will be started by default on all agent VRS nodes as a part of the CNI plugin installation. To stop the audit daemon, execute systemctl stop nuage-cni on the agent VRS node.

Build Nuage CNI plugin

Steps to generate CNI plugin binaries

  • Clone https://github.com/nuagenetworks/nuage-cni.git to your $GOPATH/src/github.com/nuagenetworks/ folder on your host machine

  • Execute "make" from "nuage-cni" folder. Following binaries will be generated under "nuage-cni" folder:

  • nuage-cni-mesos

  • nuage-cni-k8s

  • nuage-cni-openshift

Steps to generate CNI plugin rpm packages

  • Clone https://github.com/nuagenetworks/nuage-cni.git to your $GOPATH/src/github.com/nuagenetworks/ folder on your host machine

  • Set the version required for the rpm: export version=desired rpm version

  • Update the desired rpm version in rpmbuild spec files for Mesos, k8s and Openshift

  • Then run ./scripts/buildRPM.sh which will generate RPMs for Nuage CNI plugin for Mesos/K8S/OSE under rpmbuild directory on your host

Steps to generate Nuage CNI docker image for CNI daemon sets install

  • Clone https://github.com/nuagenetworks/nuage-cni.git to your $GOPATH/src/github.com/nuagenetworks/ folder on your host machine

  • Change directory to nuage-cni folder

  • Set desired image version for your CNI docker image using export version=<image-version> eg: export version=v5.1.2

  • Then run the build script ./scripts/build-nuage-cni-docker.sh

  • At the end of this script execution nuage-cni-docker-<image-version>.tar will be generated under nuage-cni folder

  • To load the CNI docker image on your slave nodes, copy the nuage-cni-docker-<image-version>.tar file generated above to your slave nodes and do docker load -i nuage-cni-docker-<image-version>.tar

Automated Nuage CNI plugin installation

  • Please refer to the Nuage VSP Mesos Integration Guide for detailed steps on Nuage Mesos CNI plugin frameworks installation on Mesos clusters.

  • Please refer to the Nuage VSP OpenShift Integration Guide for detailed steps on Nuage Openshift CNI plugin Ansible installation on Openshift clusters (HA and single master)

  • Please refer to the Nuage VSP Kubernetes Integration Guide for detailed steps on Nuage Kubernetes CNI plugin Ansible installation on Kubernetes setups

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.