Keepalived快速使用(Ubuntu18.04)

Keepalived是一个用于虚拟IP自动切换的软件,可以在多个节点指定一个虚拟IP地址,遇到主节点故障时将该虚拟IP漂移到其它可用的节点,从而保障服务可以持续,用于k8s中master节点的服务IP(即kube-apiserver监听的地址)的容错。

  • 注意
    • 服务所依赖的环境需要在所有节点上预先配置好。
    • Keepalived仅对IP地址进行漂移,当前应用状态会丢失。
    • 当前应用的状态和数据需要应用自身在多节点间进行同步。

在Ubuntu18.04 LTS 安装软件(http://www.keepalived.org/):

sudo apt install keepalived

刚安装完,配置文件目录/etc/keepalived/是空的,把下面的内容保存为文件keepalived.conf和chk_k8s_master.sh,放到该目录下。

  • 注意:
    • 虚拟IP会占用一个物理网卡地址。通过配置文件指定。
    • 使用 ifconfig查看网卡的de vice接口信息,选择其它服务不用的网卡用于虚拟IP。
    • 因为keepalived会动态改变绑定网卡的IP地址,不要把其它服务绑定到该网卡端口和IP地址上。
虚拟 ip 绑定的网卡
    interface enp0s31f6

配置文件

配置文件/etc/keepalived/keepalived.conf:

! Configuration File for keepalived

global_defs {

}

vrrp_script check_k8s {
    # 自身状态检测
    script "/etc/keepalived/chk_k8s_master.sh"
    interval 3
    weight 5
    }

vrrp_instance VI_1 {

    # 初始化状态
    state MASTER

    # 虚拟 ip 绑定的网卡
    interface enp0s31f6

    # 此 ID 要与 Backup 配置一致
    virtual_router_id 80

    # 默认启动优先级,要比 Backup 大点,但要控制量,保证自身状态监测生效
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    virtual_ipaddress {
        # 虚拟 ip 地址
        10.1.1.201
    }

    track_script {
        check_k8s
    }
}

故障检测

存活状态检测模块/etc/keepalived/chk_k8s_master.sh:

#!/bin/bash

count=`ss -tnl | grep 6443 | wc -l`

if [ $count = 0 ]; then
    exit 1
else
    exit 0
fi

服务切换

$ vi /etc/keepalived/back_k8s.sh

#!/bin/bash
systemctl stop kube-apiserver.service
sleep 5s
systemctl restart kube-kubelet.service
systemctl start kube-apiserver.service

然后重启:

sudo systemctl restart keepalived

现在,可以ping一下设定的虚拟地址10.1.1.201,看是否可用(该地址使用ifconfig显示不出来)。

K8s中使用

Keepalived可以用于k8s中master节点的服务IP(即kube-apiserver监听的地址)的容错。其它副节点需安装所有的master服务(kube-apiserver/kube-scheduler/kube-control-manager)和etcd集群元数据服务。

更多参考:

转载于:https://my.oschina.net/u/2306127/blog/2988037

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值