可能是我打开2020年的方式不对,在找工作的这件事上十分不顺利,终于入职了一家还满意的公司。了解了一下公司发展以及未来规划,知道早晚是要上k8s的,就想提前 学习一下,奈何 k8s 对主机配置要求挺高的,搞不起呢。就想着通过部署 k3s 来了解k8s的一些东西呗,而且该玩意好像也可以投入生产环 境使用。下面就进入正题呗,记录一下搭建一个单节点的k3s集群。

在Master节点上安装k3s

官方脚本

curl -sfL https://get.k3s.io | sh -

国内推荐

curl -sfL https://docs.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
  • K3S_TOKEN 创建在 /var/lib/rancher/k3s/server/node-token
  • 可以通过 K3S_NODE_NAME 环境变量,为每个主机提供一个唯一有效的主机名

在Worker节点上安装k3s

官方脚本

curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -

国内推荐

curl -sfL https://docs.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -

至此一个单节点的 k3s 集群就搭建好了,本来想装 portainer 来可视化管理k3s集群,奈何人家目前并不支持k3s, 但是我们可以用 Rancher 来管理。

安装 Rancher Server

Rancher Server 听着厉害,通过 Docker 来部署的话,也就只需要一条命令:

docker run -d -v /data/docker/rancher-server/var/lib/rancher/:/var/lib/rancher/ --restart=unless-stopped --name rancher-server -p 80:80 -p 443:443 rancher/rancher:stable

然后等待几分钟,,之后访问你的Server IP即可进入Rancher Server的首次配置界面。

如果你不想让 Rancher 占用你的80/443端口,只需要按照以下步骤操作:

  • 修改启动命令行:
docker run -d -v /data/docker/rancher-server/var/lib/rancher/:/var/lib/rancher/ --restart=unless-stopped --name rancher-server -p 80:80 -p 443:443 rancher/rancher:stable

将里面的80和443,替换为你需要的端口(注意:请不要占用Kubernetes的6443端口,这一步很容易翻车!),换完的效果大概是这样:

docker run -d -v /data/docker/rancher-server/var/lib/rancher/:/var/lib/rancher/ --restart=unless-stopped --name rancher-server -p 9080:9080 -p 9443:9443 rancher/rancher:stable
  • 运行成功后,登陆进去,创建集群选择导入集群,在 master 节点运行 rancher 提供的配置即可。

小问题记录

  • 被驱散移除的节点如何重新添加进集群?

需要删除 /var/lib/rancher/k3s/server/cred/node-passwd 中对应节点的 passwd, 才可以自动添加进集群。