Created
December 17, 2019 21:16
-
-
Save lucj/5a0e2286b40130d02388a264e6924ed4 to your computer and use it in GitHub Desktop.
Setup a k3s kubernetes cluster using Multipass VMs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
for node in node1 node2 node3;do | |
multipass launch -n $node | |
done | |
# Init cluster on node1 | |
multipass exec node1 -- bash -c "curl -sfL https://get.k3s.io | sh -" | |
# Get node1's IP | |
IP=$(multipass info node1 | grep IPv4 | awk '{print $2}') | |
# Get Token used to join nodes | |
TOKEN=$(multipass exec node1 sudo cat /var/lib/rancher/k3s/server/node-token) | |
# Join node2 | |
multipass exec node2 -- \ | |
bash -c "curl -sfL https://get.k3s.io | K3S_URL=\"https://$IP:6443\" K3S_TOKEN=\"$TOKEN\" sh -" | |
# Join node3 | |
multipass exec node3 -- \ | |
bash -c "curl -sfL https://get.k3s.io | K3S_URL=\"https://$IP:6443\" K3S_TOKEN=\"$TOKEN\" sh -" | |
# Get cluster's configuration | |
multipass exec node1 sudo cat /etc/rancher/k3s/k3s.yaml > k3s.yaml | |
# Set node1's external IP in the configuration file | |
sed -i '' "s/127.0.0.1/$IP/" k3s.yaml | |
# We'r all set | |
echo | |
echo "K3s cluster is ready !" | |
echo | |
echo "Run the following command to set the current context:" | |
echo "$ export KUBECONFIG=$PWD/k3s.yaml" | |
echo | |
echo "and start to use the cluster:" | |
echo "$ kubectl get nodes" | |
echo |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
this command
sed -i '' "s/127.0.0.1/$IP/" k3s.yaml
fails in linux.Instead, just use this
sed -i "s/127.0.0.1/$IP/" k3s.yaml
this will work.