作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。
MySQL
PostgreSQL
Redis
Etcd(本章节)
etcdctl 完成。在使用 v3 版本的命令前,建议通过以下方式设置环境变量,以确保使用的是 v3 API:export ETCDCTL_API=3这类命令用于查看集群状态、成员信息以及进行性能维护。
命令 | 功能描述 | 常用示例 |
|---|---|---|
member list | 列出集群所有成员的信息,包括 ID、状态、名称和地址。 | etcdctl member list --write-out=table |
endpoint status | 查看指定端点的状态,如版本、数据量大小、是否为 Leader。 | etcdctl endpoint status --write-out=table |
endpoint health | 检查端点的健康状态。 | etcdctl endpoint health |
snapshot save | 创建 etcd 数据库的快照(备份)。 | etcdctl snapshot save snapshot.db |
snapshot restore | 从快照文件恢复数据。 | etcdctl snapshot restore snapshot.db |
defrag | 整理 etcd 后端存储的碎片,释放磁盘空间(通常在对大量键进行删除或压缩后执行)。 | etcdctl defrag |
alarm list | 列出所有告警,如 NOSPACE(空间不足)警告。 | etcdctl alarm list |
alarm disarm | 解除所有告警。 | etcdctl alarm disarm |
compaction | 压缩所有键值数据的历史修订版本,以释放存储空间。 | etcdctl compaction <revision> |
这是 etcd 最核心的数据操作功能。
命令 | 功能描述 | 常用示例 |
|---|---|---|
put | 写入或更新一个键的值。 | etcdctl put /path/key "value" |
get | 获取指定键的值。 | etcdctl get /path/key |
get (前缀) | 获取所有以指定前缀开头的键。 | etcdctl get --prefix /path |
get (从...开始) | 获取所有大于或等于指定键字节值的键。 | etcdctl get --from-key b |
del | 删除一个键。 | etcdctl del /path/key |
del (前缀) | 删除所有以指定前缀开头的键。 | etcdctl del --prefix /path |
put (带租约) | 设置一个带租约(有效期)的键,租约到期后键自动删除。 | etcdctl put key value --lease=<lease_id> |
这些命令用于实现分布式协调。
命令 | 功能描述 | 常用示例 |
|---|---|---|
lease grant | 创建一个新的租约,并指定其存活时间(TTL,单位为秒)。 | etcdctl lease grant 300 |
lease keep-alive | 续约一个租约,使其保持有效。 | etcdctl lease keep-alive <lease_id> |
lease revoke | 撤销一个租约,与其绑定的键将被立即删除。 | etcdctl lease revoke <lease_id> |
lease list | 列出所有活跃的租约。 | etcdctl lease list |
lock | 创建一个分布式锁。如果锁已被占用,命令会阻塞直到获取到锁。 | etcdctl lock mutex1 |
elect | 参与领导者选举。 | etcdctl elect election-name |
用于监听数据变化和执行条件式操作。
命令 | 功能描述 | 常用示例 |
|---|---|---|
watch | 监视一个键的变化,当键被更新或删除时实时输出事件。 | etcdctl watch /path/key |
watch (前缀) | 监视所有以指定前缀开头的键的变化。 | etcdctl watch --prefix /path |
watch (带版本) | 从指定修订版本开始监视键的历史变化。 | etcdctl watch --rev=<revision> key |
txn | 在事务中执行多个操作(if-else 逻辑)。 | etcdctl txn --interactive |
用于管理 etcd 的安全访问控制(RBAC)。
命令 | 功能描述 | 常用示例 |
|---|---|---|
user add | 添加一个新用户。 | etcdctl user add root |
user list | 列出所有用户。 | etcdctl user list |
role add | 添加一个新角色。 | etcdctl role add rolename |
role grant-permission | 授予角色对某个键范围的读写权限。 | etcdctl role grant-permission rolename readwrite /path |
user grant-role | 授予用户一个角色。 | etcdctl user grant-role username rolename |
auth enable | 开启 etcd 的身份验证功能。 | etcdctl auth enable |