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

[经验分享] Docker + keepalived 部署 Nginx 主从

[复制链接]

尚未签到

发表于 2018-12-29 12:14:53 | 显示全部楼层 |阅读模式
  实验环境
  dockerhost01 192.168.10.150
  dockerhost02 192.168.10.151
  vip 192.168.10.200
  全新镜像,神马都没有,连sshd都没开,容我安装下
  开启SSH
  sudo apt-get install openssh-client openssh-server
  sudo service ssh restart
  安装docker
  先卸载旧版本
  sudo apt-get remove docker docker-engine docker.io

  设置repo
  sudo apt-get update

  允许package 使用repo over HTTPS
  sudo apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  software-properties-common

  添加GPG key
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

  验证下指纹
  sudo apt-key fingerprint 0EBFCD88

  在repo中只使用stable版本
  sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
  开始安装最新版docker ce
  sudo apt-get update
  sudo apt-get install docker-ce
  sudo docker run hello-world

  安装指定版本docker ce
  apt-cache madison docker-ce
  sudo apt-get install docker-ce=

  下载nginx 镜像
  sudo docker pull nginx:1.7.6
  mkdir -p /tmp/docker
  sudo echo "This is nginx container running on 192.168.10.150  static files:/tmp/docker/index.html" > /tmp/docker/index.html
  sudo docker run --name nginx_m --restart=always -v /tmp/docker:/usr/share/nginx/html:ro -p 80:80 -d nginx:1.7.6

  sudo docker ps

  宿主机器访问下,2台主机都正常启动nginx了


  安装keepalived
  sudo apt-get update
  sudo apt-get install -y libssl-dev openssl libpopt-dev
  sudo apt-get install -y keepalived
  sudo cp /usr/share/doc/keepalived/samples/keepalived.conf.sample /etc/keepalived/keepalived.conf
  sudo vi /etc/keepalived/keepalived.conf
  改这3个地方就好了

  host01 中出现了10.200的vip

  vip指向150,访问正常


  sudo service keepalived status -l
  host02 从backup 变成了master

  host01网卡停掉之后,vip跑到了host02上

  访问192.168.10.200的主机,显示nginx跑在了10.151上

  当然主从可以设置weight 和nopreempt来设置是否夺权重新选举
  当两个节点上的业务服务都处于启动状态,如httpd,那么优先级变化会如下:
  


  当master节点业务启动,backup节点业务为停止状态,如,haproxy(因为haproxy没有监听的地址是无法启动的,其实很多业务都是两个节点一启一停的)

  

  从架构来看,docker+nginx主从并不能够提供负载冗余功能,因为始终后台只有一台,只能够提供高可用,这个与我当时想法有所出入,所以目测整个解决方案只适合轻量化访问,但是轻量化的访问又不值得搞这两台主机做主备,做单机么又怕单点故障,所以整个解决方案比较尴尬
  

  至于实验,整个实验和之前keepalived+nginx的实验并没有太大区别,只是nginx跑在了docker上而已,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-657238-1-1.html 上篇帖子: keepalived 双主+haproxy高可用 下篇帖子: keepalived 中的MISC_CHECK用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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