标签: consul

在 Vagrant 上运行 Consul:从来宾到主机的端口转发在 Mac OS X 上不起作用

我想使用 Vagrant 在我的本地机器(Mac OS X)上设置一个带有 UI 的 Consul 集群。到目前为止,我只是按照官方领事文档的入门说明进行操作:https : //www.consul.io/intro/getting-started/join.html

为了能够从主机访问 UI,我只是将这一行添加到提供的 Vagrantfile ( https://github.com/hashicorp/consul/blob/master/demo/vagrant-cluster/Vagrantfile )

n1.vm.network "forwarded_port", guest: 8500, host: 8500
Run Code Online (Sandbox Code Playgroud)

要在来宾机器上使用 UI 启动 Consul,我 ssh 进入机器,然后简单地将 -ui 标志添加到提供的命令中:

consul agent -server -bootstrap-expect=1 \
    -data-dir=/tmp/consul -node=agent-one -bind=172.20.20.10 \
    -enable-script-checks=true -config-dir=/etc/consul.d -ui
Run Code Online (Sandbox Code Playgroud)

Consul 启动时没有问题,从我可以执行的来宾机器开始:

curl -v 'http://localhost:8500/ui/'
Run Code Online (Sandbox Code Playgroud)

并返回预期的 HTML 页面。

但是,尝试http://localhost:8500/ui/在浏览器中访问或通过主机上的 curl访问不起作用。在主机上使用 curl 会导致:

*   Trying ::1...
* TCP_NODELAY set
* Connection failed
* connect to ::1 port 8500 failed: Connection refused
*   Trying 127.0.0.1...
* …
Run Code Online (Sandbox Code Playgroud)

macos portforwarding vagrant consul

1
推荐指数
1
解决办法
745
查看次数

游牧者:健康检查

需要帮助我有这个

service {
  name = "nginx"
  tags = [ "nginx", "web", "urlprefix-/nginx" ]
  port = "http"
  check {
    type = "tcp"
    interval = "10s"
    timeout = "2s"
  }
}
Run Code Online (Sandbox Code Playgroud)

如果返回 200 响应(如 localhost:8080/test/index.html),我如何为特定 URI 添加运行状况

nginx consul nomad

1
推荐指数
1
解决办法
1856
查看次数

如何从 micronaut 框架内的服务访问 ApplicationContext?

我在服务中访问 ApplicationContext 的每一次尝试都失败了,ApplicationContext 被返回为 null。在 Spring 中,我能够使用 ApplicationContextAware,根据(https://micronaut-projects.github.io/micronaut-spring/latest/guide/index.html)应该在 micronaut 中用 @Autowired 替换。我已经尝试过

@Autowired ApplicationContext context
Run Code Online (Sandbox Code Playgroud)

然而没有运气。它始终为空。任何帮助,将不胜感激!

java spring consul micronaut

1
推荐指数
1
解决办法
2669
查看次数

Docker 容器向 http 发送请求

你好,我有一个问题。

我使用 docker compose ver3 和 consul 镜像作为容器,在我的主机上我有一个简单的服务,应该响应 http 请求,并且它设置在端口 40001 上。所以现在我想让 docker 向该服务发送请求作为运行状况检查通过 http(换句话说,将请求从 docker 容器发送到主机上运行的服务)。

我的 consul docker compose 很简单:

version: '3'

services:

  consul:
  image: consul:latest
  command: consul agent -dev -log-level=warning -ui -client=0.0.0.0
  hostname: consul
  container_name: consul
  ports:
    - 8500:8500
    - 8600:8600/udp
    - 40000-41000:40000-41000
Run Code Online (Sandbox Code Playgroud)

因此,我启动这个容器,主机上的服务在其中注册,主机上的服务的 http 运行状况检查地址为“ http://localhost:40005//Health ”。请求的间隔约为 15 秒,因此我预计此类请求到达服务并且服务将响应 200。

我还可以访问容器中领事的 UI。

主机上的服务不会注册任何传入请求,但有趣的是,当我运行独立领事时,它工作正常(也就是说,我正在进行健康检查)。

所以我的问题是,这是否可能是容器无法与主机上的服务通信的问题。

docker consul

1
推荐指数
1
解决办法
4535
查看次数

如果不匹配,领事模板过滤器

有没有办法使用 consul 模板来过滤不匹配的内容?

就像是

{{services NOT "@east-aws"}}
...
Run Code Online (Sandbox Code Playgroud)

我没有在存储库自述文件中找到它

templates filter consul

0
推荐指数
1
解决办法
2517
查看次数

Spring Cloud consul 中的令牌支持

我们正在使用 spring-cloud 来读取我们应用程序的配置。我们在 application.yaml 中有类似的结构

spring:
  cloud:
    consul:
      host: consul_host
      port: 8500
Run Code Online (Sandbox Code Playgroud)

我们想为 consul 启用 ACL。所以我们需要通过consul token来通过 spring 读取配置。如何在 application.yaml 中指定 consul 令牌

spring consul spring-cloud

0
推荐指数
1
解决办法
2479
查看次数

领事支持或 2 个节点的替代方案

我想将 consul 用于 2 节点集群。缺点是两个节点没有容错能力:

https://www.consul.io/docs/internals/consensus.html

Consul 有没有办法只用两个节点进行一致的领导人选举?Consul Raft 共识算法可以改变吗?

非常感谢。

consensus raft consul

0
推荐指数
1
解决办法
1543
查看次数