我有两台k8s高可用管理节点,master1和master2,使用的是keepalived和nginx,,我模拟master2故障,把它关机,然后在再master1节点上执行命令,kubectl get nodes,报错:
2489 memcache.go:265] "Unhandled Error" err="couldn't get current server API group list: Get \"https://192.168.205.250:16443/api?timeout=32s\": EOF"
执行 kubectl get po -A 报错:
E0213 14:58:57.583157 3012 memcache.go:265] "Unhandled Error" err="couldn't get current server API group list: Get \"https://192.168.205.250:16443/api?timeout=32s\": EOF"
nginx配置如下:
stream {
log_format main '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent';
access_log /var/log/nginx/k8s-access.log main;
upstream k8s-apiserver {
server 192.168.205.141:6443;
server 192.168.205.142:6443;
}
server {
listen 16443;
proxy_pass k8s-apiserver;
}
}
master1 keepliaved配置如下:
vrrp_instance VI_1 {
state MASTER
interface ens160
virtual_router_id 51
priority 255
advert_int 1
authentication {
# auth_type PASS
# auth_pass 1111
}
virtual_ipaddress {
192.168.205.250/24
}
track_script {
check_nginx
}
}
master2 keepliaved配置如下:
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 51
priority 90
advert_int 1
authentication {
# auth_type PASS
# auth_pass 1111
}
virtual_ipaddress {
192.168.205.250/24
}
track_script {
check_nginx
}
}
我模拟故障把master2关机,目前master1中的nginx和keeplived都在运行,虚拟地址也正常出现:
[root@k8s-master01 ~]# ip addr show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:25:ed:a9 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.205.141/24 brd 192.168.205.255 scope global dynamic noprefixroute ens160
valid_lft 1009sec preferred_lft 1009sec
inet 192.168.205.250/24 scope global secondary ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe25:eda9/64 scope link noprefixroute
valid_lft forever preferred_lft forever
执行客户端的kubectl命令是不能执行的:

为什么我部署的高可用没有起到作用? 我必须两台管理节点都运行才能够执行命令(关闭一台keepalived也行),但就是不能关机其中一台管理节点,求各位帮助解决一下,十分感谢!