ETCD概念
ETCD是一种高可用的键值对类型的数据库,提供可靠的分布式的状态存储,可以配置多节点群集,群集之间做数据同步来保证数据可靠性,当一台因为故障挂点,会从剩余的节点通过选举算法选举出一个几点来代替故障节点,从而实现高可用性。
ETCD与Kubernetes的关系
ETCD为Kubernetes提供了可靠的数据存储机制,和基于watch机制的订阅发布机制,实现了核心数据的存储,和核心的基于watch-list的informer机制,当ETCD数据变化通过watch机制触发相应的核心操作,如pod创建,deployment构建等 。
在分布式系统中,最为适用的组件间通信的方式是消息发布和订阅机制。当应用在启动的时候主动从ETCD中拉取一次完整的列表信息,并在ETCD节点上注册一个watcher,以后每次列表中的数据有变化,ETCD都会实时通知订阅者,订阅者就可以获取最新的数据并且利用这些数据和行为(增删改)作为参数执行相应的预定义方法。Kubernetes核心的基于watch-list的informer机制就是基于ETCD的订阅机制实现的。
Kubernetes概念化理解
为了方便大家理解,这里引入两个概念虚拟世界,真实世界。虚拟世界是指Kubernetes ETCD中存储的资源定义结构和状态(如:pod rs demployment)真实世界是指实际运行的计算资源,如镜像、虚拟机、网络、存储等。
-
从虚拟世界创建和管理真实世界:
客户使用预定义的yaml格式资源描述领域语言,来描述想要的资