介绍
我正在运行多个,我称它们为 consul-stacks。它们总是看起来像: - 1 个领事服务器 - 9 个领事节点
每个节点都提供一些服务——只是一个经典的网络堆栈等等(这个问题不感兴趣)。Gossip 用于保护服务器被任意节点查询并泄露数据。几个 consul-template / tiller “观察者”正在等待动态配置节点/服务的 KV 变化
目标
假设我有 10 个这些堆栈(数字是动态的),我想构建一个 Web 应用程序,使用特定逻辑控制每个堆栈的 consul-KV
我现在拥有的
我创建了一个 thor+diplomat 工具来包装创建特定 KV 条目所需的逻辑。我在堆栈中的“控制器”容器上运行它时实现了它,与 localhost:8500 交谈 - 然后使用 gossip 进行身份验证并写入服务器。
问题
我现在将使用什么概念将此工具移动到远程(不是 consul-stack 的一部分)服务器,同时能够写入每个 consul-stacks KV。
当然,我可以使用外交官连接到 stack1.tld:8500 - 但这意味着我打开 HTTP 端口并需要以某种方式保护它(不受八卦保护?不知何故,只有 RPC?)并且还要保护 /ui。
- 有没有更好的方法连接到每个堆栈?
- 在 8500 之前使用具有基本身份验证的 nginx 代理服务器来保护访问?
- 也在这个端口上使用 ssl-interception 并且仍然使用 8500 或者更确切地说使用配置的 https 端口(在 consul HTTPS API 中)
- 使用 ACL 保护访问?(很多设置允许堆栈成员访问 - 需要 TLS 吗?)
一般来说,如果不使用 TLS(客户端需要做很多工作来设置),哪些概念适合这个需要与堆栈服务器通信以安全地写入其 KV。
如果我错过了什么,很高兴添加您要求的任何内容