11.6.1 让你的应用变得高可用

使用 Deployment.

运行多实例来减少宕机可能性

对不能水平扩展的应用使用领导选举机制

11.6.2 让 Kubernetes 控制平面变得高可用

image.png

运行 etcd 集群

超过7个实例会影响性能.

运行多实例 API 服务器

API 服务器是无状态的, 前面放个负载均衡.

确保控制器和调度器的高可用性

控制器管理器, 调度器在给定时间内只有一个实例有效, 只有领导者才会执行工作, 其他副本实例在待命.

image.png

控制平面组件使用的领导选举机制

实现方式是创建 Endpoint 资源 (也可以使用其他资源), 称为 kube-scheduler:

  • 节点之间不用通信, 先来先成为领导者
  • 类似分布式锁 (实际是乐观锁)

image.png

holderIdentity 包含当前领导者的名字.