本文详细介绍如何在阿里云上搭建Rancher服务,包括环境准备、Rancher Server安装、Agent配置和使用管理等内容。

一、环境准备

1. 阿里云ECS实例准备

  1. 登录阿里云控制台,创建一台ECS实例:
    • 操作系统:Ubuntu 18.04 LTS 或 CentOS 7
    • 实例规格:至少2核4G内存
    • 存储空间:至少40GB
    • 网络:配置安全组,开放8080端口(Rancher UI)和2376端口(Docker API)

2. 安装Docker

Ubuntu系统:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 更新包管理器
sudo apt-get update

# 安装依赖包
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加Docker GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 添加Docker仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 安装Docker CE
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker

# 验证Docker安装
docker --version

CentOS系统:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加Docker仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker CE
sudo yum install docker-ce docker-ce-cli containerd.io

# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker

# 验证Docker安装
docker --version

3. 数据库准备

Rancher支持使用内置SQLite或外部MySQL数据库。推荐使用外部MySQL数据库以提高可靠性:

  1. 在阿里云RDS控制台创建MySQL实例:

    • 版本:MySQL 5.7+
    • 规格:根据实际需求选择
    • 存储空间:至少20GB
  2. 创建数据库和用户:

    1
    2
    3
    4
    CREATE DATABASE rancher CHARACTER SET utf8 COLLATE utf8_general_ci;
    CREATE USER 'rancher'@'%' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON rancher.* TO 'rancher'@'%';
    FLUSH PRIVILEGES;

二、安装Rancher Server

1. 拉取Rancher镜像

1
2
# 拉取Rancher Server镜像
docker pull rancher/server:stable

2. 启动Rancher Server

使用外部MySQL数据库启动Rancher Server:

1
2
3
4
5
6
7
docker run -d --restart=unless-stopped -p 8080:8080 \
-e CATTLE_DB_CATTLE_MYSQL_HOST=your_rds_endpoint \
-e CATTLE_DB_CATTLE_MYSQL_PORT=3306 \
-e CATTLE_DB_CATTLE_MYSQL_NAME=rancher \
-e CATTLE_DB_CATTLE_USERNAME=rancher \
-e CATTLE_DB_CATTLE_PASSWORD=your_password \
rancher/server:stable

参数说明:

  • --restart=unless-stopped:容器退出时自动重启
  • -p 8080:8080:映射容器8080端口到主机8080端口
  • -e:设置环境变量,配置数据库连接信息

3. 访问Rancher UI

在浏览器中访问:http://your_ecs_ip:8080

首次访问时,需要设置管理员密码并配置Rancher服务器URL。

三、添加主机到Rancher

1. 创建环境

  1. 登录Rancher UI
  2. 点击 环境管理添加环境
  3. 填写环境名称(如:Production)
  4. 选择环境模板(如:Cattle)
  5. 点击 创建

2. 添加主机

  1. 在环境中点击 基础设施主机添加主机
  2. 复制生成的Docker命令
  3. 在要添加的主机上执行该命令

例如:

1
docker run -d --privileged --restart=unless-stopped --net=host -v /var/run/docker.sock:/var/run/docker.sock rancher/agent:v1.2.10 http://your_rancher_server_ip:8080/v1/scripts/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

3. 验证主机添加

在Rancher UI的主机列表中查看新添加的主机状态,等待其变为 活跃 状态。

四、使用Rancher管理容器

1. 部署应用

  1. 点击 应用全部添加应用
  2. 填写应用名称
  3. 点击 创建
  4. 在应用中点击 添加服务
  5. 填写服务信息:
    • 服务名称
    • 容器镜像
    • 端口映射
    • 环境变量
    • 其他配置
  6. 点击 创建

2. 服务管理

  • 启动/停止服务:在服务列表中操作
  • 伸缩服务:调整服务副本数
  • 升级服务:更新容器镜像或配置
  • 查看日志:查看容器运行日志
  • 执行命令:在容器中执行命令

3. 网络管理

Rancher提供多种网络选项:

  • 管理网络:Rancher默认网络
  • IPsec网络:加密网络通信
  • VXLAN网络:覆盖网络
  • Macvlan网络:直接使用物理网络

五、Rancher配置和优化

1. 配置认证

Rancher支持多种认证方式:

  • 本地认证
  • LDAP认证
  • Active Directory认证
  • GitHub认证
  • 其他OAuth认证

2. 配置存储

Rancher支持多种存储选项:

  • 本地存储
  • NFS存储
  • EBS存储
  • S3存储

3. 高可用性配置

为了提高Rancher的可靠性,建议配置高可用部署:

  1. 部署多个Rancher Server实例
  2. 使用负载均衡器分发请求
  3. 配置共享数据库

六、常见问题解决

1. Rancher Server启动失败

问题:容器启动后无法访问UI

解决方案

  • 检查数据库连接是否正确
  • 查看容器日志:docker logs <container-id>
  • 确保8080端口未被占用

2. 主机添加失败

问题:执行agent命令后主机状态为 注册 但无法变为 活跃

解决方案

  • 检查网络连接是否正常
  • 确保主机防火墙允许2376端口
  • 查看agent容器日志:docker logs <agent-container-id>

3. 服务部署失败

问题:服务状态为 启动中 但无法完成

解决方案

  • 检查镜像是否存在
  • 查看服务日志
  • 检查资源是否充足

七、最佳实践

  1. 环境隔离:为不同环境(开发、测试、生产)创建独立的Rancher环境
  2. 资源管理:合理设置容器资源限制
  3. 网络配置:根据应用需求选择合适的网络模式
  4. 存储管理:使用持久化存储保存重要数据
  5. 监控告警:配置监控和告警机制
  6. 备份策略:定期备份Rancher数据库
  7. 版本管理:使用固定版本的Rancher镜像,避免自动更新

八、Rancher 2.x 迁移

注意:Rancher 1.x已经停止维护,建议迁移到Rancher 2.x:

  1. 新部署Rancher 2.x
  2. 导出1.x中的应用配置
  3. 在2.x中重新部署应用
  4. 逐步迁移流量

九、参考资料