Rancher1.6安装使用
1 前言
Rancher1.x版本已经停止维护了,推荐使用Rancher2.x版本。
2 安装
2.1 单容器部署 Rancher Server - (非 HA)
最简单的(只适用于测试)
docker run -d --restart=unless-stopped -p 8080:8080 rancher/server
2.2 单容器部署 Rancher Server-使用外部数据库
除了使用内部的数据库,您可以启动一个 Rancher Server 并使用一个外部的数据库。启动命令与之前一样,但添加了一些额外的参数去说明如何连接您的外部数据库。
注意: 在您的外部数据库中,只需要提前创建数据库名和数据库用户。Rancher 会自动创建 Rancher 所需要的数据库表。
创建数据库和数据库用户
CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';
启动一个 Rancher 连接一个外部数据库,您需要在启动容器的命令中添加额外参数。
$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server --db-host myhost.example.com --db-port 3306 --db-user username --db-pass password --db-name cattle
2.3 单容器部署 Rancher Server-挂载 MySQL 数据库的数据目录
在 Rancher Server 容器中,如果您想使用一个主机上的卷来持久化数据库,如下命令可以在启动 Rancher 时挂载 MySQL 的数据卷。
docker run -d -v /data/rancher/mysql:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/server
3 升级
3.1 单独升级一个容器(non-HA)
停掉正在运行的 Rancher Server 容器
docker stop rancher
创建一个rancher-data
容器。注意:如果您已经升级了并且已经有了一个rancher-data
容器,该步可以跳过。
docker create --volumes-from rancher --name rancher-data rancher/server:latest
拉取 Rancher Server 的最新镜像。注意:如果您跳过该步并尝试运行latest
镜像,这将不会自动拉取最新的镜像。
docker pull rancher/server:latest
用rancher-data
中的数据库启动一个 Rancher Server 容器。启动之后,Rancher 中的任何变化将会被保存在rancher-data
容器中。
注意: 根据您 Rancher Server 时间的长短,某些数据库迁移可能需要比预期的更长的时间。 升级过程中请不要停止升级,因为下次升级时会遇到数据库迁移错误。
docker run -d --volumes-from rancher-data --restart=unless-stopped \
-p 8080:8080 rancher/server:latest
删掉旧的 Rancher Server 容器。注意:如果您只是停止了容器,当您使用--restart=always
,并且机器重启之后,该容器将会重启。我们建议使用--restart=unless-stopped
并且当升级成功之后删除它。
3.2 单独升级一个容器(non-HA)-外部数据库
如果您使用外部数据库启动 Rancher Server,您可以先停止原来的 Rancher Server 容器,并使用相同的使用外部数据库的安装说明。升级您的 Rancher Server 之前,建议您备份外部数据库。 新服务器启动并运行后,可以删除旧的 Rancher Server 容器。
3.3 内置数据库迁移至外置数据库并升级
这个情况比较特殊
导出 Rancher Server 容器的内部数据库
docker exec rancher mysqldump cattle > dump.sql
创建数据库和数据库用户
CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'Cattle@123';
导入内置数据库的数据
mysql -ucattle -pCattle@123 cattle < dump.sql
创建一个rancher-data
容器。这一步其实我并不知道需不需要,反正最好创建一下。
docker create --volumes-from rancher --name rancher-data rancher/server:latest
启动一个 Rancher 连接一个外部数据库,您需要在启动容器的命令中添加额外参数。
docker run -d --volumes-from rancher-data --restart=unless-stopped -p 8080:8080 rancher/server \
--db-host 192.168.1.71 --db-port 3306 --db-user cattle --db-pass Cattle@123 --db-name cattle