第1天:etcd简介

发布: (2025年12月5日 GMT+8 09:55)
3 min read
原文: Dev.to

Source: Dev.to

介绍

Kubernetes CKA 学习之旅的第 1 天聚焦于 etcd —— 为整个集群提供支撑的键值存储。

etcd 是什么?

etcd 是一个高可用、分布式且可靠的键值数据库,具备简洁、安全、快速的特性。Kubernetes 将所有集群信息(节点、Pod、配置、密钥、服务账户、角色、角色绑定等)存储在 etcd 中。每当你执行类似 kubectl get 的命令时,API 服务器会查询 etcd 数据库。

由于 etcd 是键值存储,它在快速查找和检索方面表现出色。虽然它不支持复杂的 SQL 风格查询,但与键关联的值可以是复杂的数据结构,例如 JSON 文档。

etcd 服务与客户端

当 etcd 服务器启动时,它会监听服务器的 IP 地址,默认端口为 2379。客户端连接到该端点以存储和检索数据。默认的 CLI 客户端是 etcdctl

# Example etcdctl command
./etcdctl put key1 value1

注意: 不同的 etcd 版本会暴露不同的 API,因此可用的 etcdctl 命令和动词可能会有所不同。

etcd 在 Kubernetes 中

对 Kubernetes 集群所做的每一次更改,只有在 etcd 服务器更新后才被视为完成。Kubernetes 将其数据存储在层次化的目录结构中,根注册表目录下按对象类型划分子目录。

部署选项

  • 手动安装: 从头构建集群时,需要下载 etcd 二进制文件并在 master/control‑plane 节点上运行它。
  • kubeadm: 使用 kubeadm 会自动在 kube-system 命名空间中将 etcd 部署为一个 pod。

高可用性设置

在高可用(HA)环境中,多个 master/control‑plane 节点会运行各自的 etcd 实例。这些实例必须相互了解,配置方式是通过 etcd.service 文件中的 --initial-cluster 标志,例如:

--initial-cluster controller1=https://10.0.0.1:2380,controller2=https://10.0.0.2:2380,controller3=https://10.0.0.3:2380

CNCF 成熟度

etcd 于 2018 年进入 CNCF 孵化阶段,并于 2020 年 11 月毕业为顶级项目。

Back to Blog

相关文章

阅读更多 »

AI 驱动开发平台

🤔 让我彻夜难眠的问题 想象一下:你在 GitHub 上发现了一个超棒的开源项目。它有 10,000 多个 issue,数百名贡献者,……