K8S控制平面组件etcd----构建高可用etcd集群

1.etcd成员重要参数


data-dir表示数据落盘的地方
peer-url:集群之间通信是走peer-urls的,客户端发送到etcd server的这种请求是走client-urls的

2.etcd集群重要参数

3.etcd安全相关参数

4.灾备

5.etcd容量管理

6.Alarm And disarm Alarm

7.碎片整理

8.高可用etcd解决方案

8.1 etcd operator


operator本身是CRD+controller的组合。
CRD就是一个模型抽象,你需要以声明式的形式定义出来,Controller的行为是加载命令。
etcdCluster:用户可以定义一个第三方扩展对象etcdCluster。在这个cluster里面可以定义我需要的etcd的版本是什么,我需要的副本数量。当定义好这些对象之后呢,etcd-operator会运行一个控制器,这个控制器会解析etcdCluster,然后创建K8S pod,那么这些pod就会运行etcd的image,并且按照用户的输入组成etcd集群。

8.2 基于bitnami安装etcd高可用集群


它本质上是一个statefulSet
helm是一个管理K8S的应用包的工具

9.K8S如何使用etcd

9.1 K8S对象在etcd中的存储路径

9.2 etcd在集群中所处的位置



etcd通常是由kubelet来管理的,kubelet会读取一个config,这个config里面定义了一个staticPodPath叫/etc/kubernetes/manifests,kubelet本身的作用是维护Pod的生命周期的,而且它采用了监听API Server和扫描本地的staticPodPath来创建Pod.
堆叠式的方式让etcd和API Server是紧绑定的。所有API Server都是通过loopback口发送给etcd的。所以对于读操作就不需要走leader,直接在本地读到就OK了。


9.3 etcd集群高可用规划


9.4 etcd存储规划

9.5 etcd安全性

9.6 etcd事件分离


不要让一些审计事件来影响了集群。

9.7 减少网络延迟

9.8 减少磁盘IO延迟

9.9 保持合理的日志文件大小

9.10 设置合理的存储配额

9.11 自动压缩历史版本

9.12 定期消除碎片化

9.13 优化运行参数


9.14 etcd备份存储


每次snapshot的时候,会锁住磁盘空间,所以不能做太多。

9.15 备份方案实践

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容