几个月前,我们开始尝试在我们的网站Piel.io上使用Rancher来构建我们的第一个微服务,在此期间,Rancher发布了1.0版。所以我觉得这是一个很好的时间点,我将通过三篇blog跟大家分享一下我们是如何通过Rancher来构建Piel.io的微服务交付的。
本文希望可以帮助到那些刚刚接触Rancher的用户,对Rancher已经十分熟悉的技术大拿们可以跳过。第一篇,我将介绍下如何搭建自己的Rancher Server。第二篇,我将介绍下如何构建、配置以及整合自己的Docker Registry。第三篇,我们将讨论下如何通过Stack向企业提供一个可用的平台,可用于描述、部署和管理多种的业务应用。
首先,准备一台虚拟机。我是从vutlr.com上购买了一个Ubuntu 14.04 LTS.
前提:安装Docker
curl -fsSL https://get.docker.com/ | sh
安装完成后,用docker –v命令进行验证:
docker -v
Docker version 1.10.3, build 20f81dd
成功,可以继续。
接下来下载最新的Rancher,我们可以不指定Tag。所有可以使用的Tag可从此获得:https://hub.docker.com/r/rancher/server/tags/
docker pull rancher/server:v1.0.0
v1.0.0: Pulling from rancher/server
8387d9ff0016: Already exists
3b52deaaf0ed: Already exists
4bd501fad6de: Already exists
a3ed95caeb02: Already exists
1dd2ffa08394: Already exists
6574a9c2d75b: Already exists
fedb745f2358: Already exists
951a2617430a: Already exists
04f380ccb3c6: Already exists
6367f33eed6c: Already exists
Digest: sha256:7634423082be8a3c7a7aafa71f3b344f212ce1b75ee3f4263362fbc87812bf6b
Status: Downloaded newer image for rancher/server:v1.0.0
成功!
容器环境下,可以通过volume来配置数据保持。我们先创建一个目录:
mkdir -p /data/rancher-server
运行刚才已下载的Rancher image
注:docker run可以直接下载Rancher image,为了让大家了解整个过程我在此把这两步拆解了
sudo docker run -d -v /data/rancher-server:/var/lib/mysql --restart=always -p 80:8080 rancher/server:v1.0.0
f83e74a6b8f5c20d74acad519004635a74662954634966606e9046a7be29233b
看上去已经成功了,我们来验证一下:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f83e74a6b8f5 rancher/server:v1.0.0 "/usr/bin/s6-svscan /" 35 seconds ago Up 34 seconds 3306/tcp, 0.0.0.0:80->8080/tcp distracted_elionOk, it's running, but Docker auto-named the container. So I will kill the container and run the command again with the addition of "--name rancher-server."
sudo docker run -d -v /data/rancher-server:/var/lib/mysql --restart=always -p 80:8080 --name rancher-server rancher/server:v1.0.0
1fa9cc4013e8e17f1ac175b011955308089819e8c10d423e3b06ed09c536e864
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1fa9cc4013e8 rancher/server:v1.0.0 "/usr/bin/s6-svscan /" 3 seconds ago Up 2 seconds 3306/tcp, 0.0.0.0:80->8080/tcp rancher-server
接下来访问Rancher Server主页:
好极了,现在Rancher Server已经启动,可以通过8080端口访问并配置了数据保持,当我们升级或者迁移Rancher Server时所有的配置都可以被保存。
接下来我把主题从浅色设置为了深色,你可以跳过此步骤。
同时,我们还可以通过页面右下角的设置切换显示语言,可进行一键切换。(已提供中文支持)
现在任何人都可以通过此URL访问到Rancher,所以我启用了Github认证(Rancher目前支持AD、Github、本地账户以及OpenLDAP四种认证方式)。
系统管理 > 访问控制
根据页面说面完成访问控制配置,我在此就不再重复说明了。
输入客户端ID以及客户端秘钥,Github认证页面将弹出并要求确认和授权。
配置完成后,我们已经成功设置了Rancher Server的访问控制。
让我们重启回顾下我们完成了哪些工作:
我们下载了Rancher Server 1.2.0-pre3的容器镜像并使其运行在端口8080,启动了数据保持方便日后的升级和运维操作。同时启用了通过github进行认证的访问控制。
下一篇文章,我会创建一个Docker Registry并且介绍如何在Rancher中使用它。