K8s Cluster in NO-TIME using k3s and longhorn

D. Heinrich
2 min readNov 26, 2021

If you want to bootstrap a Kubernetes cluster in no-time, then you may want to follow the below steps.

Here I describe how I set up a three node cluster using a Server and two Agents and a storage driver using longhorn.io.

by SweetOps

NOTE:

I assume you have at least three Servers up and running.

Servers:

  • 123.123.123.123 (Server 1)
  • 124.124.124.124 (Agent 1)
  • 125.125.125.125 (Agent 2)

Initialize the cluster

Server 1 — 123.123.123.123

ssh root@123.123.123.123apt install curl -ycurl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--cluster-init --write-kubeconfig-mode 644 --node-label node-role.kubernetes.io/agent=true --node-label node-role.kubernetes.io/control-plane=true --node-label node-role.kubernetes.io/etcd=true --node-label node-role.kubernetes.io/master=true" sh -

Get the kubeconfig and starting watching the server rise.

export KUBECONFIG="/path/to/kubeconfig"
watch -d "kubectl get nodes && kubectl get po -o wide --all-namespaces"

Add your agents

Agent 1 - 124.124.124.124

ssh root@124.124.124.124apt update && apt install curl -ycurl -sfL https://get.k3s.io | K3S_URL=https://123.123.123.123:6443 K3S_TOKEN=mySuperToken INSTALL_K3S_EXEC="--node-label node-role.kubernetes.io/agent=true --node-label node-role.kubernetes.io/control-plane=true --node-label node-role.kubernetes.io/etcd=true --node-label node-role.kubernetes.io/master=true" sh -

Agent 2 -125.125.125.125

ssh root@125.125.125.125apt install curl -ycurl -sfL https://get.k3s.io | K3S_URL=https://123.123.123.123:6443 K3S_TOKEN=mySuperToken INSTALL_K3S_EXEC="server --node-label node-role.kubernetes.io/agent=true --node-label node-role.kubernetes.io/control-plane=true --node-label node-role.kubernetes.io/etcd=true --node-label node-role.kubernetes.io/master=true" sh -

Install Storage using Longhorn.io

apt update &&apt install open-iscsi -ykubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml

Thats it!

You should be ready to go!

Now you can fire your containers into kubernetes with for example Kapitan.

Cheers!

Sources:

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

D. Heinrich
D. Heinrich

Written by D. Heinrich

Working as a Head of Infrastructure at Flower Labs.

No responses yet

Write a response