设为首页 收藏本站
查看: 921|回复: 0

[经验分享] 叫板OpenStack:用Docker实现私有云

[复制链接]

尚未签到

发表于 2015-4-11 13:15:29 | 显示全部楼层 |阅读模式
  看到各大厂商的云主机,会不会觉得高大上?目前大公司的主流方案是OpenStack,比如某个公司的私有云
DSC0000.jpg
  其实,我们可以通过Docker可以很容易实现自己的私有云。
  下面进入正题。
  假 设你所在的公司拥有一台功能强悍的服务器,假设是centos,但开发人员,测试人员如果都在这一台主机上进行开发,测试,后果是灾难性的,但由于只有一 台服务器,你们老板甚至还想把这剩余的性能榨取出来搭建一些服务卖给大众...以往的话,开发,测试人员肯定要摔键盘了,这不是坑爹么?但如果你会 Docker,就能很容易实现这一目标,升职加薪,当上总经理,出任CEO,赢取白富美,迎来人生的巅峰呢!
  
  是不是有点小激动了?来吧,哥教你怎么做。
  
  一.升级Centos内核
  官方推荐内核使用3.8以上,那我们升到长期稳定版的3.10.

[iyunv@iZ2893wjzgyZ ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[iyunv@iZ2893wjzgyZ ~]# rpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
[iyunv@iZ2893wjzgyZ ~]# yum --enablerepo=elrepo-kernel install kernel-lt -y
[iyunv@iZ2893wjzgyZ ~]# vim /etc/grub.conf default=1 改为default=0
[iyunv@iZ2893wjzgyZ ~]# reboot
[iyunv@iZ2893wjzgyZ ~]# uname -a
Linux iZ2893wjzgyZ 3.10.65-1.el6.elrepo.x86_64 #1 SMP Sat Jan 17 10:36:35 EST 2015 x86_64 x86_64 x86_64 GNU/Linux
  
  二.安装docker

[iyunv@iZ2893wjzgyZ ~]# yum install http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
[iyunv@iZ2893wjzgyZ ~]# yum install docker-io
  
  三.启动docker

[iyunv@iZ2893wjzgyZ ~]# service docker start
Starting cgconfig service: [ OK ]
Starting docker: [ OK ]
  
  四.获取镜像
  由于镜像仓库在国内,国内慢的令人发指,推荐有import方式使用镜像(此例采用的此种镜像方案可以很容易安装ssh服务),在http://openvz.org/Download/templates/precreated中有很多压缩的镜像文件,可以将这些文件下载后采用import方式使用镜像

# wget http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz
# cat ubuntu-14.04-x86_64-minimal.tar.gz  |docker import - ubuntu:14.04
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04        05ac7c0b9383        17 seconds ago         215.5 MB
  这样我们就可以使用这个镜像作为自己的Base镜像
  
  五.实现sshd,在Base镜像基础上生成一个新镜像
  #docker run -t -i ubuntu:base /bin/bash
  root@050f6efc5ed6:/# vim  /etc/apt/sources.list
  deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse  
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse  
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse  
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse  
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse  
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse  
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse  
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse  
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse  
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse  
  root@050f6efc5ed6:/# apt-get update
  安装supervisor服务
  
  root@050f6efc5ed6:/# apt-get supervisor  
  
  root@050f6efc5ed6:/# cp supervisord.conf conf.d/  
  
  root@050f6efc5ed6:/# cd conf.d/  
  
  root@050f6efc5ed6:/# vi supervisord.conf  
  


  • ; supervisor config file  
  •   
  • [unix_http_server]  
  • file=/var/run/supervisor.sock   ; (the path to the socket file)  
  • chmod=0700                       ; sockef file mode (default 0700)  
  •   
  • [supervisord]  
  • logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)  
  • pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)  
  • childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)  
  • nodaemon=true                         ;(修改该软件的启动模式为非daemon,否则docker 在执行的时候会直接退出)  
  • [include]  
  • files = /etc/supervisor/conf.d/*.conf  
  •   
  • [program:sshd]  
  • command = /usr/sbin/sshd -D        ;
  
  root@050f6efc5ed6:/# mkdir /var/run/sshd  
  
  root@050f6efc5ed6:/# passwd root
  
  root@050f6efc5ed6:/# vi /etc/ssh/sshd_config
  root@050f6efc5ed6:/# exit
  退出之后自动生成一个容器,接下来把容器commit生成封装了sshd的镜像

  # docker commit f3c8  ubuntu  

  5c21b6cf7ab3f60693f9b6746a5ec0d173fd484462b2eb0b23ecd2692b1aff6b

  
  [iyunv@iZ2893wjzgyZ tmp]# docker images
  
  REPOSITORY                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
  
  ubuntu                           sshd                02c4391d40a0        47 minutes ago      661.4 MB
  
  六.开始分配容器
  [iyunv@iZ2893wjzgyZ tmp]# docker run -p 301:22 -d --name test ubuntu /usr/bin/supervisord

  [iyunv@iZ2893wjzgyZ tmp]# docker run -p 302:22 -d --name dev ubuntu /usr/bin/supervisord
  [iyunv@iZ2893wjzgyZ tmp]# docker run -p 303:22 -d --name client1 ubuntu /usr/bin/supervisord
  .......
  [iyunv@iZ2893wjzgyZ tmp]# docker run -p xxxxx:22 -d --name clientN ubuntu /usr/bin/supervisord
  
  让我们进入容器看一看,瞧一瞧(114.215.86.228是宿主机的IP)
   DSC0001.jpg
  通过Xshell即可进入。
  
  这样就顺利隔离了N个容器,且每一个都是以党中央centos领导下的纯净的ubuntu系统,按这种分配方式,所有容器性能和宿主机一样,让我们看一看:
  Centos:
   DSC0002.jpg
  容器:test
  
  
  七.搭建自己的私有仓库
        老板现在用这台闲置的主机赚了很多钱,于是公司快速发展,老板尝到甜头,又买来了几十台服务器,这时候,抠门老板想了想,每台主机这么搞一次,我岂不是要多给几天工钱?
        服务的封装才是Docker的杀手锏,怎么可能让这种工作重复数十次?我们可以搭建自己的私有仓库。有点类似github的方式,将封装好的镜像push到仓库,其他主机装好docker后,pull下来即可,在这里不做说明。
        

  八.扩展
         不同人群需要的主机性能不同,总不能所有的人都分配一样的主机吧?这就涉及到容器的管理了,老板意识到这个问题,有一天对开发说,你看看人家openstack管理界面那么高大上,还能将不同主机切割不同的性能,我们为什么不可以?然后老板很快得到满意的方案:Kubernetes(有很多其他方案可以实现)
         Kubernetes是Google开源的容器集群管理系统。它构建于docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩 容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台.
  
  总结:经过这八个步骤,大概就已经实现了私有云的基本功能,其实Docker能做的事情远不如此,本人才疏学浅,使用不久,这里只阐述想到的这一种方案。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-55978-1-1.html 上篇帖子: OpenStack在线迁移 下篇帖子: 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(2)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表