clusterlink-net / clusterlink

A Gateway for connecting application services in different domains, networks, and cloud infrastructures
https://clusterlink.net
Other
17 stars 18 forks source link
gateway multicluster networking

ClusterLink

ClusterLink simplifies the connection between application services that are located in different domains, networks, and cloud infrastructures.

Disclaimers and warnings

This is an incomplete work in progress, provided in the interest of sharing experience and gathering feedback. The code is pre-alpha quality right now. This means that it shouldn't be used in production at all.

For more details, visit our website.

ClusterLink in a nutshell

ClusterLink deploys a gateway into each location, facilitating the configuration and access to multi-cloud services.

The ClusterLink gateway contains the following components:

  1. Control Plane is responsible for maintaining the internal state of the gateway, for all the communications with the remote peer gateways by means of the ClusterLink CP Protocol, and for configuring the local data plane to forward user traffic according to policies. Part of the control plane is the policy engine that can also apply network policies (ACL, load-balancing, etc.)
  2. Data Plane responds to user connection requests, both local and remote, initiates policy resolution in the CP, and maintains the established connections. ClusterLink DP relies upon standard protocols and avoids redundant encapsulations, presenting itself as a K8s service inside the cluster and as a regular HTTP endpoint from outside the cluster, requiring only a single open port (HTTP/443) and leveraging HTTP endpoints for connection multiplexing.

alt text

ClusterLink leverages the Kubernetes API using CRDs to configure cross-cluster communication. ClusterLink management is based on the following key concepts:

For further information, please refer to the concepts section on the ClusterLink website.

Getting started

ClusterLink can be set up and run on different environments: local environment (Kind), Bare-metal environment, or cloud environment. For more details, refer to the Getting Started Guide.

Additionally, here are some other documents you may find helpful:

Contributing

Our project welcomes contributions from any member of our community. To get started contributing, please see our Contributor Guide.

Scope

In Scope

ClusterLink is intended to connect services and applications running in different clusters. As such, the project will implement or has implemented:

Out of Scope

ClusterLink will be used in a cloud native environment with other tools. The following specific functionality will therefore not be incorporated:

Communications