请问下RKE集群是如何通过cluster.yaml文件实现高可用的

环境:
RKE

cluster.yaml配置类似如下:

nodes:
  - address: 165.227.114.63
    internal_address: 172.16.22.12
    user: ubuntu
    role: [controlplane, worker, etcd]
  - address: 165.227.116.167
    internal_address: 172.16.32.37
    user: ubuntu
    role: [controlplane, worker, etcd]
  - address: 165.227.127.226
    internal_address: 172.16.42.73
    user: ubuntu
    role: [controlplane, worker, etcd]

...

问题描述:
在按照上面的配置文件创建rke集群后,集群的kubeconfig的api-server是其中一台主机的地址,请问当这台主机down了以后,集群还能使用吗,master节点会漂移吗,按照这种HA配置,是如何实现HA的

其中一台master down掉后,集群依然可以用。因为worker节点中有一个nginx反向代理所有的kube-api。

kubeconfig中指向的IP,实际上你可以切换context到其他kube-api server。

哦哦 意思是如果有3个master节点,kubectl config get-context可以看到3个上下文?worker节点有一个nginx反向代理?那如果没创建worker节点呢

每个master节点的组件都连接本机的kube-api,所以单台master挂掉还是不会影响其他节点工作。

哦哦 没注意,那就是外部访问哪个节点都可以。worker节点的nginx反向代理是在哪里配的,我以为rke只是一个k8s的安装工具!不管配置

参考 rke-tools:rke-tools/nginx.tmpl at master · rancher/rke-tools · GitHub