使用multipass搭建k3s集群

922 阅读2分钟

创建虚拟机

multipass launch --name master --mem 2G --disk 10G

multipass launch --name node1 --mem 2G --disk 10G

multipass launch --name node2 --mem 2G --disk 10G

创建完成后,可通过 multipass list 查看。

安装 master 节点

multipass exec master -- /bin/bash -c "curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn  K3S_KUBECONFIG_MODE=644 sh -"

安装完成后,使用下面的命令查看 master node 的token

multipass exec master -- /bin/bash -c "sudo cat /var/lib/rancher/k3s/server/node-token"

得到类似下面这样的字符串。

K1027d25fdca0c62bd6a845bbd67e283cb7a309f2b39c44bae3ed7ea0d8fe50bb8c::server:876afa0ec9b7f441fc4ca96312cd81d8

安装普通节点

设置变量,其中 K3S_URL 填入 master 节点的ip,K3S_TOKEN 填入上面得到的 token。

K3S_URL="https://192.168.64.4:6443"
K3S_TOKEN="K1027d25fdca0c62bd6a845bbd67e283cb7a309f2b39c44bae3ed7ea0d8fe50bb8c::server:876afa0ec9b7f441fc4ca96312cd81d8"

node1 上安装 k3s

multipass exec node1 -- /bin/bash -c "curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=${K3S_URL} K3S_TOKEN=${K3S_TOKEN} sh -"

node2 上安装 k3s

multipass exec node2 -- /bin/bash -c "curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=${K3S_URL} K3S_TOKEN=${K3S_TOKEN} sh -"

查看是否成功安装

进入 master node

multipass shell master

执行

kubectl get node

可以看到三个节点都成功安装好了。

ubuntu@master:~$ kubectl get node
NAME     STATUS   ROLES                  AGE   VERSION
master   Ready    control-plane,master   33m   v1.21.5+k3s2
node2    Ready    <none>                 22s   v1.21.5+k3s2
node1    Ready    <none>                 36s   v1.21.5+k3s2

给普通节点加 label

运行下面这两句命令给普通节点加label

kubectl  label node node1 node-role.kubernetes.io/node=""

kubectl  label node node2 node-role.kubernetes.io/node=""

可看到已被成功打上了label

NAME     STATUS   ROLES                  AGE     VERSION
master   Ready    control-plane,master   40m     v1.21.5+k3s2
node1    Ready    node                   8m16s   v1.21.5+k3s2
node2    Ready    node                   8m2s    v1.21.5+k3s

安装 helm

进入 master 节点

mutlipass shell master

下载安装脚本

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3

如果下载失败,可参考这篇文章解决Could not resolve host: raw.githubusercontent.com问题

下载完成后,设置文件权限

chmod 700 get_helm.sh

然后执行脚本

./get_helm.sh

设置 KUBECONFIG

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

然后可以使用 helm list 确认 helm 安装完成。