с помощью kubespray я получил работающий кластер kubernetes на 3 машины. 2 из них (узел1, узел2) являются главными узлами, и все они (узел1, узел2, узел3) являются рабочими узлами. Поэтому он должен соответствовать моему требованию быть кластером высокой доступности. Я хотел проверить доступность, когда некоторые узлы не работают и как они реагируют.
Проблема: я отключаю node2 и node3, поэтому работает только узел 1. Когда я пытаюсь kubectl get nodes
на узле 1, он возвращает The connection to the server 10.1.1.44:6443 was refused - did you specify the right host or port?
Что странно: когда работают узлы 1 и 2 (все мастера), 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: {}