【问题标题】:Access to service list on docker swarm worker node访问 docker swarm worker 节点上的服务列表
【发布时间】:2019-09-07 12:49:54
【问题描述】:

我正在使用 docker-API 模块来访问服务列表和副本信息。它在 swarm 模式和管理节点上工作得更好。但是如果应用程序在工作节点上运行,它会给我以下错误 “意外 - 此节点不是 swarm 管理器。使用“docker swarm init”或“docker swarm join”将此节点连接到 swarm 并重试”。以下是我的代码,

const Docker = require('node-docker-api').Docker
const docker = new Docker({ socketPath: '/var/run/docker.sock' })
const services = await docker.service.list()

是否可以通过向工作节点提供任何选项或权限来获取两个节点上的服务列表?另外是否可以通过使用 docker-compose 或 kubernetes 运行应用程序来获得?

【问题讨论】:

    标签: node.js docker docker-compose docker-swarm docker-api


    【解决方案1】:

    作为docker docs 状态:

    工作节点参与 Raft 分布式状态,使 调度决策,或提供 swarm 模式 HTTP API

    可能的解决方案:

    • 您可以考虑在集群拓扑中仅运行管理器节点。

    • 或者,您可以将位置 constraint --constraint node.role==manager 用于基于 node.js 的 docker 服务

    这样,您的服务容器将仅在服务于 swarm 模式 HTTP API 的管理器节点上运行。

    【讨论】:

      猜你喜欢
      • 2021-08-21
      • 2019-01-30
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多