Rancher 使用基于 Docker 容器的部署方式。仅需简单的启动两个容器即可运行。一个容器用于管理 Rancher 服务,其他容器使用代理的方式管理主机或节点。
需求
- 任何支持 Docker 1.10.3 的 Linux 发行版。而 RancherOS,Ubuntu,RHEL/CentOS 7 经过了更多测试
- 1GB 内存
- MySQL 服务,并且设置 max_connections > 150
启动 Rancher 服务器
在安装了 Docker 的服务器上可以很简单的使用命令启动 Rancher 服务
1 | $ sudo docker run -d --restart=always -p 8080:8080 rancher/server |
RANCHER UI
Rancher 的 UI 和 API 将开放 8080 端口。Docker 镜像下载后,还需要 1-2 分钟才可以成功启动并显示页面。
访问以下地址:http://<SERVER_IP>:8080
,这里<SERVER_IP>
是指运行 Rancher 服务并可用于访问的IP地址。
一旦 UI 处于启动和运行状态,就可以开始 添加主机 。主机添加到 Rancher 后,您可以开始添加 服务 或 使用 Rancher catalog 启动模板。
开启活动目录或 OpenLDAP 支持(TLS)
为了开启 Rancher 活动目录或 OpenLDAP 支持(TLS),Rancher Server 容器在启动时需要加载证书。您需要在运行 Rancher Server 的 Linux 主机上保存证书。
启动 Rancher 服务并使用绑定挂载卷的方式加载证书,证书在容器中 必须 使用ca.crt
命名。
1 | $ sudo docker run -d --restart=always -p 8080:8080 \ |
您可以通过检查 Rancher Server 容器日志确认ca.crt
已经成功传递给 Rancher。
1 | $ docker logs <server_container_id> |
在日志的开始,会提示证书 ca.crt
已经添加。
1 | DEFAULT_CATTLE_RANCHER_COMPOSE_WINDOWS_URL=https://releases.rancher.com/compose/beta/latest/rancher-compose-windows-386.zip |
绑定挂载 MYSQL 卷
如果你想将容器内数据库持久化在主机上,可以在启动 Rancher Server 时绑定并挂载 MySQL 卷。
1 | $ sudo docker run -d -v <host_vol>:/var/lib/mysql --restart=always -p 8080:8080 rancher/server |
使用这个命令,数据库将持久化在主机上。如果您是一个已有的 Rancher 容器,请参照我们的 升级文档 。
使用外部数据库
如果您更希望使用外部数据库运行 Rancher Server ,请参照如下操作连接 Rancher 到数据库。您需要一个已经创建好的数据库,但是不需要创建任何数据库对象,Rancher 将会自动创建所有相关的数据库对象。
以下环境变量需要通过docker run
命令启动 Rancher Server 来支持外部数据库。
- CATTLE_DB_CATTLE_MYSQL_HOST: 数据库实例的主机名或IP地址
- CATTLE_DB_CATTLE_MYSQL_PORT: 3306
- CATTLE_DB_CATTLE_MYSQL_NAME: 数据库名
- CATTLE_DB_CATTLE_USERNAME: 用户名
- CATTLE_DB_CATTLE_PASSWORD: 密码
注意:
数据库名称和用户必须已经存在,Rancher 不会创建数据库。
这是一个用于创建数据库和用户的 SQL 命令。
1 | sql CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8'; GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle'; GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle'; |
创建数据库和用户后,使用环境变量启动 Rancher Server。
1 | $ sudo docker run -d --restart=always -p 8080:8080 \ |
使用 HTTP 代理环境启动 Rancher Server
为了使用 HTTP 代理,需要修改 Docker 服务支持代理。在 Rancher Server 启动前,编辑/etc/defalut/docker
文件指定您的代理并重新启动 Docker 服务。
1 | $ sudo vi /etc/default/docker |
在这个文件中编辑#export http_proxy="http://127.0.0.1:3128/"
指向您的代理。保存修改并重新启动Docker服务,每个操作系统重新启动Docker服务的方式是不同的。
注意:
如果您使用 systemd 运行 Docker ,请参照 Docker 文档 配置 HTTP 代理。
为了加载 Rancher catalog ,需要在启动 Rancher Server 时加载 HTTP 代理的环境变量信息。
1 | $ sudo docker run -d \ |
如果不使用 Rancher catalog ,则使用正常方式运行启动 Rancher Server 命令。
在 Rancher 中 添加主机 ,无需使用 HTTP 代理。
From: http://docs.rancher.com/rancher/installing-rancher/installing-server/