问题标签 [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.
docker - 在 Docker 容器中运行 etcd
我想使用以下命令在 Docker 容器中运行etcd :
似乎一切正常:
但是当我尝试设置一个密钥时(来自同一个 etcd 节点机器):
我得到:
所请求的网址无法检索
我需要配置更多东西吗?Docker 容器运行正常:
码头工人ps
coreos - Terraform 如何在节点故障时处理 CoreOS/etcd2?
我一直在使用 terraform 在 Digital Ocean 上创建一个 CoreOs 集群就好了。我的问题在这里得到了解决,但是在 etcd2 和 terraform 这样的快节奏项目上已经过去了将近一年,这似乎是 10 年。恕我直言,如果主服务器失败,terraform 将创建另一个具有完全相同配置的实例,但根据免费发现 coreos 服务,集群将已满,所有从服务器将使用错误的 ip 连接到 etcd2 主服务器。在 minion 失败的情况下,master ip 不会成为问题,但我仍然无法加入完整的集群。
terraform 如何处理此类问题?有解决方案还是我仍然绑定到上面链接的hacky解决方案?
如果我运行terraform taint node1
. 有没有办法通知发现服务这个变化?
docker - Docker 容器不会以 systemctl 开头
我刚刚开始检查 coreos
我曾尝试设置 redis 和 mysql docker 实例,但收效甚微。
我最初希望一切都能开箱即用,但似乎并非如此。
因此,基于 coreos 站点上 systemd 上的这个文档,我决定尝试这个来启动我的 docker instace
这没有用。
我使用 docker events 来跟踪它的初始化
我不确定我可能错过了什么..
这是我的云配置文件
etcd - 尝试列出机器时出现 etcd 错误
我正在试验 etcd,并且已经能够让它在集群中运行并执行大部分预期的功能。但是,我正在尝试执行一些基本的管理和监控请求,但遇到了不寻常的错误。
我执行以下命令(在 COREOS文档中):
我得到以下回复:
注意:我确认 etcd 可以正常工作(因为我可以看到其他命令运行良好)。
我的配置如下:
etcd - etcd 错误执行 admin/config 命令
我正在尝试执行 etcd 管理请求并且遇到异常错误。
我执行以下命令(在 COREOS文档中):
我得到以下回复:
注意:我确认 etcd 可以正常工作(因为我可以看到其他命令运行良好)。
我的配置如下:
我有什么明显的遗漏吗?
linux - Cannot setup multi-host Docker overlay network with etcd
I am trying to connect two Docker hosts with an overlay network and am using etcd
as a KV-store. etcd is running directly on the first host (not in a container). I finally managed to connect the Docker daemon of the first host to etcd but cannot manage to establish a connection the Docker daemon on the second host.
I downloaded etcd from the Github releases page and followed the instructions under the "Linux" section. After starting etcd, it is listening to the following ports:
And I started the Docker daemon on the first host (on which etcd is running as well) like this:
After that, I could also create an overlay network with:
But I can't figure out how to start the daemon on the second host. No matter which values I tried for --cluster-advertise
and --cluster-store
, I keep getting the following error message:
Both my hosts are using the eth1
interface. The IP of host1 is 10.10.10.10
and the IP of host2 is 10.10.10.20
. I already ran iperf
to make sure they can connect to each other.
Any ideas?
apache-zookeeper - 在分布式存储中实现线性化是否需要复制日志
etcd 使用的 Raft 算法和 Zookeeper 使用的 ZAB 算法都是使用复制日志来更新状态机。
我想知道是否可以通过简单地使用领导者选举和版本化值来设计一个类似的系统。以及为什么这些系统决定使用复制日志。
如果我们有以下设置,我就是我的例子
- 机器 A(Leader),包含版本 1
- 机器 B(跟随者),包含版本 1
- 机器 C(跟随者),包含版本 1
写入将是这样的:
- 机器 A 接收写入请求并存储待处理的写入 V2
- 机器 A 向机器 B 和机器 C 发送准备请求
- 追随者(机器 B 和机器 C)向领导者(机器 A)发送确认
- 领导者(机器 A)从机器的 quorum 收到确认后,它知道 V2 现在已提交,并向客户端发送成功响应
- Leader(机器 a)向 Follower(机器 A 和机器 B)发送 finalize 请求,通知他们 V2 已提交,V1 可以被丢弃。
为了使该系统正常工作,在获得领导者租赁后领导者发生变化时,领导者机器必须通过在接受请求之前从节点的法定人数中读取来获取最新的数据版本。
apache-zookeeper - ZooKeeper 和 Etcd 有多好?
免责声明:我是 etcd 项目和 ZooKeeper 项目的新手。
我最近对分布式开源产品产生了兴趣。我发现它们似乎需要配置(协调?)系统,例如用于 Presto DB 的 ZooKeeper,用于 kubernetes 的 Hive 和 Etcd,我认为了解 etcd 和 ZooKeeper 的作用是了解分布式系统的第一步。
但是现在,我好像迷路了……我还不能理解 etcd 和 ZooKeeper 的优点和独特之处。他们为我寻找分布良好的键值存储或文件系统。这是我对产品的印象。我知道印象并不能反映产品的特点。但我不知道我应该知道的剩余功能是什么。
ZooKeeper:根据 ZooKeeper 的概述页面,它保证了以下几点。
- 顺序一致性 - 来自客户端的更新将按照它们发送的顺序应用。
- 原子性 - 更新成功或失败。没有部分结果。
- 单一系统映像 - 客户端将看到相同的服务视图,而不管它连接到的服务器如何。
- 可靠性 - 应用更新后,它将从那时起持续存在,直到客户端覆盖更新。
- 及时性——系统的客户视图保证在一定的时间范围内是最新的。
顺序一致性和原子性是大多数文件系统不支持的独特特性,但其他特性在其他文件系统中是常见的。
etcd:根据 etcd 的 README。它专注于
- 简单:可卷曲的面向用户的 API (HTTP+JSON)
- 安全:可选的 SSL 客户端证书认证
- 快速:基准测试每个实例每秒写入 1000 次
- 可靠:使用 Raft 正确分布
它们中的大多数似乎在 Amazon S3 中很常见(S3 不支持如此快速的访问。)
我知道这些产品非常好,因为大多数分布式开源产品都依赖于它们。但是分布式开源产品选择它们的关键、独特的功能是什么?
ssl - Kubernetes 1.2.2:api-server 失败:无法在 etcd 上找到已安装的 TLS 证书
我一直在努力在使用TLS保护的情况api-server 1.2.2
下运行。etcd
我正在从升级1.1.2
到1.2.2
在1.1.2
我使用--etcd-config
标志并且有一个看起来像这样的文件:
现在这不再受支持,我切换到使用标志:
现在我收到此错误:
所以,它似乎找不到证书文件。文件路径和名称与以前相同,并且它们的挂载hostPath
方式与 v1.1.2 完全相同,所以我不明白为什么 api-server 找不到它们。
我一直试图通过简单地command
从 pod 中切换来弄清楚文件路径发生了什么
至
但kubelet
由于某种我不明白的原因,不会启动这个 pod。
它与yaml文件名或其他东西有关吗?
我不明白发生了什么为什么kubelet
不能使用这个命令运行。
对此的任何帮助将不胜感激。
谢谢
更新
将命令替换为后,我能够进入正在运行的容器/hyperkube scheduler
我可以收集 apiserver 抱怨的文件,所以我不明白为什么找不到它们。