All Projects → liqotech → Liqo

liqotech / Liqo

Licence: apache-2.0
Building your endless Kubernetes ocean

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Liqo

Nats Server
High-Performance server for NATS.io, the cloud and edge native messaging system.
Stars: ✭ 10,223 (+5913.53%)
Mutual labels:  cloud-computing
Wakame Vdc
Datacenter Hypervisor - Open Source Cloud Computing / IaaS
Stars: ✭ 110 (-35.29%)
Mutual labels:  cloud-computing
Googlecomputeenginer
An R interface to the Google Cloud Compute API, for launching virtual machines
Stars: ✭ 132 (-22.35%)
Mutual labels:  cloud-computing
Computer Science Resources
A list of resources in different fields of Computer Science (multiple languages)
Stars: ✭ 1,316 (+674.12%)
Mutual labels:  cloud-computing
Python Scaleway
🐍 Python SDK to query Scaleway APIs.
Stars: ✭ 107 (-37.06%)
Mutual labels:  cloud-computing
Terraform
Terraform automation for Cloud
Stars: ✭ 121 (-28.82%)
Mutual labels:  cloud-computing
Cloudquery
cloudquery transforms your cloud infrastructure into SQL or Graph database for easy monitoring, governance and security.
Stars: ✭ 1,300 (+664.71%)
Mutual labels:  cloud-computing
Awesome Programming Presentations
Presentations that programmers should watch
Stars: ✭ 162 (-4.71%)
Mutual labels:  cloud-computing
Awesome Microservices
A curated list of Microservice Architecture related principles and technologies.
Stars: ✭ 10,642 (+6160%)
Mutual labels:  cloud-computing
Awesome Serverless
腾讯云 云函数 SCF / Serverless 的 100 种玩法,签到,打卡,图床,刷金币等各种应用集合。
Stars: ✭ 128 (-24.71%)
Mutual labels:  cloud-computing
Setup
My own front end web development set up, covering everything from operating system to analytics.
Stars: ✭ 93 (-45.29%)
Mutual labels:  cloud-computing
Cloud Game
Web-based Cloud Gaming service for Retro Game
Stars: ✭ 1,374 (+708.24%)
Mutual labels:  cloud-computing
Paas Profiles
Making Platform as a Service offerings comparable - Ecosystem profiles for portability matching.
Stars: ✭ 127 (-25.29%)
Mutual labels:  cloud-computing
Cloudsuite
A Benchmark Suite for Cloud Services.
Stars: ✭ 91 (-46.47%)
Mutual labels:  cloud-computing
Yrssf
一个分布式(p2p)云教学/云课堂/直播平台系统CMS,睿易派的开源替代品
Stars: ✭ 141 (-17.06%)
Mutual labels:  cloud-computing
Azurer
Family of packages for interacting with Azure from R
Stars: ✭ 91 (-46.47%)
Mutual labels:  cloud-computing
Cinema Microservice
Example of a cinema microservice
Stars: ✭ 1,616 (+850.59%)
Mutual labels:  cloud-computing
Pulumi Aws
An Amazon Web Services (AWS) Pulumi resource package, providing multi-language access to AWS
Stars: ✭ 169 (-0.59%)
Mutual labels:  cloud-computing
Dasync
Every developer deserves the right of creating microservices without using any framework 🤍
Stars: ✭ 154 (-9.41%)
Mutual labels:  cloud-computing
Analogsea
Digital Ocean R client
Stars: ✭ 128 (-24.71%)
Mutual labels:  cloud-computing



Liqo Logo

A Kubernetes platform about dynamic and decentralized multi-cluster


Explore the docs »

View Demo · Report Bug · Request Feature

About the project

Liqo is a platform to enable dynamic and decentralized resource sharing across Kubernetes clusters, either on-prem or managed. Liqo allows to run pods on a remote cluster seamlessly and without any modification of Kubernetes and the applications. With Liqo it is possible to extend the control plane of a Kubernetes cluster across the cluster's boundaries, making multi-cluster native and transparent: collapse an entire remote cluster to a virtual local node, by allowing workloads offloading and resource management compliant with the standard Kubernetes approach.



Table of Contents
  1. Main Features
  2. Quickstart
  3. Installation
  4. Roadmap
  5. Contributing
  6. Community
  7. License

Main features

  • Decentralized governance: peer-to-peer paradigm, without any centralized management entity.
  • Clusters discovery: leverage on three different ways to discover (and peer to) other clusters:
    • Manual configuration: through a custom API representing other clusters
    • DNS: automatic discovery through DNS records
    • LAN: automatic discovery of neighboring clusters available in the same LAN.
  • Transparent offloading: pods scheduled on the virtual node are offloaded to the remote cluster; they can be controlled by merely accessing the pod objects in the local one; the resources needed by the pods (services, endpoints, configmaps, etc.) are translated and replicated remotely. It allows inter-cluster pod-to-pod and pod-to-service communication.
  • Pod resilience: the offloaded pods' lifecycle is controlled by a remote replicaset.
  • Inter-cluster networking: the clusters inter-connection is implemented by a Wireguard tunnel, which ensure encryption and reliability.
  • CNI independence: compliance with many CNIs (Calico, Cilium, Flannel, etc.) even in heterogeneous scenarios (the two clusters can have different CNIs).

Quickstart

This quickstart lets you try Liqo in a playground environment built by two clusters in KinD.

Provision two KinD clusters.

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

Install Liqo on both clusters:

export KUBECONFIG=$KUBECONFIG_1
curl -L https://get.liqo.io | bash -s
export KUBECONFIG=$KUBECONFIG_2
curl -L https://get.liqo.io | bash -s

Wait that all containers are up and running. When a new virtual-kubelet pops out, a new node modeling the remote cluster is present and ready to receive pods. Check it out with:

kubectl get nodes

Use the resources

Create a new namespace and label it to tell Liqo that the pods created in that namespace are suitable for offloading in the remote cluster.

kubectl create namespace liqo-demo
kubectl label namespace liqo-demo liqo.io/enabled=true

Deploy the Google microservice Shop application.

kubectl apply -f https://get.liqo.io/app.yaml -n liqo-demo

You can observe that:

  • Your application is correctly working by exposing the application frontend port and later connecting with a browser to localhost:8000. To expose the pod port:
  kubectl port-forward -n liqo-demo service/frontend 8080:80
  • Your application is transparently deployed across two different clusters:
  kubectl get pods -n liqo-demo -o wide  

Installation

Liqo can be installed by using Helm. The configuration depends on the cluster type (K8s, K3s, managed) and the provider. Possible scenarios can be found here.

Once you identified your scenario, follow the instructions for the proper installation environment.

Roadmap

Planned features for the next release (v0.3, expected mid-July, 2021) are the following:

  • Support for deployments spanning across more than two clusters
  • Support for a more balanced scheduling mechanism to distribute jobs across clusters
  • Support for Amazon Elastic Kubernetes Service
  • Support for more-granular permission control over remote cluster resources

Contributing

All contributors are warmly welcome. If you want to become a new contributor, we are so happy!. Just, before doing it, read the repo's guidelines presented on our documentation website.

Community

To get involved with the Liqo community, join the slack channel.

notification Community Meeting
Liqo holds weekly community meeting on Monday, 5.30pm UTC (6.30 CET, 9.30am PST). To join the community meeting, follow this link. Convert to your timezone here.

License

Distributed under the Apache-2.0 License. See License for more information.

FOSSA Status

Liqo is a project kicked off at Polytechnic of Turin (Italy) and actively maintained with ❤️ by this open-source community.

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].