k3s集群+rancher部署实践

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的组合。

作者:Leo_zhou
出处:http://zhouzhifei.com
---------------------------------
一个练习时长八年半的运维工程师

原文地址:https://www.cnblogs.com/zhouzhifei/p/15378465.html