入门
IBM Cloud® Databases for etcd 已被弃用。 自 2025 年 4 月 1 日起,您将无法部署新的应用程序。 现有实例支持至 2025 年 10 月 15 日。 任何在该日期仍然存在的实例都将被删除。 有关更多信息,请参阅 IBM Cloud® Databases for etcd 的弃用。
本教程是有关使用 IBM Cloud® Databases for etcd 部署的简短介绍。
准备工作
- 您需要具有 IBM Cloud 帐户。
- 您还需要 Databases for etcd 部署。 您可以从 IBM Cloud 目录 供应一个目录。 为您的部署提供一个在您帐户的资源列表中显示的难忘名称。
- 设置部署的 root 用户密码。
- 请查看
Getting to production
文档,以获取有关设置基本 IBM Cloud® Databases for etcd 部署的一般指南。
与 etcdctl
连接
从 coreos/etcd 存储库 下载并安装 etcdctl
。 安装后,在 _端点_中从部署的“仪表板概述”获取格式化连接字符串。 CLI 选项卡包含 CLI 客户机用于与部署建立连接的信息。

首先,将 TLS 证书下载 (或保存 TLS 证书的 内容 ) 到文件,并使用 TLS 证书 _name_命名该文件。 将其保存到您计划运行 etcdctl
命令的位置,或者记住文件的保存位置,以便您可以提供其到环境变量的完整路径。
然后,使用 环境 和 参数 字段中的值来设置环境,以便 etcdctl
可以在部署上连接和发出命令。
export ETCDCTL_API=3
export ETCDCTL_CACERT=b179a2b4-b76a-11e9-b9ae-c61492e0d24a
export ETCDCTL_ENDPOINTS=https://156ed317-3aea-4732-a8fd-349c2bb9d39c.bkvfu0nd0m8k95k94ujg.databases.appdomain.cloud:31220
export ETCDCTL_USER=root:password
现在,您应该能够使用 etcdctl
向部署发出命令,例如:
$ etcdctl put foo bar
OK
$ etcdctl get foo
foo
bar
使用 etcd
熟悉 etcd 的一个好方法是使用它的一些功能。 本教程提供了一些有关前缀,事务,租赁和观察者的快速示例。
可以在 etcd demo 中找到已展开的示例和功能部件,有关使用 etcd 的更多常规信息位于 与 etcd交互 中。
前缀
etcd 将键值存储在分层系统中,该系统允许您存储和检索嵌套在键层下的信息。
$ etcdctl put /foo-service/container1 examplename
OK
使用 get 命令上的 --prefix
选项来查询顶级目录。
$ etcdctl get --prefix /foo-service
/foo-service/container1
examplename
如果添加更多子目录键和值,那么 --prefix
选项将返回顶级目录中的所有键和值。
$ etcdctl put /foo-service/container2 examplename2
OK
$ etcdctl put /foo-service/container3 examplename3
OK
$ etcdctl get --prefix /foo-service
/foo-service/container1
examplename
/foo-service/container2
examplename2
/foo-service/container3
examplename3
事务
事务采用一系列 etcd 命令,并将所有这些命令作为单个原子事务应用。 txn
命令分为三个部分。
- 在修改之前定义要修改的密钥及其值。
- 如果比较成功,请输入要运行的命令。
- 如果比较失败,请输入要运行的命令。
如果使用交互方式 etcdctl txn -i
,那么会话将提示输入部件。
$ etcdctl put key1 1
OK
$ etcdctl txn -i
# compares:
mod("key1") > "0"
# success requests (get, put, delete):
put key1 "overwrote-key1"
>
>
# failure requests (get, put, delete):
>
>
SUCCESS
OK
要检查新值是否已分配给密钥,
etcdctl get key1
> key1
overwrote-key1
leases
etcd3 使用租赁来管理临时密钥。 租赁是使用生存时间 (TTL) 创建的,然后在创建时附加到密钥。 一个租赁可用于多个密钥。 当租赁上的 TTL 到期时,它会删除所有关联的密钥。 要创建租赁,请对 TTL 使用具有秒数的授权。
$ etcdctl lease grant 500
lease 694d5cefe052b00d granted with TTL(500s)
然后,使用 --lease
选项创建密钥/对。
$ etcdctl put foo1 bar1 --lease=694d5cefe052b00d
OK
您可以了解哪些密钥与已授予的租赁相关联,以及租赁的剩余时间。
$ etcdctl lease timetolive 694d5cefe052b00d --keys
lease 694d5cefe052b00d granted with TTL(500s), remaining(377s), attached keys([foo1])
租赁的时间到期后,请求键的值不会返回任何内容。 如果尝试在已到期的租赁上供应密钥,那么将返回错误。
$ etcdctl lease grant 10
lease 694d5cefe052b009 granted with TTL(10s)
$ etcdctl put foo1 bar1 --lease=694d5cefe052b009
Error: etcdserver: requested lease not found
观察者
使用监视命令跟踪对密钥的更改。 例如,在一个终端窗口中运行 etcdctl
会使连接保持打开状态,并使用对其正在观察的密钥所作的任何更改进行更新。 更新单独终端中的密钥值将在两个终端中显示。
#Terminal 1
$ etcdctl put greeting 'Hello World'
>Hello World
#Terminal 2
$ etcdctl watch greeting
#Terminal 1
$ etcdctl put greeting 'Hello Watcher'
>Hello Watcher
#Terminal 2
> PUT
greeting
Hello Watcher
连接保持打开状态,并继续监视该键以进行后续更改。
后续步骤
如果您只是首次使用 etcd,那么最好通过 etcd 文档 进行导览。
如果计划将 Databases for etcd 用于应用程序,请查看 连接外部应用程序 和 连接 IBM Cloud 应用程序。