https://www.cnrancher.com/
https://github.com/rancher/rancher/releases
https://hub.docker.com/r/rancher/server/ 1.0
https://hub.docker.com/r/rancher/rancher/ 2.0
https://abc.htmltoo.com/thread-45073.htm # centos7安装rancher2,搭建统一开发环境
背景说明:由于公司项目众多,nginx重写复杂,各种缓存等原因导致开发环境搭建很麻烦,开发效率低下。无需本地安装docker环境。
软件清单
docker 服务器
rancher 容器管理平台
syncthing 文件同步
1.操作说明:
使用docker说明指南: https://abc.htmltoo.com/thread-34911.htm
Docker run 命令: https://abc.htmltoo.com/thread-273.htm
--restart=unless-stopped: https://abc.htmltoo.com/thread-274.htm
rancher-1.6,配置部署: https://abc.htmltoo.com/thread-44856.htm
Docker本机镜像仓库搭建,镜像界面管理,对外使用: https://abc.htmltoo.com/thread-43493.htm
rancher部署应用,php,nginx,mariadb,memcached,mongo,redis,tomcat: https://abc.htmltoo.com/thread-43492.htm
使用rancher搭建zabbix的组合是mysql+docker+zabix-server: https://abc.htmltoo.com/thread-317.htm
rancher部署分类应用,以及导出配置文件: https://abc.htmltoo.com/thread-44930.htm
2.单容器部署 (NON-HA):
安装:rancher 1.6
docker pull rancher/server:latest
docker run -d --name rancher-server --restart=unless-stopped -p 8080:8080 rancher/server:latest
访问:http://ip:8080
当UI已经启动并运行,你可以先添加主机 或者在应用商店中选择一个容器编排引擎。在默认情况下,如果没有选择不同的容器编排引擎,当前环境会使用Cattle引擎。在主机被添加都Rancher中后,你可以开始添加服务或者从应用商店通过应用模版启动一个应用。
安装好rancher后,访问-http://ip:8080
默认Rancher-catalog k8s YML中 服务镜像都是从谷歌仓库拉取,在没有科学上网的情况下,国内环境几乎无法成功拉取镜像。为了解决这一问题,优化中国区用户的使用体验,我们修改了http://git.oschina.net/rancher/rancher-catalog仓库中的YML文件,将相关的镜像也同步到国内仓库,通过替换默认商店地址来实现加速部署。
添加变量启动Rancher_server:
docker run -d \
--restart=unless-stopped \
-e DEFAULT_CATTLE_CATALOG_URL='{"catalogs":{"library":{"url":"http://git.oschina.net/rancher/rancher-catalog.git","branch":"k8s-cn"}}}’ \
--name rancher-server \
-p 8080:8080 \
rancher/server
docker logs -f rancher-server在Rancher中添加为中国区优化的k8s应用商店的步骤和方法:
1、停用 rancher 应用商店中的“Rancher官方认证”商店和“社区贡献”商店
2、添加应用商店:
名称 地址 分支
======================================================
library https://github.com/niusmallnan/rancher-catalog.git k8s-cn
harbor https://github.com/Balldog/harbor-ranchersetup.git master
community https://github.com/rancher/community-catalog.git master
======================================================
“保存”即可
注意:把相关的镜像下载到本地并自动运行需要时间,根据网络带宽情况,大约要隔几分钟时间才能正常显示。
3. 添加负载均衡服务
在应用添加负载均衡服务,主要为外部域名访问到不同容器。
4. 添加syncthing
刚开始本来用Samba, 但担心服务器挂掉后代码无法查看,所以才选用syncthing,就算磁盘坏掉都不用担心代码丢失。
在rancher页面上添加或直接run容器,注意需要将数据目录挂载出来
docker run --network=host \
-v /wherever/st-cfg:/var/syncthing/config \
-v /wherever/st-sync:/var/syncthing \
syncthing/syncthing:latest
启动后,访问 http://:8384
使用说明:https://docs.syncthing.net/index.html
5. 本地安装syncthing
syncthing跨所有平台,下载自己系统相应的版本 https://syncthing.net/
下载实时同步插件 Syncthing-inotify https://github.com/syncthing/syncthing-inotify
启动syncthing客户端,web访问 http://127.0.0.1:8384
启动Syncthing-inotify,这样修改文件会实时同步。
添加远程设备,设置远程设备ID(操作->显示ID),服务器端和本地都需要相互添加。
6. 设置需要同步的代码
本地syncthing,添加文件夹,设名称和路径,并共享给服务端,保存。
注意:在同步文件路径根目录添加 .stignore 文件,忽略掉不需要同步的文件或文件夹。例如:
.svn
.git
.idea
down/
phperrorlog/
*.zip
testUnit/
temp/
FonDoc/
tests/
test/
客户端保存后,服务端syncthing,会自动提示有客户端共享文件,修改好服务端保存路径。
7. rancher添加web容器
启动web容器,注意代码挂载路径。也可将php和nginx配置文件挂载出来,便于实时修改。
version: '2'
services:
dongxu-php56:
image: dzer/php-meilele-dev:v1
environment:
DOCUMENT_ROOT: /app
stdin_open: true
volumes:
- /data/syncthing/dongxu/meilele:/app:rw
- /data/syncthing/meilele_nginx_conf:/usr/local/nginx/conf:rw
- /data/syncthing/meilele_php_conf:/usr/local/php/etc:rw
tty: true
extra_hosts:
- common.meilele.com:127.0.0.1
- memcache.meilele.com:192.168.0.250
- clubmemcache.meilele.com:192.168.0.250
- codememc.meilele.com:192.168.0.250
- zxmemcache.meilele.com:192.168.0.250
- adminmemcache.meilele.com:192.168.0.250
- wapmemc.meilele.com:192.168.0.250
- rule.meilele.com:192.168.0.22
- ip.meilele.com:192.169.0.250
- ipadmemcache.meilele.com:192.168.0.250
- imgmemcache.meilele.com:192.168.0.250
- dcmemcache.meilele.com:192.168.0.250
- factory.meilele.com:192.168.0.250
- zxback.meilele.com:127.0.0.1
- slave.meilele.com:192.168.0.23
8. rancher lb-service添加域名
在rancher lb中添加需要访问的域名,并指向相应的容器。
9. 修改本地hosts
将需要访问的域名和服务器ip 添加到 本地hosts.
10.添加主机:
安装docker,设置防火墙,脚本注册Rancher.
11.添加应用:Web
12.1添加数据库服务:
a.选择 Add Service 增加 数据库服务,输入名称 database b.选择使用mysql 镜像 c.点击高级选项卡
d.点击添加环境变量 e.数据环境变量的内容,MYSQL_DATABASE, MYSQL_ROOT_PASSWORD -> 启动
12.2添加服务:
Nginx-cluster run:十个容器 镜像:nginx:latest
需要数据库,选择所依赖的数据库服务 ->启动
13.添加负载均衡器:
Web-SLB run:一个容器 设置端口映射,源:88 目标:应用-80 --》启用
连接到 http://ip:88 打开负载均衡的服务网址访问测试。
14.点击架构图,可以清晰看到逻辑关系.
15.设置GitHub应用: https://github.com/
点击Settings,然后点击Applications进行设置。
Nginx Homepage URL,callback URL: http://192.168.10.254:8080/
->设置 Rancher 使用你的GitHub应用验证: 新创建GitHub应用的Client ID和Secret复制粘贴.
16. 以特权模式运行容器:
入口: /usr/sbin/init