单节点服务器安装

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
2
$ sudo docker run -d --restart=always -p 8080:8080 \
-v /dir_that_contains_the_cert/cert.crt:/ca.crt rancher/server

您可以通过检查 Rancher Server 容器日志确认ca.crt已经成功传递给 Rancher。

1
$ docker logs <server_container_id>

在日志的开始,会提示证书 ca.crt 已经添加。

1
2
3
4
5
6
7
DEFAULT_CATTLE_RANCHER_COMPOSE_WINDOWS_URL=https://releases.rancher.com/compose/beta/latest/rancher-compose-windows-386.zip
Adding ca.crt to Certs.
Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....
done.
done.
[BOOTSTRAP] Starting Cattle

绑定挂载 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
2
3
4
5
6
7
$ sudo docker run -d --restart=always -p 8080:8080 \
-e CATTLE_DB_CATTLE_MYSQL_HOST=<hostname or IP of MySQL instance> \
-e CATTLE_DB_CATTLE_MYSQL_PORT=<port> \
-e CATTLE_DB_CATTLE_MYSQL_NAME=<Name of Database> \
-e CATTLE_DB_CATTLE_USERNAME=<Username> \
-e CATTLE_DB_CATTLE_PASSWORD=<Password> \
rancher/server

使用 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
2
3
4
5
$ sudo docker run -d \
-e http_proxy=<proxyURL> \
-e https_proxy=<proxyURL> \
-e no_proxy="localhost,127.0.0.1" \
--restart=always -p 8080:8080 rancher/server

如果不使用 Rancher catalog ,则使用正常方式运行启动 Rancher Server 命令。

在 Rancher 中 添加主机 ,无需使用 HTTP 代理。


From: http://docs.rancher.com/rancher/installing-rancher/installing-server/