问题标签 [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.
amazon-web-services - Confd 错误:错误 501:所有给定的对等点都无法访问(尝试连接到每个对等点两次但失败)[0]
在调试时,我意识到 confd 没有获取密钥,我的日志看起来像这样:
Sep 18 18:31:50 ip-10-171-54-76.ec2.internal docker[24891]: [nginx] waiting for confd to refresh nginx.conf
Sep 18 18:31:56 ip-10-171-54-76.ec2.internal docker[24891]: 2014-09-18T18:31:56Z 9122c7a54edc confd[9572]: ERROR 501: All the given peers are not reachable (Tried to connect to each peer twice and failed) [0]
我使用 nsenter 登录到正在运行的容器来运行一些实验以进行调试。我运行了这个命令
confd -onetime -node 172.17.42.1:4001 -config-file /etc/confd/conf.d/nginx.toml
然后如上所述收到此错误
confd[12894]: ERROR 501: All the given peers are not reachable (Tried to connect to each peer twice and failed) [0]
在这一点上,我完全无能为力。我将 EC2 与 CoreOS 的稳定版本一起使用,并且我确信 etcd 正在主机上运行。此外,我可以从容器内成功 ping 主机。
关于有什么问题的任何想法?
援助将不胜感激。
deployment - 用 ansible 运行 etcd
运行时
我必须按回车键才能返回控制台和 etcd 在后台运行
ANSIBLE
如何使用 ansible 重新创建此目的?
我想以这种方式用 ansible 启动 etcd
ansible 保持返回命令,不再继续下一个任务。
也许解决方案正在后台运行 etcd。我不知道如何
使用
安可 1.6.6
等 0.4.6
etcd - 跨多个数据中心使用 etcd 是否安全?
跨多个数据中心使用 etcd 是否安全?因为它将 etcd 端口暴露给公共互联网。在这种情况下我是否必须使用客户端证书或 etcd 有某种身份验证?
bash - 读取 redis-cli subscribe 的标准输出并在消息上运行 bash 命令
我想要一个 bash 脚本,它读取redis-cli
订阅的标准输出并在收到消息时执行某些操作,以及消息值。
订阅可以作为参数传递给redis-cli
喜欢
但是然后我需要将该标准输出通过管道传输到某些东西,以便我可以解析消息。我考虑过使用while read line; do
循环,但单个 redis 消息占用 3 行。
更新
我的结局是通过在 etcd 上设置一个键来宣布一个新的 redis 主控。这应该可以通过订阅switch-master
redis 哨兵上的频道来实现。[1] 该消息的值应该类似于以下内容<master name> <oldip> <oldport> <newip> <newport>
,我想将其设置newip
为 etcd 上的值。
收到该消息时我想运行的命令是etcdctl set /redis/master $NEWIP
coreos - cloud-config 中 ETCD_PEER_KEY_FILE 的语义是什么
一个etcd
实例可以有多个对等点。根据CoreOS doc,我可以配置一个参数ETCD_PEER_KEY_FILE=/path/to/peers.key
。如果我根据它的名称来解释这个参数,我可以将一个对等点(或多个对等点_s_)的私钥放在那个文件中。这背后的原因是什么?有人可以解释一下,这个参数的真正含义(没有找到任何文档)。
docker - 通过 systemd 在 CoreOS 中启用 etcd 服务自动启动
我已经部署了一个带有 VMware 映像的 CoreOS 独立服务器,请按照本指南体验 CoreOS。
部署成功后,发现我的CoreOS只启用了Docker服务,没有运行etcd和fleet服务。虽然我知道如何使用 systemd 手动运行 etcd 和队列服务。而且我也知道使用适当的云配置可以安装 CoreOS,其中 etcd 和队列服务会自动启动。
但我想知道:
- 是否可以放置一个单元文件
/etc/systemd/system
以使 systemd 自动启动 etcd 服务? - 如果可以,单元文件的内容是什么?
- 如果不能,还有什么办法?
谢谢
docker - CoreOS 上的 etcd api - 远程设置 ip 地址配置
我正在尝试使用 etcd 的远程 api 使用静态值(如 ip 地址、dns 解析地址、网关等)远程配置 coreOS 框。
我理论我应该能够提交类似的文件:
curl -X PUT " http://xxx.xxx.xxx.xxx:4001/v2/keys/etcd/registry/ ???_/_state? prevExist =false " -d value=10.10.10.1
但我找不到要使用的确切语法的参考。
race-condition - 如何解决 etcd 领导者选举中的竞争条件?
在测试具有三个节点的 Core Os 集群时,在成功添加和删除几个额外节点后,我遇到了以下问题,可能是由于 etcd 选举过程中的竞争条件。
检查新领导人给出:
集群中每台机器的 Journalctl 给出:
列出带有队列的机器失败:
列出集群中的机器给出:
但目前只有三台机器在运行。我试图添加额外的机器以达到法定人数但无济于事。我正在运行以下版本:
为此,正如这里提到的https://coreos.com/docs/distributed-configuration/etcd-api/#cluster-config,强制领导者的领导者模块已被删除。丑陋的部分是,由于没有法定人数,我无法从机器列表中删除当前未运行的机器,例如:
这没有效果。有什么方法可以保存集群吗?
coreos - 无法在集群中使用 etcd
我已经阅读了有关集群架构的指南,并使用以下配置构建了一个开发集群:
所有机器都在同一个子网上。
一台机器充当主机,仅运行etcd(IP 地址为 192.168.0.95)。
然后我有三个工人使用这个配置运行舰队:
我可以通过fleetctl控制机器和单元,但我无法正确使用etcdctl。
每个工作人员在使用密钥时都使用本地etcd,因此密钥仅存在于创建它们的工作人员上!
鉴于上述配置,这不应该发生吗?
谢谢
vmware - 如何通过 config-drive 在 VMware ESXi 中为 coreos 定义静态 IP 地址
我在 VMware ESXi 上部署了几个 coreos 实例。etcd 似乎对 IP 地址非常挑剔,尤其是当它们发生变化时。
我希望能够通过 cloud-config 以一种不会混淆 etcd 集群的方式定义静态 IP 地址。看起来在 coreos booup 期间需要发生的事情是它需要在启动 etcd 之前首先使用静态 IP 地址启动接口。我试图用我的 user_data 文件的这一部分来做到这一点:
发生的情况是 coreos-cloudinit 进程会在引导期间将此文件写入文件系统,但前提是它首先使用 DHCP 启动网络接口。然后 etcd 将启动,但会因为 user_data addr 和 peer-addr 设置与 DHCP 不匹配而感到困惑。如果我在系统首次启动后手动重新启动系统,它将开始使用之前在 static.network 文件中记录的静态 IP 地址。是否可以避免第二次重新启动,即在定义 static.network 后启动网络?
似乎根本问题可能只是 vmware 提供程序不理解其他提供程序(例如 vagrant)使用的 $public_ip4 构造:
据我所知,使用 vagrant/virtualbox 时不存在此问题。