Etcd存储架构设计
Kubernetes系统对Etcd存储进行了大量封装,其架构是分层的,而每一层的封装设计又拥有高度的可扩展性。Etcd存储架构设计如图6-1所示。
Etcd存储架构设计说明如下。
1.RESTStorage
实现了RESTful风格的对外资源存储服务的API接口。
2.RegistryStore
实现了资源存储的通用操作,例如,在存储资源对象之前执行某个函数(即
Before Func),在存储资源对象之后执行某个函数(即After Func)。
3.Storage.Interface
通用存储接口,该接口定义了资源的操作方法(即Create、Delete、
Watch 、 WatchList 、 Get 、 GetToList 、 List 、 GuaranteedUpdate 、 Count 、
Versioner等方法)。
4.CacherStorage
带有缓存功能的资源存储对象,它是Storage.Interface通用存储接口的实现。CacherStorage缓存层的设计有利于Etcd集群中的数据能够获得快速的响应,并与Etcd集群数据保持一致。
5.UnderlyingStorage
底层存储,也被称为BackendStorage(后端存储),是真正与Etcd集群交互的 资 源 存 储 对 象 , CacherStorage 相 当 于 UnderlyingStorage 的 缓 存 层 。UnderlyingStorage同样也是Storage.Interface通用存储接口的实现。