【发布时间】:2019-02-20 14:20:34
【问题描述】:
我正在尝试以 etcd 作为后端来部署 CoreDNS。我已经完成了 etcd 和 CoreDNS 的大部分配置,但我正在尝试为开发人员记录如何将记录推送到 CoreDNS 的 etcd。
阅读了所有的 etcd v3 文档,从 etcd v2 中的 v2 API 到 etcd v3 中的 v3 API 发生了变化。有多个页面引用了使用 URL 进行的 API 调用,例如:
curl -L http://localhost:2379/v3beta/kv/put \
-X POST -d '{"key": "Zm9v", "value": "YmFy"}'
我尝试了http://IP:2379/[v3alpha | 的多种组合v3beta | v3]/kv/put 我总是得到一个 not found 或 404 not found。
这很好用:
curl http://IPADDRESS:2379/v2/keys/test/local/test -XPUT -d '{"host":"IPADDRESS","ttl":60}'
但这不是:
curl http://IPADDRESS:2379/[v3alpha | v3beta | v3]/keys/test/local/test -XPUT -d '{"host":"IPADDRESS","ttl":60}'
我在文档中遗漏了什么吗?
我正在运行 etcd v 3.3.12。
【问题讨论】:
-
您要部署哪个特定版本?
-
更大的问题:v3 API 基于 gRPC,不再是 JSON/restful; curl 不再是使用它的首选方式。您所指的示例是使用
grpc-gateway代理服务器,但这并不理想(并且需要您实际运行该服务;显示您如何进行安装的详细信息会有所帮助,这样我们就可以确保软件正在运行)。 -
打算将其包含在我的帖子中。 etcd 的版本是 3.3.12。我正在从提供的最新 Linux 二进制文件运行 etcd。不是自己建造的。 @CharlesDuffy,您具体需要哪些详细信息?它已部署,我已经能够使用 v2 URL 成功测试。 v3 URL 不像记录的那样工作。
-
我也遇到过这个问题,多次修改etcd.conf后,我发现如果etcd在没有--config-file的情况下启动,v3 rest api可以正常工作。但是如果它以--config-file 开头,即使指定了一个空文件,v3 rest api 也将不起作用。很奇怪。
标签: kubernetes etcd coredns