拉开大变革序幕(中):Docker 场景化尝试

runC 进行时

由Docker公司和CoreOS,加上一些顶牛的大公司,如Google,IBM,Microsoft,EMC,Amazon,思科,华为等等,在Linux基金会的支持下于2015年6月份创立的一个统一容器标准的组织。

许多厂商会在Docker和CoreOS之间犹豫不决,观望对工业界来说是个明智之举也是个掣肘之举,谁也不敢冒进。统一标准,意义重大。

OCP的一大产物就是runC,它跟docker一样也是用来大量生产和运行容器(containers)的,不过它是遵循OCP规范的,它与Docker的另一个不同在于它不需要守护进程,只需要一个配置文件一个开放的文件夹,一个进程就可以跑。不过docker镜像可以用runC来运行。 
Github: 

下面是runC官网给出的示例,我感觉要比网上其他博客和教程说得清晰:

拉开大变革序幕(中):Docker 场景化尝试_第1张图片

这样这个容器就运行起来了,不过它就不需要与daemon打交道了。不过在这之前我们仍然用到了docker hub,以及docker技术这个生态圈。我想这样引入runC的愿景就是

Docker来,run Docker;其它containers来,run 其它。

当然runC仍处于研制阶段,现在还不能看出和实践出它的魅力。

所以我们队runC的态度是观望,目前还谈不上期待。


MSP 与云计算

Managed Service Provider (MSP)

管理服务(managed service)是云计算最古老的形式之一。说白了,就是我作为MSP提供商可以让企业成为我的客户,帮助企业运维应用,或者提供给企业一些保障信息安全的服务。

时至今天,回归原始,还原如火如荼的云计算的本质。

我想目前的云计算最大的受众还是企业。


HAProxy 负载均衡

“HAProxy(High Available Proxy)是基于四层和七层的高可用负载均衡代理服务器,配置简单、支持多达上万条并发请求。很多web站点都用HAProxy来作为七层负载均衡解决方案”


这个是HAProxy官方给出的架构图。 


拉开大变革序幕(中):Docker 场景化尝试_第2张图片 

下面是使用HAProxy的探索。

拉开大变革序幕(中):Docker 场景化尝试_第3张图片

安装配置HAProxy:

#cd /usr/local/src
#wget http://www.haproxy.org/download/1.7/src/devel/haproxy-1.7-dev0.tar.gz (截止到2015/11/5 这是最新版本)
#tar xf haproxy-1.7-dev0.tar.gz
#cd haproxy-1.7-dev0
#make TARGET=linux26 ARCH=x86_64
#TARGET是指定内核版本(我的内核是3.10,这里也选择linux26),ARCH指定CPU架构,我使用的是64bit系统
#make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

创建配置文件和启动文件:

#mkdir /etc/haproxy
#cp examples/haproxy.init /etc/init.d/haproxy
#chmod +x /etc/init.d/haproxy
#ln -s /usr/local/sbin/haproxy /usr/sbin/ (创建启动文件)
#mkdir /usr/share/haproxy
  • 1
  • 2
  • 3
  • 4
  • 5

编辑配置文件:

vim /etc/haproxy/haproxy.cfg

global
    log 127.0.0.1   local0  #日志输出配置,所有日志都记录在本机,通过local0输出
    log 127.0.0.1   local1 notice
    #log loghost    local0 info
    maxconn 4096                #最大连接数
    chroot /usr/share/haproxy   #改变当前工作目录
    uid root                  #所属用户的uid
    gid root                  #所属运行的gid
    daemon                  #以后台形式运行haproxy
    #debug
    #quiet

defaults
    log global
    mode    http
  #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
    option  httplog
    option  dontlognull
    option  redispatch
  #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    option  abortonclose
  #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
    retries 3               #两次连接失败就认为是服务器不可用
    maxconn 2000            #默认的最大连接数
  #timeout http-keep-alive 10s
  # timeout queue 1m
    contimeout  5000        #连接超时
    clitimeout  50000       #客户端超时
    srvtimeout  50000       #服务器超时
    timeout check 5s            #心跳检测超时
    stats refresh 30s           #统计页面自动刷新时间
    stats uri  /stats           #统计页面url
    stats realm baison-test-Haproxy         #统计页面密码框上提示文本
    stats auth admin:admin123           #统计页面用户名和密码设置
    stats hide-version                  #隐藏统计页面上HAProxy的版本信息
frontend www
    bind *:80
   #这里建议使用bind *:80的方式,要不然做集群高可用的时候有问题,vip切换到其他机器就不能访问了
    acl web hdr(host) -i ip_0
   #acl后面是规则名称,-i是要访问的域名,如果访问ip_0这个域名就分发到下面的webserver 的作用域。
    use_backend webserver if web

backend webserver                   #webserver作用域
    mode http
    balance   roundrobin
   #banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数
    #option  httpchk /index.html
    server     web01 ip_1:port_1  check inter 2000 fall 3 weight 30
    server     web01 ip_2:port_2  check inter 2000 fall 3 weight 20
    server     web01 ip_3:port_3  check inter 2000 fall 3 weight 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

最后启动服务并查看:

/usr/sbin/haproxy  -f /etc/haproxy/haproxy.cfg
  • 1

浏览器访问: x1.x2.x3.x4/stats 
拉开大变革序幕(中):Docker 场景化尝试_第4张图片


Docker Swarm 容器集群管理


第一步,安装swarm

# docker pull swarm
  • 1

验证

# docker run --rm swarm -v
  • 1

出现

你可能感兴趣的:(拉开大变革序幕(中):Docker 场景化尝试)