问题标签 [confd]

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 回答
795 浏览

coreos - confd 对等点不可访问

跑步

给了我以下

但是,如果我向 confd 模板和 conf 具有的完全相同的服务器和键/值对发出 curl 请求,我会正确地从 etcd 获得 json 响应。不确定,为什么 confd 不起作用?

有人有想法么?

0 投票
1 回答
1757 浏览

service-discovery - 如何使用 confd 获取使用 etcd 生成的键字符串值

我正在使用 confd 和 etcd。我正在关注nginx 的 confd 示例。我将这些密钥放在我的 etcd 服务中:

这是我的 toml 配置:

这是我的 tmpl 配置。

在这里,我想捕捉app2app1之类的键字符串值。我只知道如何获得它的价值。我想做这样的事情{{$sever.key}}但它不起作用。{{$sever.key}}上面的配置是错误的,但我这样做是为了显示我想要什么。

这个想法可能吗?

是否有任何保留词或语法?

0 投票
1 回答
1323 浏览

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 主机。

关于有什么问题的任何想法?

援助将不胜感激。

0 投票
1 回答
1371 浏览

docker - Docker 无法添加带有“太多重定向”的远程文件

我正在尝试构建以下内容Dockerfile

但它无法尝试使用“重定向太多”错误来获取远程文件:

在 Mac OS X 10.10 上运行 boot2docker 1.3.1。知道这里发生了什么吗?

0 投票
1 回答
18934 浏览

postgresql - 在 docker 环境中重启 postgres

我无法重新启动 dockerized postgres 数据库(我使用 Core OS)。使用命令在 bash 脚本中启动数据库

哪个有效。我有另一个由 confd 调用的脚本,它在某些 etcd 键更改时运行(这部分没问题,文件被正确调用)并且必须重新启动 postgres(不重新加载,因为某些配置更改需要重新启动)。这是我尝试过的主要选项,但失败了...

系统地引发错误:

此外,

,

,

失败

任何想法?先感谢您!

0 投票
4 回答
1252 浏览

docker - 如何通过 Dockerfile 安装`passenger-install-nginx-module`

如何passenger-install-nginx-module通过 Dockerfile 安装?

以上是我的dockerfile。

我只想设置passenger-nginx-module ...

但我RUN在 Dockerfile 的最后一条指令中出错

首先,安装passenger,其次,尝试通过rvmsudo passenger-install-nginx-module命令安装nginx-module。

但是码头工人回应了这个错误

错误:

虽然我只是试图指挥rvmsudo......

我应该怎么办?

0 投票
2 回答
6604 浏览

bash - How to set environment variables with a forward slash in the key

Is there a way to export an environment variable with a slash in the name such as:

export /myapp/db/username=someval

This post indicates it should be possible but I cannot figure out valid syntax to do so.

For background:

I am using confd to produce config files from a template and key store. The typical stores (consul, etcd) use hierarchical keys such as /myapp/db/username. I would like to transparently allow for switching between using an environment variable based provider and a configuration store that leverages hierarchical keys.

0 投票
1 回答
1260 浏览

google-cloud-platform - 如何从容器访问 etcd?

我在 Google Compute Engine 上的 CoreOS 上运行 Kubernetes,我想从容器访问 etcd 以使用 confd 启用动态配置。Pod 中的容器有没有办法知道 Kubernetes master 的 IP 地址?

0 投票
2 回答
1334 浏览

security - 使用 kubernetes 使用敏感信息填充 Docker 容器

我有一个运行容器的 pod,这些容器需要访问 API 密钥和数据库密码等敏感信息。现在,这些敏感值嵌入到控制器定义中,如下所示:

然后可以在 Docker 容器中作为$DB_PASSWORD环境变量使用。一切都相当容易。

但是阅读他们关于Secrets的文档时,他们明确表示将敏感配置值放入您的定义中违反了最佳实践,并且可能是一个安全问题。我能想到的唯一其他策略如下:

  • 为每个用户社区或命名空间创建一个 OpenPGP 密钥
  • 使用crypt将配置值设置为 etcd(使用私钥加密)
  • 创建一个包含私钥的 Kubernetes 机密,就像这样
  • 将该秘密与容器相关联(这意味着私钥将可以作为卷安装访问),就像这样
  • 当容器启动时,它将访问卷挂载中的文件以获取私钥,并使用它来解密从 etcd 返回的 conf 值
  • 然后可以将其合并到confd中,它根据模板定义(例如 Apache 或 WordPress 配置文件)填充本地文件

这看起来相当复杂,但更安全和灵活,因为这些值将不再是静态的并以明文形式存储。

所以我的问题,我知道这不是一个完全客观的问题,这是否完全有必要?首先只有管理员才能查看和执行 RC 定义;因此,如果有人破坏了 Kubernetes 主控,您还有其他问题需要担心。我看到的唯一好处是没有秘密以明文形式提交到文件系统的危险......

还有其他方法可以安全地使用秘密信息填充 Docker 容器吗?

0 投票
3 回答
11287 浏览

kubernetes - 在 Kubernetes 清单中使用动态值

我有两个独立的 Kubernetes 集群,它们将分别用于暂存环境和生产环境。我想为将要提交到每个集群的 Kubernetes API 对象提供 YAML 清单,但其中一些对象在两个环境之间的配置会略有不同。

作为一个虚构但说明性的示例,想象在每个集群上运行一个内部 Docker 注册表,一个使用 S3 作为存储后端,一个使用 GCS 后端。注册表容器可以接受这些配置值作为环境变量或从文件中读取,这两者都是 Kubernetes 清单支持的,但是我应该如何为每个环境填充这些值呢?

本质上,我想要的是一种使清单看起来像这样的方法,其中$()语法是在提交清单时将在服务器上发生的变量插值:

我可以编写使用占位符作为值的模板,然后处理模板,从某个外部源中提取实际值,以生成实际提交给集群的最终清单。但是,我想我会先问一下,以防已经存在执行此操作的工具,或者有一些我不知道的受 Kubernetes 支持的方式来执行此操作。为了使用 Kubernetes,这似乎是许多人需要做的事情。

我的其他想法包括在主机节点上使用 etcd、confd 和脚本的某种组合,但这开始进入主机配置管理领域,我想不惜一切代价避免。我正在使用 CoreOS,主机完全通过 coreos-cloudinit 进行配置。换句话说,没有在创建节点时未定义的主机系统上进行任何操作,因此像 Ansible 这样的传统配置管理工具已经不复存在。

我知道 Kubernetes 的秘密系统,但其中一些变量值可能非常大,而且大多数都不是秘密。