01| etcd的前世今生:为什么Kubernetes使用etcd?
2013 年,有一个叫 CoreOS 的创业团队,他们构建了一个产品,Container Linux,它是
一个开源、轻量级的操作系统,侧重自动化、快速部署应用服务,并要求应用程序都在容
器中运行,同时提供集群化的管理方案,用户管理服务就像单机一样方便。
希望重启任意一节点的时候,用户服务不宕机 → 运行多个副本 → 多个副本如何协调,如何避免变更的时候所有副本不可用呢?
需要一个
协调服务来存储服务配置信息、提供分布式锁等能力 →
当然是分析业务场景、痛点、核心目标,然后是基于目标进行方案选
型,评估是选择社区开源方案还是自己造轮子。这其实就是我们遇到棘手问题时的通用解
决思路,CoreOS 团队同样如此。
一个协调服务,理想状态下大概需要满足以下5个目标:
1. 可用性角度:高可用
。协调服务作为集群的控制面存储,它保存了各个服务的部署、运
行信息。若它故障,可能会导致集群无法变更、服务副本数无法协调。业务服务若此时
出现故障,无法创建新的副本,可能会影响用户数据面。
2. 数据一致性角度:提供读取“最新”数据的机制