Skip to content

Instantly share code, notes, and snippets.

@sergeygalkin
Last active May 18, 2022 08:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sergeygalkin/a56f2120fef7a62dddbd48e351e604e0 to your computer and use it in GitHub Desktop.
Save sergeygalkin/a56f2120fef7a62dddbd48e351e604e0 to your computer and use it in GitHub Desktop.
liqo.io demo

K8S Clusters

Cluster 1

Creation

POD_CIDR=10.44.0.0/16
SERVICE_CIDR=10.45.0.0/16
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--cluster-cidr $POD_CIDR --service-cidr $SERVICE_CIDR" sh -s -

Cluster 2

Creation

POD_CIDR=10.144.0.0/16
SERVICE_CIDR=10.145.0.0/16
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--cluster-cidr $POD_CIDR --service-cidr $SERVICE_CIDR" sh -s -

Commands on Cluster 1

kubectl cluster-info dump | grep  cluster-cidr
liqoctl install k3s --pod-cidr 10.44.0.0/16 --service-cidr 10.45.0.0/16 --cluster-name cluster-1
liqoctl add cluster (need line from cluster 2 output)
kubectl get nodes
kubectl create namespace liqo-demo
liqoctl offload namespace liqo-demo --namespace-mapping-strategy EnforceSameName

Remote ns name without EnforceSameName - something like liqo-demo-cluster-1-c1ec93 also have --pod-offloading-strategy Local, LocalAndRemote, Remote default "LocalAndRemote"

kubectl get namespaceoffloading offloading -n liqo-demo -o yaml
cat /tmp/nginx.yaml
kubectl  apply -n liqo-demo -f /tmp/nginx.yaml
kubectl -n liqo-demo get svc
kubectl -n liqo-demo get pods -o wide
kubectl -n liqo-demo delete pod nginx-remote

Commands on Cluster 2

kubectl cluster-info dump | grep  cluster-cidr
liqoctl install k3s --pod-cidr 10.144.0.0/16 --service-cidr 10.145.0.0/16 --cluster-name cluster-2
kubectl get ns | grep liqo-demo
kubectl -n liqo-demo get svc
kubectl -n liqo-demo get pods -o wide
kubectl run --image=curlimages/curl curl -n default -it --rm --restart=Never -- curl --silent http://liqo-demo.liqo-demo | grep 'Server'

File /tmp/nginx.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-local
  labels:
    app: liqo-demo
spec:
  containers:
    - name: nginx
      image: nginxdemos/hello
      imagePullPolicy: IfNotPresent
      ports:
        - containerPort: 80
          name: web
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
          - matchExpressions:
              - key: liqo.io/type
                operator: NotIn
                values:
                  - virtual-node
---
apiVersion: v1
kind: Pod
metadata:
  name: nginx-remote
  labels:
    app: liqo-demo
spec:
  containers:
    - name: nginx
      image: nginxdemos/hello
      imagePullPolicy: IfNotPresent
      ports:
        - containerPort: 80
          name: web
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
          - matchExpressions:
              - key: liqo.io/type
                operator: In
                values:
                  - virtual-node
---
apiVersion: v1
kind: Service
metadata:
  name: liqo-demo
spec:
  ports:
    - name: web
      port: 80
      protocol: TCP
      targetPort: web
  selector:
    app: liqo-demo
  type: ClusterIP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment