Building your endless Kubernetes ocean

What is Liqo? Get Liqo!

What is Liqo?

Seamless, Dynamic and Secure Resource Sharing

Liqo is an open source project started at Politecnico of Turin that allows Kubernetes to seamlessly and securely share resources and services, so you can run your tasks on any other available cluster.

Thanks to the support for K3s, also single machines can participate, creating dynamic, opportunistic data centers that include commodity desktop computers and laptops as well.

Liqo leverages the same highly successful “peering” model of the Internet, without any central point of control. New peering relationships can be established dynamically, using auto-discovery.

Each cluster retains full control of its infrastructure, deciding what to share, how much, with whom, using ad-hoc policies. For security we leverage all the features available in Kubernetes, (RBAC, PSP, CRI).

With Liqo, there is no disruption neither in the common Kubernetes administration tasks nor from the user perspective because everything happens as your cluster gets bigger. And, for Liqo admin tasks, a dedicated CLI tool will bring you to your objective in a flash.

Liqo by applying the sharing economy principles, is great for the environment.

Get Started!

Liqo 0.4 is out in the wild!

The Liqo team is proud to announce the fourth major release that includes:

  • Reduced infrastructure requirements for easier peering. All the Liqo control plane traffic can flow through the Liqo-managed VPN tunnel already established between clusters at the beginning of the peering process. This leads to reduced infrastructure-level requirements and improved security, avoiding the necessity to expose the API Server on the public Internet, while supporting clusters behind NATs and/or firewalls (e.g., at the edge). The entire configuration is supported by a brand new liqoctl connect command.
  • Introduce the support for cross-cluster persistent storage. Liqo is able to offload workloads that require persistent volumes, leveraging a custom virtual storage class. It abstracts the creation of the real PVCs in the remote clusters, and it ensures that mounting pods will be scheduled in the appropriate location. Additionally, liqoctl offers the possibility to easily move these volumes to a different cluster, hence facilitating stateful pod migration across clusters.
  • Improved UX. Forget about long, hard-to-remember alphanumeric identifiers for remote clusters. A simplified naming system allows to easily correlate nodes and resources with the underlying clusters. Furthermore, new liqoctl commands simplify the interaction with Liqo, providing at the same time richer feedback to the user.

Take a look at the source code on GitHub.

Curious about our next steps? Check our Roadmap!

Or try it on KinD:

Create two K8s clusters:

source <(curl -L https://get.liqo.io/clusters.sh)

Install Liqoctl:

OS=linux
ARCH=amd64
curl --fail -LSO "https://get.liqo.io/liqoctl-${OS}-${ARCH}" && \
chmod +x "liqoctl-${OS}-${ARCH}" && \
sudo mv "liqoctl-${OS}-${ARCH}" /usr/local/bin/liqoctl

Install Liqo on both clusters:

export KUBECONFIG=$KUBECONFIG_1
liqoctl install kind --generate-name
export KUBECONFIG=$KUBECONFIG_2
liqoctl install kind --generate-name

Done!

Now you can play with Liqo by deploying a microservice-based demo application:

export KUBECONFIG=$KUBECONFIG_1
kubectl create namespace liqo-demo
liqoctl offload namespace liqo-demo
kubectl apply -f https://get.liqo.io/app.yaml -n liqo-demo

You can see that pods are scattered across local and foreign nodes (e.g., cluster1-worker or liqo-*) by typing kubectl get pods -n liqo-demo -o wide. For a more complete example, please refer to the "Play with a micro-service application" in the Liqo tutorial.

Features

Share and save

Share and save

Share your resources. Use others’ if you want.

Unlimited

Unlimited

Harness the infinity of the ocean. Add your drop to extend it.

Secure

Secure

Control what you share. Choose who you connect with.

Industry-standard

Industry-standard

Based on Vanilla Kubernetes. Nothing more, nothing less.

Dynamic

Dynamic

Your needs change. Your resources follow, instantly.

Simple

Simple

Simple resource discovery. Simple resource usage.

The Story Behind Liqo

The idea for Liqo grew from a struggle we had at our University

We had plenty of powerful computers in our labs, but there were always some students complaining about their laptops not being powerful enough to run their jobs.

Our idea was straightforward: let’s transform our labs, including student laptops, into opportunistic data centers, so that heavy tasks can always be executed on the best resource among those available.

However, students didn’t want to give up the control of their laptops nor compromise in security. Here is where Liqo comes in: a way to share resources and services, while each user retains the full control on his/her box, whether it is the lab IT admin or the student, deciding what to share, how much, with whom. Controlled, secure sharing.

While working on this project, we realized that the capability to share Kubernetes clusters has much greater implications. Liqo can not only solve our student’s problems but also become the enabler for applications that rely on the democratization of edge computing such as Autonomous driving, IoT, Industry 4.0, Smart cities.

In fact, Liqo allows to run services on multiple clusters without even having to provision, build and operate your own distributed edge infrastructure. This project could optimize utilization of currently available resources and kickstart a first scale up of edge computing.

The Liqo name

Liqo stands for Liquid Computing: a new form of computing in which we do not care where our task is executed. In fact, do you care where your application is executed? Likely not, as long as your application runs securely and with the quality you expect.

With Liquid Computing, your app will be free to float in an infinite Kubernetes ocean, made by people who share their resources and services. You can focus on your application; the liquid infrastructure will take care of executing it at its best.

Liqo pronunciation stems from the beginning of li-quid co-mputing, hence li-co.

The LiqoErs

Liqo is a project started by a group of passionate computer engineers from Polytechnic of Turin, Italy.

We truly believe in open source and welcome contributions from anyone.

Get involved

Take a look at our GitHub repository for documentation, roadmap, feature requests, open issues, and more.

Get in touch

Shoot us an email, we’ll get back to you immediately!

Follow Liqo

Stay tuned on Liqo by following our Twitter Profile or “Liqo Announces” Mailing List!

Contribute

Join our Slack workspace and drop us a message.

Contact Us

Contact details

For more information, feature requests, possible customizations, or just to visit us, here are our contact details.