问题标签 [etcd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
421 浏览

etcd - 如何在集群中安装 etcd?

带有 etcd/zookeeper 类型服务的新手...

我不太确定如何处理 etcd 的集群安装。服务应该安装在每个客户端还是一组独立的服务器上?我问是因为如果我在客户端上,我将如何查询集群?我读过的每个教程都显示了针对 localhost 运行的 curl 命令。

0 投票
1 回答
381 浏览

docker - 无法发现 docker 容器

我正在关注本教程以进行服务发现http://jasonwilder.com/blog/2014/07/15/docker-service-discovery

简要地:

我创建了一个运行在 xyzd:4001 的 etcd 主机

在 backend_serverip:8000 和 docker-register 创建了一个运行容器的后端服务器

在 backend2_serverip:8000 和 docker-register 创建了另一个运行容器的后端服务器

创建了一个运行 docker-discover 的客户端和一个 ubuntu 映像

当我查看日志以查看是否正在注册容器时,我看到以下错误

我尝试手动创建此目录,我还尝试使用特权选项运行容器但没有运气

0 投票
0 回答
1168 浏览

spring-cloud - spring-cloud-etcd 配置多个客户端进行发现

我很难使用 spring-cloud-etcd 配置多个客户端以进行自动发现/配置。

是否有我应该启用的通用配置来执行此操作?

目标是评估如何使用 etcd 代替 Netflix OSS Eureka。

0 投票
0 回答
538 浏览

node.js - 为什么我的 node.js etcd 客户端获取 html

我的 etcd 实例在本地运行,我可以使用 cli 执行 get 和 set

但是当我使用 node-etc 模块时

我得到的值是 HTML(见下文),而不是与 cli 相同的结果。这是几周前的工作,所以我不确定我是否有

我还发现,当我不包括主机而只使用时,new Etcd()我会得到一个内部 HTML 页面,其中引用了代理问题:“由于潜在的恶意活动或其他安全原因,请求的网站被 [插入公司名称] 代理阻止。”

0 投票
0 回答
102 浏览

configuration - 为什么 etcd.conf 在 etcd 2.x 之后被弃用?

当我尝试基于 2.1 版本启动 etcd 时,我发现没有任何选项可供-config选择-f。我很困惑为什么etcd.conf在 2.x 之后不推荐使用启动 etcd。

0 投票
1 回答
305 浏览

apache-zookeeper - 在使用 Zookeeper、Consul 或 etcd 等注册中心进行主节点选举时,如何防止两个主节点同时处于活动状态?

tl;博士

即使您使用 Zookeeper、Consul 或 etcd 等注册中心之一实施 master 选举,似乎总是存在一种竞争条件,即旧 master 没有意识到它不再是 master 并尝试写入,而新 master 是写入畅通,导致同时写入两个服务实例,这是我们想要避免的。我们如何在没有这种竞争条件的情况下实现主选举?

详细的问题陈述

假设我们想使用其中一个注册中心(例如 Zookeeper、Consul 或 etcd)来实现主节点选举以进行故障转移。

假设服务 S1、S2、S3 有 3 个实例,每个实例在同一台机器上都有对应的注册节点,当前 S1 为主,S2 和 S3 为从。

此外,S1、S2、S3 都将共享状态存储在注册表中,但我们不希望多个实例同时写入该状态,因为并发访问可能会使状态不一致。

假设 S1 正在对存储在注册表中的共享状态进行写操作。也就是在再次检查是否是leader之前会执行更多的写操作。

假设此时有一个网络分区。在一个分区上是 S1。在另一个分区上是 S2 和 S3,所以它有仲裁。

注册中心正确地将 S2 识别为新的领导者,并使 S1 作为领导者无效。

S2 激活是因为它是新的领导者,并开始对存储在注册表中的共享状态进行一系列写入操作。

分区已修复。

此时 S1 和 S2 都会同时对注册表执行写操作,并且由于分区已修复,它们的写操作都会成功,这可能会导致状态不一致。

示例跟踪是:

  1. S1 被告知它是主控,并开始对注册表中的共享状态进行写入操作
  2. 发生分区,S1 在一个分区中,S2 和 S3 在另一个分区中
  3. S2 被识别为新的 master
  4. S2 被通知它是新的主控,并开始对注册表中的共享状态进行写入操作
  5. 分区已修复
  6. S1 写入注册表中的共享状态并成功,因为没有分区
  7. S2 写入注册表中的共享状态并且也成功,导致写入与 S1 的任意交错
  8. S1 被通知它不再是主控并停止写入

想法

  • 考虑到 Consul 的会话,一个 API 写入调用是否也需要一个会话 ID 并且只有在该会话 ID 仍然是 master 的情况下才能成功解决这个问题?
  • 领事或其他注册机构之一是否有这样的电话?
0 投票
0 回答
2320 浏览

redis - etcd - 是否可以使用 etcd 设置 pubsub?

我想设置 etcd / redis 来存储配置参数,适用于所有 docker 容器(现在,仅在单个主机内)。

还非常需要发布/订阅机制 - 以便轻松发布某些命令(例如对所有容器执行“执行 git pull”、“禁用/启用某些常用功能”等)。

我真的很喜欢 etcd(基于 OOB curl 的 set/get,17MB docker 映像),但我现在不需要 etcd 的各种可用性、服务发现功能 - 可能会在以后使用。据我了解,没有带有 etcd 的 pub/sub api(观看密钥是最接近的)。

请告知是否可以使用 etcd 有效地实现发布/订阅机制。否则我现在可以继续使用 redis。

0 投票
1 回答
1553 浏览

etcd - 无法使用 etcdctl 获取数据,但可以使用 curl

我可以使用 curl 从 etcd 获取数据,如下所示:

但我无法使用 etcdctl 从 etcd2 获取数据:

谁能帮我?

0 投票
3 回答
5041 浏览

kubernetes - 如何在 pod 副本之间运行 etcd 集群?

我有一个运行应用程序的 pod/服务,该应用程序使用 etcd 作为同步系统和数据存储。我想在 pod 中运行 etcd,以便所有副本形成一个连贯的集群。换句话说,副本#1 中的应用程序可以将“foo”写入localhost:4001/v2/keys/my_key,然后副本#2 可以读取localhost:4001/v2/keys/my_key并获得“foo”作为结果。

目前尚不清楚如何做到这一点,因为 pod 副本不可单独寻址。理论上我可以创建一个暴露集群端口的“etcd”服务,但是任何请求都会循环到所有副本,因此各个 etcd 节点将无法找到彼此。

我是否以正确的方式解决这个问题?

0 投票
1 回答
446 浏览

docker - 如何在创建之前更改容器的主机名?

我正在寻找一种方法来更改容器中的主机名信息。我正在运行一个寻找特定主机以连接到另一个容器的应用程序。有没有办法从 Dockerfile 实现这一点?