k3s容器化的使用到目前为止或多或少还是发现不少问题,不过相对于相对较小的项目或者个人使用来说,应该还是很不错的选择,可以满足绝大多数的场景应用;而且总结对比了官方文档后,搭建初始化的步骤也越发简单明了。
实列:
master1-192.168.17.85(MySQL5.7版本以上,默认账号密码都是root)
master2-192.168.17.86(rancher-stable版本)
master3-192.168.17.87
nginx转发-192.168.17.88
由于测试设备的不足,部分资源都是重复使用,按理来说应该最好能独立负责相应的业务。
三台master主机负责k3s的集群搭建,nginx负责代理三台的api地址,也就是默认的6443的端口业务链接,保证以后有新的work节点加入,有一个唯一的地址值。
首先
做好准备工作:1.搭建MySQL5.7以上版本,保存三台master地址信息2.安装nginx3.安装rancher单节点服务
注意点
1.nginx新增nginx.conf中的配置
stream { upstream k3s { server 192.168.17.87:6443; server 192.168.17.86:6443; server 192.168.17.85:6443; } server { listen 6443; proxy_pass k3s; } }
2.安装rancher单节点命令
docker run -d --restart=unless-stopped --name rancher-server -v /data/rancher/:/var/lib/rancher/ -p 8088:80 -p 8443:443 --privileged rancher/rancher:stable
最新版本新增了--privileged参数,需要注意!
其次
在任意一台master中执行官方文档提供的命令,指定server角色
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint='mysql://root:root@tcp(192.168.17.85:3306)/k3s'
等待几分种后,第一台master就安装完毕,这时需要获取server的tocken值
cat /var/lib/rancher/k3s/server/node-token
保证server服务的唯一性
其他另外两台master就可以执行最新的命令
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh |K3S_TOKEN=token值 INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint='mysql://root:root@tcp(192.168.17.85:3306)/k3s'
完成以上步骤后,验证集群是否创建成功
最后
进入安装好的rancher界面,导入已创建好的k3s集群
需要注意点
最后一步导入过程需要执行命令,在其中任何一台master上就可以执行,但第二条和第三条命令由于本机curl不支持https的链接,所以可以手动下载yaml文件后,再使用使用kubectl命令执行yaml文件。
总结
k3s现在的集群搭建已经比刚开始的官方给出的文档要好很多了,也是比较推荐k3s+MySQL+rancher的组合。