一、概述
Apiserver是 kubernetes 集群交互的入口,封裝了核心對象的增刪改查操作,提供了 RESTFul 風格的 API 接口,通過etcd來實現持久化并維護對象的一致性。所以在整個K8S集群中,Apiserver服務至關重要,一旦宕機,整個K8S平臺將無法使用,所以保障企業高可用是運維必備的工作之一。
二、安裝keepalived
1.安裝keepalived
yum install keepalived.x86_64
2.修改配置
cd /etc/keepalived/
vi keepalived.conf
- 修改master1配置文件keepalived.conf
global_defs {
router_id keepalive-master
}
vrrp_script check_apiserver {
# 檢測腳本路徑
script "/etc/keepalived/check-apiserver.sh"
# 多少秒檢測一次
interval 3
# 失敗的話權重-2
weight -2
}
vrrp_instance VI-kube-master {
state MASTER # 定義節點角色
interface eth0 # 網卡名稱
virtual_router_id 68
priority 100
dont_track_primary
advert_int 3
virtual_ipaddress {
# 自定義虛擬ip
192.168.1.199
}
track_script {
check_apiserver
}
}
- 修改master2配置文件keepalived.conf
global_defs {
router_id keepalive-master
}
vrrp_script check_apiserver {
# 檢測腳本路徑
script "/etc/keepalived/check-apiserver.sh"
# 多少秒檢測一次
interval 3
# 失敗的話權重-2
weight -2
}
vrrp_instance VI-kube-master {
state BACKUP # 定義節點角色
interface eth0 # 網卡名稱
virtual_router_id 68
priority 99
dont_track_primary
advert_int 3
virtual_ipaddress {
# 自定義虛擬ip
192.168.1.199
}
track_script {
check_apiserver
}
}
- 修改master3配置文件keepalived.conf
global_defs {
router_id keepalive-master
}
vrrp_script check_apiserver {
# 檢測腳本路徑
script "/etc/keepalived/check-apiserver.sh"
# 多少秒檢測一次
interval 3
# 失敗的話權重-2
weight -2
}
vrrp_instance VI-kube-master {
state BACKUP # 定義節點角色
interface eth0 # 網卡名稱
virtual_router_id 68
priority 99
dont_track_primary
advert_int 3
virtual_ipaddress {
# 自定義虛擬ip
192.168.1.199
}
track_script {
check_apiserver
}
}
3.重啟keepalived
systemctl start keepalived.service
systemctl status keepalived.service
虛擬vip出現在網卡上