机器规划
服务器 | 规划 | ip |
---|---|---|
k3s-master | 主节点/mysql/rancherUI | 172.16.3.2 |
k3s-work | 工作节点 | 172.16.3.3 |
注意
每台计算机必须具有唯一的主机名。如果您的计算机没有唯一的主机名,请传递K3S_NODE_NAME环境变量,并为每个节点提供一个有效且唯一的主机名。
我就是因为这个问题耽误了很长时间,如果主机名相同,请设置
export K3S_NODE_NAME=work
搭建mysql
在master节点使用docker搭建mysql,如果是生产环境,请使用高可用版的mysql
docker run -d \
--name k3s-mysql \
--restart=always \
-v /opt/k3s-cluster/mysql/conf:/etc/mysql/conf.d \
-v /opt/k3s-cluster/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-p 3306:3306 \
mysql:5.7.29 \
--default-time-zone=+8:00
安装rancherui
docker run --privileged -d -v /opt/rancher:/var/lib/rancher:rw --restart=unless-stopped -p 10443:443 rancher/rancher:stable
安装master节点
k3s默认使用containerd,我这里改为使用docker
export INSTALL_K3S_EXEC="--datastore-endpoint=mysql://root:123456@tcp(172.16.3.2:3306)/k8s --docker"
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
安装完成后使用,看到master节点就是成功
k3s kubectl get nodes
安装kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
kubectl get nodes
安装work节点
在master节点上查看token
cat /var/lib/rancher/k3s/server/node-token
在work机器上设置环境变量
export K3S_TOKEN=K10b883db90a8433faf4136751c606a812962c9f10ea4e6d008d1edd6fb1bbf1cd5::server:7c0b785286c10e8e1a6a1f053a6dc404
export K3S_URL=https://172.16.3.2:6443
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s
设置K3S_URL参数会使 K3s 以 worker 模式运行。K3s agent 将在所提供的 URL 上向监听的 K3s 服务器注册
成功后在master节点执行,看到work节点执行就算成功
k3s kubectl get nodes
设置rancher
浏览器打开rancher ui https://172.16.3.2:10443 选择导入集群,复制生成的命令,在master 节点上执行即可
卸载
要从 master 节点卸载 K3s,请运行:
/usr/local/bin/k3s-uninstall.sh
要从 agent 节点卸载 K3s,请运行:
/usr/local/bin/k3s-agent-uninstall.sh