阿里云搭建Rancher服务
本文详细介绍如何在阿里云上搭建Rancher服务,包括环境准备、Rancher Server安装、Agent配置和使用管理等内容。
一、环境准备
1. 阿里云ECS实例准备
- 登录阿里云控制台,创建一台ECS实例:
- 操作系统:Ubuntu 18.04 LTS 或 CentOS 7
- 实例规格:至少2核4G内存
- 存储空间:至少40GB
- 网络:配置安全组,开放8080端口(Rancher UI)和2376端口(Docker API)
2. 安装Docker
Ubuntu系统:
1 | # 更新包管理器 |
CentOS系统:
1 | # 安装依赖包 |
3. 数据库准备
Rancher支持使用内置SQLite或外部MySQL数据库。推荐使用外部MySQL数据库以提高可靠性:
在阿里云RDS控制台创建MySQL实例:
- 版本:MySQL 5.7+
- 规格:根据实际需求选择
- 存储空间:至少20GB
创建数据库和用户:
1
2
3
4CREATE 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 | # 拉取Rancher Server镜像 |
2. 启动Rancher Server
使用外部MySQL数据库启动Rancher Server:
1 | docker run -d --restart=unless-stopped -p 8080:8080 \ |
参数说明:
--restart=unless-stopped:容器退出时自动重启-p 8080:8080:映射容器8080端口到主机8080端口-e:设置环境变量,配置数据库连接信息
3. 访问Rancher UI
在浏览器中访问:http://your_ecs_ip:8080
首次访问时,需要设置管理员密码并配置Rancher服务器URL。
三、添加主机到Rancher
1. 创建环境
- 登录Rancher UI
- 点击 环境管理 → 添加环境
- 填写环境名称(如:Production)
- 选择环境模板(如:Cattle)
- 点击 创建
2. 添加主机
- 在环境中点击 基础设施 → 主机 → 添加主机
- 复制生成的Docker命令
- 在要添加的主机上执行该命令
例如:
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. 部署应用
- 点击 应用 → 全部 → 添加应用
- 填写应用名称
- 点击 创建
- 在应用中点击 添加服务
- 填写服务信息:
- 服务名称
- 容器镜像
- 端口映射
- 环境变量
- 其他配置
- 点击 创建
2. 服务管理
- 启动/停止服务:在服务列表中操作
- 伸缩服务:调整服务副本数
- 升级服务:更新容器镜像或配置
- 查看日志:查看容器运行日志
- 执行命令:在容器中执行命令
3. 网络管理
Rancher提供多种网络选项:
- 管理网络:Rancher默认网络
- IPsec网络:加密网络通信
- VXLAN网络:覆盖网络
- Macvlan网络:直接使用物理网络
五、Rancher配置和优化
1. 配置认证
Rancher支持多种认证方式:
- 本地认证
- LDAP认证
- Active Directory认证
- GitHub认证
- 其他OAuth认证
2. 配置存储
Rancher支持多种存储选项:
- 本地存储
- NFS存储
- EBS存储
- S3存储
3. 高可用性配置
为了提高Rancher的可靠性,建议配置高可用部署:
- 部署多个Rancher Server实例
- 使用负载均衡器分发请求
- 配置共享数据库
六、常见问题解决
1. Rancher Server启动失败
问题:容器启动后无法访问UI
解决方案:
- 检查数据库连接是否正确
- 查看容器日志:
docker logs <container-id> - 确保8080端口未被占用
2. 主机添加失败
问题:执行agent命令后主机状态为 注册 但无法变为 活跃
解决方案:
- 检查网络连接是否正常
- 确保主机防火墙允许2376端口
- 查看agent容器日志:
docker logs <agent-container-id>
3. 服务部署失败
问题:服务状态为 启动中 但无法完成
解决方案:
- 检查镜像是否存在
- 查看服务日志
- 检查资源是否充足
七、最佳实践
- 环境隔离:为不同环境(开发、测试、生产)创建独立的Rancher环境
- 资源管理:合理设置容器资源限制
- 网络配置:根据应用需求选择合适的网络模式
- 存储管理:使用持久化存储保存重要数据
- 监控告警:配置监控和告警机制
- 备份策略:定期备份Rancher数据库
- 版本管理:使用固定版本的Rancher镜像,避免自动更新
八、Rancher 2.x 迁移
注意:Rancher 1.x已经停止维护,建议迁移到Rancher 2.x:
- 新部署Rancher 2.x
- 导出1.x中的应用配置
- 在2.x中重新部署应用
- 逐步迁移流量