博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker + keepalived 部署 Nginx 主从
阅读量:5908 次
发布时间:2019-06-19

本文共 2003 字,大约阅读时间需要 6 分钟。

实验环境

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=<VERSION>

下载nginx 镜像

sudo docker pull nginx:1.7.6

mkdir -p /tmp/docker

sudo echo "<h2 >This is nginx container running on 192.168.10.150 </h2><br /> 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的优势并没有发挥出来,新的架构容我三思

转载地址:http://ypppx.baihongyu.com/

你可能感兴趣的文章
centos7 wiki搭建
查看>>
Hexo设置主题以及Next主题个性设置
查看>>
PHP最佳实践系列之标准
查看>>
TiDB 2.1 GA Release Notes
查看>>
关于CSS层叠、CSS继承、CSS盒模型概述
查看>>
mybatis-自定义TypeHandler 的坑
查看>>
测试聊天机器人的新方法——Botfuel Dialog
查看>>
web 如何工作
查看>>
Android面试之Java设计模式
查看>>
聊一聊Javascript中的Promise对象
查看>>
DataBinding绑定android:onClick出错
查看>>
Element :upload组件实例
查看>>
[swift 进阶]读书笔记-第六章:函数 C6P0_ 函数(总体介绍)
查看>>
随行付微服务测试之性能测试
查看>>
springcloud入门之断路器Hystrix(四)
查看>>
凭借UGC壮大的马蜂窝,亦是喜忧参半
查看>>
零基础学习 Python 之细说类属性 & 实例
查看>>
JavaScript设计模式与开发实践笔记
查看>>
wx小程序(3) - 自定义组件及参数传输
查看>>
数据请求+
查看>>