Etcd 解析

Etcd 解析

Etcd 是 Kubernetes 集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。在后面具体的安装环境中,我们安装的 etcd 的版本是 v3.1.5,整个 Kubernetes 系统中一共有两个服务需要用到 etcd 用来协同和存储配置,分别是:

  • 网络插件 flannel、对于其它网络插件也需要用到 etcd 存储网络的配置信息
  • Kubernetes 本身,包括各种对象的状态和元信息配置

注意:flannel 操作 etcd 使用的是 v2 的 API,而 Kubernetes 操作 etcd 使用的 v3 的 API,所以在下面我们执行 etcdctl 的时候需要设置 ETCDCTL_API 环境变量,该变量默认值为 2。

原理

Etcd 使用的是 raft 一致性算法来实现的,是一款分布式的一致性 KV 存储,主要用于共享配置和服务发现。关于 raft 一致性算法请参考 该动画演示。

关于 Etcd 的原理解析请参考 Etcd 架构与实现解析。

使用 Etcd 存储 Flannel 网络信息

我们在安装 Flannel 的时候配置了 FLANNEL_ETCD_PREFIX="/kube-centos/network" 参数,这是 Flannel 查询 etcd 的目录地址。

你可能感兴趣的:(K8S,kubernetes,容器)