k8+容器热备

安装docker
准备nginx(nginx:v3)和keepalived镜像(osixia/keepalived)
生成热备配置文件(docker-compose.yml Dockerfile nxinx.conf keepalived.conf check_nginx.conf)
  • docker-compose.yml
version: '2'

services:
  keepalived:
    build: ./
    image: keepalived:v1 #构建出来的新镜像的名称
    depends_on:
      - nginx
    container_name: keepalived #容器名称
    network_mode: "host"
    cap_drop:
      - NET_ADMIN
    privileged: true
    volumes:
      - "/root/test/nginx_check.sh:/etc/keepalived/nginx_check.sh"
    restart: always
  nginx:
    image: nginx:v3
    privileged: true  #root权限
    container_name: nginx #容器名称
    ports:
      - "8443:80" #本机:容器
    volumes:
      - "/root/test/nginx.conf:/usr/local/nginx/conf/nginx.conf"
    restart: always
  • Dockerfile
FROM osixia/keepalived
ADD ./nginx_check.sh /etc/keepalived/nginx_check.sh
RUN chmod +x /etc/keepalived/nginx_check.sh
ADD ./keepalived.conf /container/service/keepalived/assets/keepalived.conf
  • nginx.conf
#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}

tcp {
    upstream health {
         server 192.168.214.101:6443;
         server 192.168.214.102:6443;
         server 192.168.214.103:6443;
         check interval=3000 rise=2 fall=1  timeout=1000; 
         }
        server {
            listen 80;
            proxy_pass health;
            so_keepalive on;  #心跳检测
            tcp_nodelay on;  #禁用了Nagle算法,允许小包的发送
        }
}

  • keepalived.conf
! Configuration File for keepalived
global_defs {
   script_user root
   enable_script_security
   router_id LVS_k8s
}

vrrp_script CheckK8sMaster {
    script "/etc/keepalived/nginx_check.sh"
    interval 3
    timeout 9
    fall 2
    rise 2
}

vrrp_instance VI_1 {
    state BACKUP
    nopreempt
    interface ens33
    virtual_router_id 50
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass agree123
    }
    virtual_ipaddress {
        192.168.214.100
    }   
    track_script {
        CheckK8sMaster
    }
}

  • check_nginx.sh
#!/bin/bash
A=`netstat -ntlp | grep :8443 | wc -l`
if [ $A -eq 0 ];then
        pkill keepalived
fi
安装docker-compose
docker-compose安装keepalived和nginx
docker-compose up
#docker-compose up --build #如果修改文件,重新构建
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值