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的时候,会锁住磁盘空间,所以不能做太多。