控制平面
kube-apiserver
etcd
kube-scheduler
kube-controller-manager
工作平面
kubelet
CNI
CSI
CRI
kube-proxy
容器运行时
k8s为什么选用etcd作为数据库组件(为什么不用别的非关系型键值对数据库),它有什么特点?
Kubernetes (K8s) 选择 etcd 作为其核心数据库组件,主要源于 etcd 的设计理念和核心特性与 K8s 对数据存储的严格要求高度契合。K8s 需要一个能够保证强一致性、高可用性,并支持实时变更监听的分布式键值存储,而 etcd 正是为这类场景而生的。
etcd 的核心特点:强一致性:etcd 使用 Raft 一致性算法来管理集群。高可用性:etcd 被设计为以集群模式运行,通常由奇数个节点组成(如 3 或 5 个)。Watch(监听)机制:这是 etcd 最关键的机制之一。客户端可以订阅(Watch)特定的键或键前缀,当这些键的值发生变化时,etcd 会主动通知所有订阅的客户端。简单易用的 API:etcd 提供了基于 HTTP/JSON 和 gRPC 的简单 API,使得与各种语言和框架的集成变得非常容易。多版本并发控制 (MVCC):etcd 会为每个键保留多个历史版本,并维护一个全局单调递增的版本号(revision)。租约(Lease)机制:租约是一种带过期时间的契约。当租约过期时,所有与之关联的键都会被自动删除。
etcd 凭借其强一致性、高可用性、强大的监听机制和简洁的 API,为 Kubernetes 提供了一个可靠、高效且易于集成的数据存储后端,是 K8s 控制平面能够稳定运行的关键基石。
评论 (0)