利用Rancher构建容器服务-第一篇

几个月前,我们开始尝试在我们的网站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_elion

 

Ok, 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主页:

20160919092458

 

好极了,现在Rancher Server已经启动,可以通过8080端口访问并配置了数据保持,当我们升级或者迁移Rancher Server时所有的配置都可以被保存。

接下来我把主题从浅色设置为了深色,你可以跳过此步骤。

20160919092524

同时,我们还可以通过页面右下角的设置切换显示语言,可进行一键切换。(已提供中文支持)

20160919092531

现在任何人都可以通过此URL访问到Rancher,所以我启用了Github认证(Rancher目前支持AD、Github、本地账户以及OpenLDAP四种认证方式)。

系统管理 > 访问控制

根据页面说面完成访问控制配置,我在此就不再重复说明了。

20160919092539

输入客户端ID以及客户端秘钥,Github认证页面将弹出并要求确认和授权。

配置完成后,我们已经成功设置了Rancher Server的访问控制。

20160919092546

让我们重启回顾下我们完成了哪些工作:

我们下载了Rancher Server 1.2.0-pre3的容器镜像并使其运行在端口8080,启动了数据保持方便日后的升级和运维操作。同时启用了通过github进行认证的访问控制。

下一篇文章,我会创建一个Docker Registry并且介绍如何在Rancher中使用它。

K8S中文社区微信公众号
分享到:更多 ()