目录
1.Rancher是什么?
2.Rancher1.6的安装使用
3.Rancher2.5.16的安装使用
4.Docker常用命令:
5.总结
1.Rancher是什么?
中文官网文档:
https://docs.rancher.cn/
注意:关闭防火墙还需要开启80端口和443端口,以前rancher1.6版本还支持docker compose、swarm等集成,但是我从rancher2.15版本里却找不到入口了,直接是对kubernates的集成管理,这也反向突出了kubernates确有一统之势,在CentOs7.x上安装需要修改主机名关闭selinux和防火墙。
2.Rancher1.6的安装使用
Rancher 管理其他主机上的容器docker的版本保持和rancher主机的一致,不容易出问题,docker的版本应该和docker的版本匹配。
centos7防火墙的使用;
启动:systemctl start firewalld
关闭:systemctl stop firewalld
查看状态systemctl status firewalld
开机禁用 :systemctl disable firewalld
开机启用 :systemctl enable firewalld
重新启动docker:systemctl restart docker
配置ssh远程连接:
1.判断centos是否安装了ssh
rpm -qa |grep ssh
2.没有安装使用
yum install -y openssl openssh-server
启动ssh的服务:
systemctl start sshd.service
ystemctl restart sshd
设置开机自动启动ssh服务
systemctl enable sshd.service
3.打开ssh配置文件配置下访问权限
vi /etc/ssh/sshd_config
把下面几行的#号注释去掉
1、Port 22,sshd服务的端口
2、Protocol 2,也就是外部连接的协议用ssh2,不设置也可。
3、PermitRootLogin no/yes,如果允许使用root登陆则设为yes,否则为no
4、PasswordAuthentication no/yes,no为不允许使用密码登陆,yes为允许使用密码登陆,一般如果用自己账户登录都用密码
5、 sshd配置文件中X11Forwarding的配置为yes
X11Forwarding yes #这个设置是为了xmanager弹框使用
设置好后保存退出。
4.重启ssh服务
/bin/systemctl restart sshd.service
查看ssh服务
查看ssh所用的端口是否已经打开
firewall-cmd --zone=public --query-port=22/tcp //端口如果开放则为yes,否则为no
没有开放,看到网上的解决方案是关闭防火墙,但是我防火墙本来就关着,于是尝试开放22端口,由于关闭防火墙设置失败,所以先开启防火墙
查看防火墙状态
systemctl status firewalld
启动防火墙
systemctl start firewalld
配置22端口
//例子打开22和80端口
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
重新载入
firewall-cmd --reload
查看ssh所用的端口是否已经打开
firewall-cmd --zone=public --query-port=22/tcp
返回success现在应该是成功了
最后关闭防火墙,之后就可以是使用linux远程连接到linux了,方便后面的操作。
在虚拟机上安装的CentOs7.x上安装操作:
Rancher1.6的docker使用的版本如下:
安装docker(略)
安装指定的docker,锁定docker版本
锁定docker版本
1)安装yum-plugin-versionlock插件
yum install yum-plugin-versionlock
2)锁定软件包---之一步只执行 1)和2)
yum versionlock add docker-ce docker-ce-cli
[root@izwz969o7lu6t9lh4ta6m5z ~]# yum versionlock add docker-ce docker-ce-cli
已加载插件:fastestmirror, versionlock
Adding versionlock on: 0:docker-ce-17.06.2.ce-3.el7.centos
versionlock added: 1[root@izwz969o7lu6t9lh4ta6m5z ~]#
3)查看已锁定的软件包
yum versionlock list
4)解锁指定的软件包
yum versionlock delete <软件包名称>
5)解锁所有的软件包
yum versionlock clear
修该主机名:
1.x修该主机名
hostnamectl set-hostname rancher
hostnamectl set-hostname anget
重启后生效:reboot
或者:
1.x修该主机名
vim /etc/hosts
ip rancher //直接在配置文件末行添加即可
ip agent
重启虚拟机
reboot
CentOS关闭selinux
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
或者用下面的方式来搞:
临时关闭SELinux
setenforce 0
临时打开SELinux
setenforce 1
开机关闭SELinux
vi /etc/selinux/config
修改"SELINUX=enforcing"为"SELINUX=disabled"
查看SELinux状态
getenforce
修改完毕之后重启reboot
查看SELinux状态
getenforce //值为disabled
安装执行如下命令:
# 拉取rancher镜像
docker pull rancher/server:v1.6.17
sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:v1.6.17
访问webUI:
Rancher1.6的访问界面地址是:Rancher-Server的主机的ip+8080端口(启动的时候指定的端口映射)
添加主机:
复制如下命令在需要加入rancher管理的主机上执行,会部署拉起一个rancher-agent的镜像容器,需要和rancher-service通信。
Rancher1.6拉取docker-hubor.v1.10.6-490042d8,下面的版本搭配是可以拉取私有hubor上的镜像部署的,之前一直拉取镜像超时了,基础服务全部删除重新安装,然后在rancher-server上执行下面的操作和开通了相应的端口机神奇的能拉取到镜像并且部署到rancher-server上了:
配置Reancher-agent:
这里做的目的是让rancher的server能够管理, angent节点上的主机资源以及docker镜像.这里只演示1.x
解决办法:
netstat -lnp|grep 80
80端口被占用:kill -9 pid
把agent的镜像移除
然后重新启动docker:systemctl restart docker
重新添加主机执行脚本,最后就成功了
配置Docker-Hub的私用镜像仓库:
配置Rancher-agent主机上的Docker-hub访问:
首先docker-hub的虚拟机的80(http)和443(https)端口要开放(hub的nginx代理端口),rancher-server虚拟机的8080端口要开放(server的主机运行端口)
首先修改agent的hosts文件的加入域名和IP的映射关系:
1、修改:vi /etc/default/docker
DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=bigfei.com"
2、vi /etc/docker/daemon.json注意上一行结尾需要有一个逗号,
"insecure-registries":["bigfei.com"]
重启docker
sudo systemctl restart docker
自签证书:
# 下载域名的证书
$ openssl s_client -showcerts -connect bigfei.com:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >ca.crt
# 拷贝证书到合适的目录
$ sudo cp ca.crt /etc/docker/certs.d/bigfei.com/ca.crt
先创建目录/certs.d/bigfei/
cd /etc/docker/
mkdir -p ./certs.d/bigfei.com/
# 将证书添加到文件中
$ cat ca.crt | sudo tee -a /etc/ssl/certs/ca-certificates.crt
# 重启docker服务,让改动生效
$ sudo service docker restart
在agent上验证是否可以登录私有hub:
选择一台主机rancher-agent主机部署应用:
使用的是Docker-Hub私服上的bigfei.com/myhub/springboot01镜像创建一个容器:
需要开通虚拟机映射到容器的端口8081
查看容器启动日志:
需要开启Rancher-agent主机上的8081端口:
重启该容器:
遇到的问题及解决办法:
Rancher添加主机由于两台虚拟机的网卡配置是dhcp没有设置为固定ip地址,重新启动之后ip就变了,由于之前在这两台虚拟机上添加过主机,所以要把这前添加的主机删除,重新添加,需要将之前虚拟机上启动的rancher-agent镜像删除,将80端口占用的进程kill掉,然后重启docker,不然不做这几部操作的话就会由于添加主机时候运行的命令:
在agent的虚拟机中telnet rancher-server的ip+port出现下面这个错误,rancher-server的8080端口已经开通,还是报这个错误:telnet Connection closed by foreign host.
其原因是由于80端口被占用和之前拉起过rancher-agent的容器导致,解决办法是将之前拉起过rancher-agent的容器删除,然后将80端口占有的进程kill掉,重启docker.
然后成功添加主机:
需要在部署的虚拟主机上登录下阿里云镜像仓库:
docker login --username=bigfei大飞哥 registry.cn-hangzhou.aliyuncs.com
然后输入密码即可
下面的这个报错是由于要拉取部署的镜像写错了
错误写法:
registry.cn-hangzhou.aliyuncs.com/bigfei/zlf/0.0.1-SNAPSHOT
正确的写法是:
registry.cn-hangzhou.aliyuncs.com/bigfei/zlf:0.0.1-SNAPSHOT
最后一个不是/而是:
CentOs重启docker后台进程和重启docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
3.Rancher2.5.16的安装使用
Rancher2.5.16的GitHub的地址如下:
https://github.com/rancher/rancher/releases/tag/v2.5.16
Rancher2.5.16的安装是在window10环境上安装了docker环境,然后win+r,输入cmd回车执行如下命令:
docker run -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:v2.5.16
Window10环境重启docker的后台进程和重启docker命令:
docker service daemon-reload restart
docker service docker restart
访问webUI:
https://ip:443
https://192.168.0.119/
设置Rancher-Server的Url地址:
首页:
创建和导入k8s集群:
仪表盘:
Docker-DiskTop进入rancher2.5.16的容器中会看到日志报错,但是这个版本不影响集群的使用只是它会去拉取一些外网的资源网络不通导致报错
Rancher2.5.16的这个版本默认使用的是K3S来拉起K8S集群的所以关于K3S的配置请看如下官网说明:
https://mp.weixin.qq.com/s?__biz=MzkyNzM4Nzk1NQ==&mid=2247500756&idx=1&sn=9853c5dd86deb929f47140807ded4dc9&source=41#wechat_redirect
到此关于Rancher的1.6.x和2.5.6.x的单机安装就已经介绍完了,具体的可以参考官方文档。
4.Docker常用命令:
systemctl start docker
systemctl restart docker
systemctl enable docker
docker ps:列出所有正在运行的容器
docker ps -a 列出所有的容器
docker image ls:列出所有的镜像
docker stop <name>:暂停容器
docker rm <name>:删除容器
dockerps -aq 列出所有的容器 ID
docker stop $(docker ps -q) 停止所有容器
dockerrm $(docker ps -aq) 删除所有容器
dockerrmi $(docker images -q) 删除所有镜像
docker search tag 搜索镜像
docker exec -it d27bd3008ad9 /bin/bash
一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
5.总结
Rancher是一款很好用的开源容器管理解决方案,对中国的开发者比较友好,文档是中文的,管理界面也支持中文,rancher1.6.x是一款经典的版本,rancher2.0.x-rancher2.5.6.1中间的版本是还没有被SUSE收购的版本,从rancher2.6以后的版本就是被SUSE收购之后的版本,界面颜色被搞绿了但是还是走开源路线,在生产不建议使用单节点部署,生产要做高可用架构。