问题标签 [consul-kv]

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

javascript - 如何从“CONSUL”获取 React 应用程序的配置

我正在使用 .env 文件来读取所有配置,现在我想从consul运行时读取我的所有配置。

我正在运行 CONSUl 并在本地的不同端口上对应用程序做出反应,但是在阅读领事时cors出现错误

非常感谢这里的任何帮助

0 投票
0 回答
675 浏览

spring-boot - 无法将领事键值属性读入 Spring Boot 应用程序

我对领事很陌生。从 POC 开始,能够使用 consul 建立两个服务之间的通信,但无法将 consul 中的键/值对读取到 spring boot 应用程序中。

浏览了互联网上所有可用的解决方案以了解我做错了什么,但没有任何帮助。

请看一下下面的代码,如果我做错了,请向我提出建议

主类:

应用程序.yml

pom.xml:

我正在使用 consul 1.9.2 版我使用以下命令启动 consul 代理:

领事代理 -server -bootstrap-expect=1 -data-dir=consul-data -ui -bind= -client 0.0.0.0

我在 consul UI 中将键值对配置为 config/keyvalue/greeting:

键值配置

当我运行我的 Spring Boot 应用程序时,出现错误:

原因:java.lang.IllegalArgumentException:无法解析值“${greeting}”中的占位符“greeting”

0 投票
1 回答
132 浏览

consul - 使用 helm 在同一个 pod 中部署 Vault 和 consul 代理

我计划使用 Vault Service 作为 HA 和 Consul Backend 和 TLS,同时为 consul 和 vault 使用 helm 部署。

我已经在我的 EKS 集群中使用 helm 部署部署了 consul。这会将 consul 客户端部署为 daemonset 并将 consul 服务器部署为 pod 当使用 helm 部署 vault 时,我的 vault 服务器必须与 consul 客户端而不是 consul 服务器进行交互。我面临的挑战是我无法在下面的保险库配置文件中提供存储领事地址作为 127.0.0.1:8501 因为保险库作为单独的 pod 运行,而领事客户端作为单独的 pod 运行。如此不同的ips。

我还使用 HOST_IP:8501 对其进行了调整,但它抛出错误 [WARN] storage migration check error: error="Get "https://10.15.0.7:8501/v1/kv/vault/core/migration": x509 :由未知机构签署的证书”

这是因为 TLS 证书应该包含 IP 地址的主题备用名称 (SAN),当然,它应该由您作为 ca_file 参数的一部分包含在 Consul 中的受信任 CA 签名。但是在我的领事舵图配置中,我使用的是 enableAutoEncrypt: true。所以我不能使用自定义证书。

如果我在同一个吊舱中部署保险库和领事,这将解决。在 vault helm chart 配置中,我找不到 consulAgent 配置以便将 vault 和 consul 代理一起部署。请帮忙,让我知道如何解决这个问题

0 投票
1 回答
108 浏览

spring - Spring Cloud Consul 配置版本控制

我想弄清楚你应该如何对 Consul 配置进行版本控制。

我的目标是能够在不触及现有配置的情况下为下一个版本准备生产配置。如果我降级,还可以恢复到旧配置。

我的第一个也是唯一的解决方案是使用spring.cloud.consul.config.data-key

默认情况下data-key=data,配置将是:

我可以将密钥更改为data-key=v1

在每次配置更改时,我都会增加版本,一切都应该没问题。

但是当有许多应用程序共享config/application*配置时,我的想法就中断了

也许解决方案是不对当前版本的 Spring Cloud Consul 可能无法实现的应用程序配置进行版本化。 或者甚至可能根本没有通用配置?

我在正确的轨道上吗?我需要对我的 Consul 配置进行版本控制吗?你如何管理它们?

0 投票
0 回答
24 浏览

service - 带有领事的应用程序配置,如何根据类型“覆盖”值?

假设一个应用程序可以有不同的服务类型——比如说 A、B、C、D。

该应用程序有一个配置文件。每种类型与所有其他类型共享大约 95% 的配置条目。每种类型都有一些唯一值。有些甚至非常特定于每个实例(由于 NAT 问题导致的 IP 地址)。

保留这些配置文件并不容易。目前我们使用ansible,但感觉很麻烦且容易出错。每种类型都有一个角色,每个共享变量都有一个公共部分。

我们正在考虑 Hashicorps consul。但是,我们还没有弄清楚如何维护每种类型不同的变量。

例如,配置文件(仅作为示例):

param1每种类型可能不同。我可以在 KV 存储中想到 aparam1.Aparam1.B,但是当我们查询时需要进行一些转换,因为配置文件仍然需要param1在文件中......

我们是否过于复杂化了这一点?

我们想要的是能够集中管理所有类型的配置文件,并且可能能够查询每种类型的值,最好是通过实例查询。

consul正确的工具吗?有替代品吗?我们最初考虑自定义实现一些东西,但如果有一些可以重用的东西,那就更好了。

0 投票
0 回答
21 浏览

spring-boot - 连接到在 Spring Boot 应用程序中需要用户名和密码的托管领事时如何指定凭据?

我正在尝试将我的 spring boot 应用程序连接到 consul,以便在 consul 中存储键值。使用 localhost:8500 完成测试一切正常后,成功检索到值。但我想连接到已经托管在需要用户名和密码的 Nginx 服务器上的领事。所以我在 bootstrap.yml 中指定了 host: 和 port:80 但我不确定在哪里指定用户名和密码。我收到“ Authorization Required”的错误

我应该在哪里以及如何指定托管领事的用户名和密码?

0 投票
1 回答
78 浏览

consul - Consul 后端 - 虚拟机与 Consul 快照

我已将 Vault 和 Consul 作为集群安装在 5 个虚拟机中。安装进行得很顺利,但我仍然有一个问题我找不到答案。

我可以使用consul snapshot save backup.snap并导出 consul 快照。

consul 的 K/V 数据存储在哪里(不是快照)?它在系统上的特定路径中吗?

我的问题是:

如果我对我的虚拟机进行快照,我需要对 Consul 进行快照还是 Consul 的数据保存在我的虚拟机快照中?

谢谢

0 投票
1 回答
29 浏览

consul - consul KV 一致性在更新相同密钥方面如何工作

如果给定一个 consul KV key a/key,其中有多个代理服务器实例正在运行,如果:

创建密钥端点发出两个请求 A(将值设置为val-a)和 B(将值设置为),而不使用参数或更新相同的密钥:val-b casacquirea/key

  • 如果 A 和 B 并行生成,密钥的值是否会损坏?
  • 或者如果 A 比 B 稍微早一点,最终值仍然可以变为val-a吗?
0 投票
1 回答
275 浏览

environment-variables - 使用 consul-template 从 Consul KV 分配环境变量

我对领事很陌生。我只想使用 consul-template 从 consul kv 加载我的环境变量。我有一个带有键“iamdbusername”的领事 kv 条目。我想在 consul-template 的帮助下在环境变量 IAM_DB_USER 中分配它的值。我的应用程序使用环境变量 IAM_DB_USER 来获取数据库用户名。

这方面的任何线索都会对我很有帮助。

谢谢!!!

0 投票
1 回答
197 浏览

consul - 在同一台主机上安装 2 个 Consul 的客户端代理(分离的集群)

我有 2 个不同的 HashiCorp Consul 集群(我们称它们为集群 A 和集群 B)在不同的主机上运行。

我的 Python 应用程序运行在我已经安装在配置为集群 A 的 1 个客户端代理上的主机上,我希望我的应用程序也能够向集群 B 发送请求(以某种方式区分 2 个代理)

是否可以在同一主机上安装第二个客户端代理(配置为集群 B)?如果是这样,怎么做?我只需要更改到不同的端口吗?找不到该用例的文档。

任何可能的解决方案都会有所帮助,谢谢!