0%

Kubernetes_master节点高可用

kubernetes单点主要存在以下几个组件:

  • etcd
  • kube-apiserver
  • kube-controller-manager和kube-scheduler
  • kube-dns、coredns

在生产环境中etcd一般部署在3个或5个物理节点中,利用其分布式优势进行规避;
kube-dnscoredns运行在Pod中,可以通过增加replica的值来确保高可用。

本篇目标主要集中在Master节点上的三个组件。

高可用架构

/images/kubernetes/kubeadm-ha.png)
(图片来自kubernetes.io)

kube-apiserver

kube-apiserver是资源操作的唯一入口,其本身是一个无状态的服务,故为其配置负载均衡的虚ip即可实现高可用。

由于kube-apiserver与Node节点之间使用https进行通讯,故需要将SSL证书包含在虚ip上,在创建kubernetes证书签名请求文件的时候会指定授权使用该证书的ip或域名列表,请确保master节点的虚ip在证书授权列表中

kube-controller-manager和kube-scheduler

同一时间应该仅有一组kube-controller-managerkube-scheduler运行,运行多个时需要通过选举产生一个leader,运行时添加--leader-elect=true参数即可。

参考:
https://jishu.io/kubernetes/kubernetes-master-ha/?from=timeline
https://www.cnblogs.com/hehe520/p/6147741.html
https://blog.csdn.net/sinat_35930259/article/details/80411878