Coil

CNI plugin for Kubernetes designed for scalability and extensibility
Alternatives To Coil
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Cilium15,5531523 minutes ago547September 14, 20221,167apache-2.0Go
eBPF-based Networking, Security, and Observability
Cni4,8824672 days ago85July 27, 2022118apache-2.0Go
Container Network Interface - networking for Linux containers
Amazon Vpc Cni K8s2,05322020 hours ago97September 12, 202239apache-2.0Go
Networking plugin repository for pod networking in Kubernetes using Elastic Network Interfaces on AWS
Multus Cni1,837512 days ago39July 16, 202130apache-2.0Go
A CNI meta-plugin for multi-homed pods in Kubernetes
Kilo1,748
a month ago33April 21, 202141apache-2.0Go
Kilo is a multi-cloud network overlay built on WireGuard and designed for Kubernetes (k8s + wg = kg)
Kube Ovn1,58915 hours ago83July 13, 202282apache-2.0Go
A Bridge between SDN and Cloud Native (Project under CNCF)
Antrea1,4802an hour ago129July 14, 2022155apache-2.0Go
Kubernetes networking based on Open vSwitch
Kiam1,131
4 months ago1July 07, 2021121apache-2.0Go
Integrate AWS IAM with Kubernetes
Kismatic807
4 years ago89apache-2.0Go
Kismatic Enterprise Toolkit: Fully-Automated, Production-Grade Kubernetes Operations
Fabedge481
6 days ago4September 26, 20222apache-2.0Go
Secure Edge Networking Solution Based On Kubernetes
Alternatives To Coil
Select To Compare


Alternative Project Comparisons
Readme

GitHub release CI PkgGoDev Go Report Card

Coil

Coil is a CNI-based network plugin for Kubernetes.

Coil is designed with respect to the UNIX philosophy. You can combine Coil with any routing software and/or any network policy implementation.

Coil allows to define multiple IP address pools. You can define a pool of global IPv4 addresses for a small number of pods and another pool of private IPv4 addresses for the remaining pods.

There are blog articles about Coil: https://blog.kintone.io/archive/category/Coil

Status

Version 2 is generally available (GA). It conforms to CNI spec 0.4.0.

Dependencies

  • Kubernetes Version: 1.24, 1.25, 1.26

    • Other versions are likely to work, but not tested.
  • (Optional) Routing software

    • Coil has a simple routing software for flat L2 networks.
    • If your network is not flat, use BIRD or similar software to advertise the routes.

Features

  • Address pools

    Coil can have multiple pools of IP addresses for different purposes. By setting a special annotation to a namespace, you can specify a pool for the pods in that namespace.

  • IPv4/IPv6 dual stack

    In addition to IPv4-only and IPv6-only stacks, Coil can define dual stack address pools.

  • Running with any routing software

    Coil provides a simple router for clusters where all the nodes are in a flat L2 network. This router, called coil-router, is optional.

    For more complex networks, Coil exports routing information to an unused kernel routing table. By importing the routes from the table, any routing software can advertise them.

  • On-demand NAT for egress traffics

    Coil can implement SNAT on Kubernetes. You can define SNAT routers for external networks as many as you want.

    Only selected pods can communicate with external networks via SNAT routers.

  • Auto MTU configuration

    Coil detects the optimal MTU and configures MTU for container networks.

Refer to the design document for more information on these features.

Quick start

Coil can run on kind clusters using Docker.

Prepare a recent Ubuntu and install Docker and Go, then run:

$ cd v2
$ make certs
$ make image

$ cd e2e
$ make start
$ make install-coil
$ ../bin/kubectl apply -f manifests/default_pool.yaml

Now you can play with Coil.

Usage examples

Project Neco uses Coil with these software:

Coil can work with Cilium through its generic veth chaining feature.

Documentation

Installation procedures are described in docs/setup.md.

The user manual is docs/usage.md.

docs directory contains other documents about designs and specifications.

Upgrade from v1

See coil-migrator.md

License

Coil is licensed under the Apache License, Version 2.0.

Popular Kubernetes Projects
Popular Cni Projects
Popular Virtualization Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Go
Network
Kubernetes
Routing
Nats
Cni