我正在尝试使用覆盖网络设置 docker swarm。我在 aws 上有一些主机,而其他是运行 Ubuntu 的笔记本电脑(与在 aws 上相同)。每个节点都有一个静态公共 IP。我创建了一个覆盖网络:
docker network create --driver=overlay --attachable test-net
我在其中一台 aws 主机上创建了一个群网络。每个其他节点都能够加入该群网络。
但是,当我docker run -it --name alpine2 --network test-net alpine
在非 aws 的任何节点上运行时,出现错误:docker: Error response from daemon: attaching to network failed, make sure your network options are correct and check manager logs: context deadline exceeded.
但是,如果我在任何 aws 主机上运行相同的程序,则一切正常。如果 aws 上有一些节点而其他节点没有,我还需要在网络/端口方面做些什么吗?
我已经在所有机器上打开了 swarm 网络所需的端口。
编辑:在管理器节点中列出时,所有节点都被标记为“活动”。
更新通过打开相应的端口解决了这个问题。如果所有节点都基于 Linux,它现在可以工作。但是,当我尝试将管理器作为 Linux(ubuntu) os 与管理器建立群时,mac os 机器无法加入群。
我正在尝试在我的 spring-boot 应用程序中添加自定义指标。我已经查看了许多示例,但仍然无法添加自定义计数器。
应用程序属性
management.endpoint.metrics.enabled=true
management.endpoints.web.exposure.include=*
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
Run Code Online (Sandbox Code Playgroud)
代码
static final Counter requests =
Counter.build().namespace("java").name("requests_total").help("Total requests.")
.register();
@CrossOrigin
@GetMapping("/test")
public int processRequest() {
requests.inc();
return (int) requests.get();
}
Run Code Online (Sandbox Code Playgroud)
当我访问 API 时,我可以看到计数器值增加。http://localhost:8080/actuator/prometheus
问题是我在普罗米修斯页面上找不到我新创建的指标:9090
。所以我认为计数器没有被注册(??)。我在这里缺少什么?
我创建了一个jenkinsfile,需要进入已经创建的目录。但是问题在于目录的名称可以是可变的,例如:dir ('RELEASE/abc/${abc-version}')
。将abc-version
作为在管道中的字符串参数传递。
问题在于,在运行管道时,jenkins将创建一个名为“ ${abc-version}
” 的目录,而不是将其作为参数传递。
到目前为止,我一直没有这样做。这有可能吗?我们可以在dir步骤中传递变量吗?
编辑:我尝试了%abc-version%,但仍然无法正常工作。而是使用%abc-version%创建目录,而不是将其作为变量。
另外,我的参数类似于:abc-version
。与这个问题有关吗?
docker ×1
docker-swarm ×1
groovy ×1
java ×1
jenkins ×1
metrics ×1
networking ×1
prometheus ×1
spring-boot ×1