我和Kubernetes有个约会

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

2023-06-14  本文已影响0人  青衣敖王侯

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 备份方案实践

上一篇 下一篇

猜你喜欢

热点阅读