主机介绍
rancher:192.168.136.8
msater:192.168.136.21
node1:192.168.136.22
node2:192.168.136.23
如果不想新建那么多虚拟机,那至少也需要两台主机,1台rancher,一台k8s单节点集群(伪集群)。
Linux部署单节点k8s集群参考:https://blog.csdn.net/weixin_48878440/article/details/129561710?spm=1001.2014.3001.5502
安装docker
关于docker安装参考:https://blog.csdn.net/weixin_48878440/article/details/122152407?spm=1001.2014.3001.5502
注意:监控端和被监控端docker版本需要保持一致,安装时需要指定docker版本安装,指定版本安装时repo源对docker-ce-cli的版本支持,存在同版本支持docker-ce,docker-ce-cli却不支持的情况,例如docker-ce有18.06.03版本但是docker-ce-cli却没有这个版本。
用yum list docker-ce --showduplicates|sort -r、yum list docker-ce-cli --showduplicates|sort -r查看,此处我使用的是23.0.1版本。
启动rancher容器
启动rancher容器,设置端口映射,建议安装v2.7.X,网上还有很多人安装的是rancher/server,这个是rancher1.6.5的版本(太旧了),1.6.5版本甚至不支持集群监控。
解释一下这句命令
-d表示后台运行容器
-p表示端口映射
--privileged表示特权容器,意味着容器内的root用户拥有真正的宿主机root权限,否则只是容器内的root用户仅仅是外部的一个普通用户权限。
-v表示挂载,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录,目录必须是绝对路径。如果宿主机写的是相对路径,那么挂载目录不是在当前路径,例如docker -v test1:/soft,那么挂载目录会出现在/var/lib/docker/volumes/test1/_data,不建议这样使用。
--restart=always表示容器关闭后会自动重启,强制删除容器使用dockers container rm“容器ID“ -f
--name表示容器容器名称
docker run -d --privileged -p 80:80 -p 443:443 -v /root/docker_volume/rancher:/var/lib/rancher --restart=always --name rancher-2.7.0 rancher/rancher:v2.7.0
docker ps查看容器是否启动
浏览器通过192.168.136.8:80访问主页,443或80访问,打不开需要等两分钟,按照提示输入命令拿到密钥,可以通过curl http://127.0.0.1 测试。
!此处如果没有出现对应的密码日志(后面发现其实就是内存不足导致的),可以用reset-password重置admin密码。
docker exec -ti container-ID reset-password
登录成功
集群/节点部署
添加集群,选择“通用”,
根据提示在master、node1、node2上安装rancher,注意用第二条命令。
node1提示报错,但仍然添加成功,node2还未输入命令就已经添加成功。
master节点新增了2个namespace。
首页资源面板展示
5.注意事项
5.1内存不足
主机至少需要4G内存(推荐6G)
5.2存储不足
服务器主机启动rancher容器至少需要2G存储空间,容器刚开始启动时候会占用1.8G左右,稳定后占用800M左右(未添加任何插件和节点的情况下)
若需要增加root主内存,注意不要新增磁盘,这两者是不一样的。请参考https://blog.csdn.net/majianting/article/details/122944109
!内存不足会导致容器启动几秒后就消失,则会一直处在宕机/启动反复横跳,每次启动成功只能持续两分钟。如果存储不足,会容器转态会一直处于restarting。如果没有设置--restart=always,上述两种情况容器都会在几秒钟内自动停止,只能通过docker ps -a查询。强制删除容器使用docker container rm -f 容器ID。
5.3日志查询方法
5.3.1容器能够启动成功
docker logs 容器ID | grep error
5.3.2容器无法启动成功,一直处于restarting
docker logs 容器ID | grep error
docker inspect --format '{{.LogPath}}' 容器ID,会获得日志文件地址,cat查看即可。--restart=always表示容器会尝试重启,一直处于restarting。
docker inspect --format '{{.LogPath}}' e85e4839fcde