我的应用程序在启用 ACL 的部署设置中使用 Consul 客户端(daemonset)已经有一段时间了。该应用程序使用 Consul SDK 通过提供的目录 HTTP API 将微服务注册到 Consul 服务器。然后其他微服务就可以发现该服务。
由于Consul大力推广新的Consul Dataplane模型,其服务网格功能可以通过pod中提供的注释自动注册和自动发现。所以我计划禁用领事客户端并仅使用领事数据平面。但是,在某些用例中,我想直接调用 Consul Server HTTP API,即使用应用程序中的 kv/手动发现/等。
我可以通过 Consul Dataplane 设置连接到端口 8500 上的 HTTP API 吗? 如果我直接调用Consul Server服务(在k8s服务的上下文中),绕过任何本地守护进程/代理,是否会被推荐?
在Consul中注册为服务的Consul服务器实例仅暴露8300端口,该端口供内部使用。尝试配置领事数据平面以“发现”领事服务器,以便可以通过代理在本地访问它,但没有成功。
您仍然可以将 client.enabled 设置为 true 并在非网格模式下运行:https://developer.hashicorp.com/consul/docs/k8s/helm#h-client 您需要设置 connectInject.enabled=false