创建虚拟机
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
安装完成。