liqo

module
v0.0.0-...-5a253b8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2020 License: Apache-2.0

README

Liqo Logo

Liqo

Go Coverage Status Go Report Card Docker Pulls FOSSA Status

Liqo is a framework to enable dynamic sharing across Kubernetes Clusters. You can run your pods on a remote cluster seamlessly, without any modification (Kubernetes or your application).

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 cluster available nearby.

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, whenever needed, even automatically. Cluster auto-discovery can further simplify this process.

Features

  • Dynamic discovery of clusters in LAN
  • Seamless pod execution on remote cluster,
  • Seamless reconciliation on remote clusters of K8s objects (i.e. configmaps, secrets, services, endpoints)

Quickstart

Liqo can be installed via Helm. The parameters of the home cluster required by Liqo to start should be automatically discovered by the Liqo installer (through proper kubeadm calls).

curl https://raw.githubusercontent.com/LiqoTech/liqo/master/install.sh | bash

For more details about Liqo installation

Architecture

Liqo relies on several components:

  • Liqo Virtual Kubelet: Based on Virtual Kubelet project, the VK is responsible to "masquerade" a foreign Kubernetes cluster.
  • Advertisement Operator/Broadcaster: Those components embed the logic to advertise/accept resources from partner clusters and spawn new virtual kubelet instances
  • Liqonet Operators: Those operators are responsible to establish Pod-to-Pod and Pod-to-Service connection across partner clusters.

...and some others. Check out the architecture Documentation

License

FOSSA Status

Directories

Path Synopsis
api
config/v1alpha1
Package v1 contains API Schema definitions for the policy v1 API group +kubebuilder:object:generate=true +groupName=config.liqo.io
Package v1 contains API Schema definitions for the policy v1 API group +kubebuilder:object:generate=true +groupName=config.liqo.io
discovery/v1alpha1
Package v1alpha1 contains API Schema definitions for the discovery v1alpha1 API group +kubebuilder:object:generate=true +groupName=discovery.liqo.io
Package v1alpha1 contains API Schema definitions for the discovery v1alpha1 API group +kubebuilder:object:generate=true +groupName=discovery.liqo.io
net/v1alpha1
Package v1alpha1 contains API Schema definitions for the liqonetliqoio v1alpha1 API group +kubebuilder:object:generate=true +groupName=net.liqo.io
Package v1alpha1 contains API Schema definitions for the liqonetliqoio v1alpha1 API group +kubebuilder:object:generate=true +groupName=net.liqo.io
scheduling/v1alpha1
Package v1 contains API Schema definitions for the scheduling v1alpha1 API group +kubebuilder:object:generate=true +groupName=scheduling.liqo.io
Package v1 contains API Schema definitions for the scheduling v1alpha1 API group +kubebuilder:object:generate=true +groupName=scheduling.liqo.io
sharing/v1alpha1
Package v1alpha1 contains API Schema definitions for the sharing v1alpha1 API group +kubebuilder:object:generate=true +groupName=sharing.liqo.io
Package v1alpha1 contains API Schema definitions for the sharing v1alpha1 API group +kubebuilder:object:generate=true +groupName=sharing.liqo.io
virtualKubelet/v1alpha1
Package v1 contains API Schema definitions for the virtualkubelet v1alpha1 API group +kubebuilder:object:generate=true +groupName=virtualkubelet.liqo.io
Package v1 contains API Schema definitions for the virtualkubelet v1alpha1 API group +kubebuilder:object:generate=true +groupName=virtualkubelet.liqo.io
cmd
internal
errdefs
Package errdefs defines the error types that are understood by other packages in this project.
Package errdefs defines the error types that are understood by other packages in this project.
liqonet
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
log
Package log defines the interfaces used for logging in virtual-kubelet.
Package log defines the interfaces used for logging in virtual-kubelet.
log/logrus
Package logrus implements a github.com/netgroup-polito/liqo/internal/log.Logger using Logrus as a backend You can use this by creating a logrus logger and calling `FromLogrus(entry)`.
Package logrus implements a github.com/netgroup-polito/liqo/internal/log.Logger using Logrus as a backend You can use this by creating a logrus logger and calling `FromLogrus(entry)`.
manager
Package manager provides access to kubernetes resources for providers.
Package manager provides access to kubernetes resources for providers.
node
Package node implements the components for operating a node in Kubernetes.
Package node implements the components for operating a node in Kubernetes.
node/api
Package api implements HTTP handlers for handling requests that the kubelet would normally implement, such as pod logs, exec, etc.
Package api implements HTTP handlers for handling requests that the kubelet would normally implement, such as pod logs, exec, etc.
trace
Package trace abstracts virtual-kubelet's tracing capabilities into a set of interfaces.
Package trace abstracts virtual-kubelet's tracing capabilities into a set of interfaces.
trace/opencensus
Package opencensus implements a github.com/netgroup-polito/liqo/internal/trace.Tracer using opencensus as a backend.
Package opencensus implements a github.com/netgroup-polito/liqo/internal/trace.Tracer using opencensus as a backend.
tray-agent/agent/client
package client contains the data types and functions that Liqo Tray-Agent exploits in order to access user's cluster and perform operations on Liqo CRDs
package client contains the data types and functions that Liqo Tray-Agent exploits in order to access user's cluster and perform operations on Liqo CRDs
tray-agent/agent/logic
Package logic provides the functions implementing Liqo Tray Agent capabilities.
Package logic provides the functions implementing Liqo Tray Agent capabilities.
tray-agent/app-indicator
package app_indicator provides API to install a system tray Indicator and bind it to a menu.
package app_indicator provides API to install a system tray Indicator and bind it to a menu.
tray-agent/icon
This package provides a set of icons that can be displayed in the system tray bar using the internal/tray-agent/app-indicator/Indicator type.
This package provides a set of icons that can be displayed in the system tray bar using the internal/tray-agent/app-indicator/Indicator type.
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL