Skip to content

Commit 71e8181

Browse files
aleolicheina97
authored andcommitted
docs: add compatibility matrix documentation
1 parent 16707bf commit 71e8181

File tree

3 files changed

+82
-12
lines changed

3 files changed

+82
-12
lines changed

docs/_toc.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ subtrees:
77
- caption: Installation
88
entries:
99
- file: installation/requirements.md
10+
- file: installation/compatibility.md
1011
- file: installation/liqoctl.md
1112
- file: installation/install.md
1213
- file: installation/uninstall.md

docs/installation/compatibility.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Compatibility Matrix
2+
3+
This page provides information about Liqo's compatibility with different Kubernetes providers.
4+
5+
```{admonition} Note
6+
While the following list includes providers that we have specifically tested, Liqo should work with any Kubernetes-compliant distribution, although some provider-specific configurations might be required.
7+
```
8+
9+
## Legend
10+
11+
- ✅ Fully supported - All features work as expected
12+
- 🟢 Mostly supported - Core features work well, with only minor limitations in specific scenarios
13+
- 🔵 Partial support - Some Liqo features are functional, but others may require specific configurations or have major limitations in certain use cases
14+
15+
## Tested Provider Compatibility Table
16+
17+
| Provider | Status | Known Issues |
18+
|----------|--------|--------------|
19+
| Kubeadm (Calico) || No known issues |
20+
| Kubeadm (Cilium) || No known issues |
21+
| Kubeadm (Cilium with kube-proxy replacement) | 🟢 | `NodePortExposition` and `LoadBalancerExposition` |
22+
| K3s | 🟢 | `RemoteExec` |
23+
| K0s || No known issues |
24+
| AKS (Azure CNI Overlay) | 🟢 | `CrossClusterAPIServerInteraction` and `ExternalIPRemapping` |
25+
| AKS (Azure CNI (Legacy)) | 🟢 | `CrossClusterAPIServerInteraction` and `NodePortExposition` |
26+
| AKS (Kubenet) | 🟢 | `CrossClusterAPIServerInteraction` and `ExternalIPRemapping` |
27+
| EKS | 🟢 | `CrossClusterAPIServerInteraction` and `ExternalIPRemapping` |
28+
| GKE (Dataplane v1) || No known issues |
29+
| GKE (Dataplane v2) | 🟢 | `NodePortExposition` and `LoadBalancerExposition` |
30+
| Aruba Cloud KaaS || No known issues |
31+
| OpenShift | 🔵 | **Work in progress**: all Liqo functionalities except for the networking module work as expected. The team is actively working on adding full networking support. You can still use it by [disabling the Network Module](AdvancedUseOnlyOffloadingDisableModule). |
32+
| *Your K8s Distribution* | 🟢 | Liqo is designed to work with most Kubernetes-compliant distributions. Your provider is likely supported, but may require specific configurations. |
33+
34+
### Help Us Improve
35+
36+
Have you tested Liqo with a provider not listed here?
37+
We'd love to hear about your experience!
38+
Join our [Slack community](https://liqo-io.slack.com/join/shared_invite/zt-h20212gg-g24YvN6MKiD9bacFeqZttQ) and share your test results.
39+
Your feedback helps us improve Liqo's compatibility across different environments.
40+
41+
## Issues Reference
42+
43+
The following issues are known to affect the compatibility of Liqo with different Kubernetes providers:
44+
45+
- `CrossClusterAPIServerInteraction`: The ability of offloaded pods to properly interact with the Kubernetes API server of the consumer cluster. This ensures that applications running in provider clusters can still access and manipulate Kubernetes resources (such as ConfigMaps, Secrets, or other custom resources) in their original cluster. Limitations in this area may impact applications that rely on the Kubernetes API for normal operation. See [here](../advanced/kubernetes-api.md) for more details.
46+
47+
- `RemoteExec`: The capability to execute commands in pods that have been offloaded to remote clusters, using `kubectl exec`. When limited, administrators may face challenges in directly interacting with offloaded workloads.
48+
49+
- `NodePortExposition`: The capability to access remote offloaded pods through NodePort services. This ensures that network traffic addressed to NodePort services can reach every pods, even when those pods are running in remote clusters. Limitations here may affect external access to applications.
50+
51+
- `LoadBalancerExposition`: The capability to expose remote offloaded pods via LoadBalancer services. This ensures that cloud provider load balancers can properly distribute traffic to offloaded pods. When this feature has limitations, it may impact the ability to use cloud load balancers with offloaded workloads.
52+
53+
- `ExternalIPRemapping`: The ability to make external IPs (outside of the Kubernetes cluster network) accessible to pods running in remote and local clusters. This involves translating IP addresses between clusters with potentially overlapping network ranges, ensuring that pods in one cluster can access external resources that are only directly reachable from another cluster. Limitations here may affect connectivity to external services or resources. See [here](../advanced/external-ip-remapping.md) for more details.

docs/installation/install.md

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,17 @@ Alternatively, you can manually specify a desired id with the `--cluster-id` fla
4949
5050
````{tab-item} AKS
5151
52+
```{warning}
53+
Liqo does NOT support:
54+
55+
* Cross-cluster API server interaction
56+
* NodePort exposition **only on Azure CNI (Legacy)**
57+
* External IP remapping **only on Azure CNI Overlay and Kubenet**
58+
```
59+
5260
**Supported CNIs**
5361
54-
Liqo supports AKS clusters using the following CNIs: [Azure AKS - Kubenet](https://learn.microsoft.com/en-us/azure/aks/configure-kubenet) and [Azure AKS - Azure CNI](https://learn.microsoft.com/en-us/azure/aks/configure-azure-cni).
62+
Liqo supports AKS clusters using the following CNIs: [Azure AKS - Kubenet](https://learn.microsoft.com/en-us/azure/aks/configure-kubenet), [Azure AKS - Azure CNI Overlay](https://learn.microsoft.com/en-us/azure/aks/azure-cni-overlay?tabs=kubectl) and [Azure AKS - Azure CNI (Legacy)](https://learn.microsoft.com/en-us/azure/aks/configure-azure-cni).
5563
5664
**Configuration**
5765
@@ -104,6 +112,13 @@ correct Resource Group name where the Virtual Network Resource is located.
104112
105113
````{tab-item} EKS
106114
115+
```{warning}
116+
Liqo does NOT support:
117+
118+
* Cross-cluster API server interaction
119+
* External IP remapping
120+
```
121+
107122
```{admonition} Note
108123
If you are planning to use an EKS cluster as [network server](/advanced/peering/inter-cluster-network), you need to install the [AWS Load Balancer V2 Controller](https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.8/) on the EKS cluster.
109124
```
@@ -193,18 +208,19 @@ Alternatively, you can manually set a different id with the `--cluster-id` *liqo
193208
194209
````{tab-item} GKE
195210
196-
**Supported CNIs**
197-
198-
Liqo supports GKE clusters using the default CNI: [Google GKE - VPC-Native](https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips).
199-
200211
```{warning}
201212
Liqo does NOT support:
202213
203214
* GKE Autopilot Clusters
204-
* Intranode visibility: make sure this option is disabled or use the `--no-enable-intra-node-visibility` flag.
205-
* Accessing offloaded pods from NodePort/LoadBalancer services [**only on Dataplane V2**].
215+
* Intranode visibility: make sure this option is disabled or use the `--no-enable-intra-node-visibility` flag
216+
* NodePort exposition **only on Dataplane V2**
217+
* LoadBalancer exposition **only on Dataplane V2**
206218
```
207219
220+
**Supported CNIs**
221+
222+
Liqo supports GKE clusters using [Dataplane V1](https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview) and [Dataplane V2](https://cloud.google.com/kubernetes-engine/docs/concepts/dataplane-v2).
223+
208224
**Configuration**
209225
210226
To install Liqo on GKE, you should create a service account for *liqoctl*, granting the read rights for the GKE clusters (you may reduce the scope to a specific cluster if you prefer).
@@ -298,17 +314,17 @@ Alternatively, you can manually set a different id with the `--cluster-id` *liqo
298314
299315
````{tab-item} K3s
300316
301-
```{admonition} Note
302-
By default, the K3s installer stores the kubeconfig to access your cluster in the non-standard path `/etc/rancher/k3s/k3s.yaml`.
303-
Make sure to properly refer to it when using *liqoctl* (e.g., setting the `KUBECONFIG` variable), and that the current user has permissions to read it.
304-
```
305-
306317
```{warning}
307318
- Due to an issue with K3s certificates, the `kubectl exec' command doesn't work properly when used on a pod scheduled on a virtual node.
308319
- Due to an issue with the [nftables golang library](https://github.com/google/nftables) and the pod running in *host network* in K3s, the firewall monitoring feature is disabled by default.
309320
This means that the firewall rules on the node will not be monitored and enforced by Liqo. If these rules are deleted or changed, Liqo won't restore them.
310321
```
311322
323+
```{admonition} Note
324+
By default, the K3s installer stores the kubeconfig to access your cluster in the non-standard path `/etc/rancher/k3s/k3s.yaml`.
325+
Make sure to properly refer to it when using *liqoctl* (e.g., setting the `KUBECONFIG` variable), and that the current user has permissions to read it.
326+
```
327+
312328
**Installation**
313329
314330
Liqo can be installed on a K3s cluster with the following command:

0 commit comments

Comments
 (0)