Linux+keepalived安装配置

430 阅读2分钟

准备两台机器

  • 通过vagrant安装两台centos虚拟机

这里也可通过其他方式安装两台虚拟机

  • centos_1:192.168.168.101

  • centos_2:192.168.168.102

vagrant init centos/7
vagrant up
  • 链接至虚拟机

vagrant ssh
sudo -i #切换至root
  • 配置centos_1

关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

配置静态IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO="static"
IPADDR="192.168.168.101"
NETMASK="255.255.255.0"
GATEWAY="192.168.168.1"
DNS1="192.168.168.1"
ONBOOT="yes"

重启网络

systemctl restart network
  • 配置centos_2

关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

配置静态IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO="static"
IPADDR="192.168.168.102"
NETMASK="255.255.255.0"
GATEWAY="192.168.168.1"
DNS1="192.168.168.1"
ONBOOT="yes"

重启网络

systemctl restart network
  • 安装docker

source <(curl -sL https://get.docker.com)
  • 启动docker

systemctl enable docker
systemctl start docker
  • 安装docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  • 安装nginx

mkdir /opt/nginx -p
mkdir /opt/nginx/certificate -p
mkdir /opt/nginx/conf.d -p
mkdir /opt/nginx/logs -p
cd /opt/nginx

/opt/nginx:nginx部署路径
/opt/nginx/certificate:域名证书部署路径
/opt/nginx/conf.d:nginx配置文件路径
/opt/nginx/logs:nginx配置文件路径

添加docker网络

docker network create app_net

添加docker-compose.yml

vim docker-compose.yml
version: '3.7'

services:
  nginx:
    restart: always
    image: nginx:1.19.2
    ports:
     - 80:80
     - 443:443
    volumes:
     - ./conf.d:/etc/nginx/conf.d
     - ./logs:/var/log/nginx
     - ./certificate:/opt/certificate
    networks:
     - custom_net
networks:
  custom_net:
    external:
      name: app_net

添加配置文件

cd conf.d
vim 80.conf
server {
    listen       80;
    server_name  localhost;

    location / {
        root /etc/nginx/conf.d/;
        try_files $uri $uri/ /index.html;
    }
}
vim index.html
101或102

启动nginx

docker-compose up -d
  • 安装keepalived

yum update
yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel
yum install -y keepalived
  • 初始化及启动

systemctl start keepalived   //启动keepalived
systemctl enable keepalived  //加入开机启动keepalived
systemctl restart keepalived  //重新启动keepalived
systemctl status keepalived   //查看keepalived状态
systemctl stop keepalived   //停止keepalived
systemctl disable keepalived   //禁用开机启动keepalived
  • centos_1配置

vim /etc/keepalived/keepalived.conf
global_defs {
    router_id NodeA
}
vrrp_instance VI_1 {
    state MASTER    #设置为主服务器
    interface eth0  #监测网络接口
    virtual_router_id 51  #主、备必须一样
    priority 100   #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高)
    advert_int 1   #VRRP Multicast广播周期秒数
    authentication {
       auth_type PASS  #VRRP认证方式,主备必须一致
       auth_pass 1111   #(密码)
    }
    virtual_ipaddress {
       192.168.168.100/24  #VRRP HA虚拟地址
    }
}
  • centos_2配置

vim /etc/keepalived/keepalived.conf
global_defs {
    router_id NodeB
}
vrrp_instance VI_1 {
    state BACKUP    #设置为备用服务器
    interface eth0  #监测网络接口
    virtual_router_id 51  #主、备必须一样
    priority 90   #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高)
    advert_int 1   #VRRP Multicast广播周期秒数
    authentication {
       auth_type PASS  #VRRP认证方式,主备必须一致
       auth_pass 1111   #(密码)
    }
    virtual_ipaddress {
       192.168.168.100/24  #VRRP HA虚拟地址
    }
}
  • 重启keepalived

systemctl restart keepalived
  • 查看及验证

ip a

访问http://192.168.168.100

停掉centos_1上的keepalived

systemctl stop keepalived

访问http://192.168.168.100