在kubespray的帮助下,我在3台计算机上获得了一个正在运行的kubernetes集群。它们中的2个(节点1,节点2)是主节点,它们所有的节点(节点1,节点2,节点3)都是工作节点。因此,它应该满足我成为高可用集群的要求。 我想测试一些节点出现故障时的可用性以及它们的反应方式。
问题:我关闭了node2和node3,所以只有node1在运行。当我尝试在node1上kubectl get nodes
时,它返回The connection to the server 10.1.1.44:6443 was refused - did you specify the right host or port?
奇怪的是:当node1和node2(所有主节点)正在运行时,api可以正常工作。但是当只有一个主服务器宕机时,api会返回上面的消息。
我希望node1应该在没有其他master / worker节点的情况下工作。我在这里想念东西吗?
使用:kubespray v2.11.0
已编辑group_vars/all/all.yml
## Internal loadbalancers for apiservers
loadbalancer_apiserver_localhost: true
# valid options are "nginx" or "haproxy"
loadbalancer_apiserver_type: nginx
# valid values "nginx" or "haproxy"
我的hosts.yml
all:
hosts:
node1:
ansible_host: 10.1.1.44
ip: 10.1.1.44
access_ip: 10.1.1.44
node2:
ansible_host: 10.1.1.45
ip: 10.1.1.45
access_ip: 10.1.1.45
node3:
ansible_host: 10.1.1.46
ip: 10.1.1.46
access_ip: 10.1.1.46
children:
kube-master:
hosts:
node1:
node2:
kube-node:
hosts:
node1:
node2:
node3:
etcd:
hosts:
node1:
node2:
node3:
k8s-cluster:
children:
kube-master:
kube-node:
calico-rr:
hosts: {}