访问docker swarm worker节点上的服务列表
我正在使用docker-API模块访问服务列表和副本信息。它在群体模式和管理器节点上效果更好。但是,如果应用程序在工作程序节点上运行,则会出现以下错误“意外-该节点不是群集管理器。请使用“ docker swarm init”或“ docker swarm join”将此节点连接到群集并重试”。以下是我的代码,
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运行应用程序来获得吗?
回答如下:作为docker docs状态:
Worker节点do n't参与Raft分布式状态,计划决策,或提供群集模式HTTP API。
可能的解决方案:
您可能考虑在集群拓扑中仅运行管理器节点。
或者,您可以为基于node.js的docker服务使用展示位置constraint
--constraint node.role==manager
这样,您的服务容器将仅在提供群体模式HTTP API的管理器节点上运行。
访问docker swarm worker节点上的服务列表
我正在使用docker-API模块访问服务列表和副本信息。它在群体模式和管理器节点上效果更好。但是,如果应用程序在工作程序节点上运行,则会出现以下错误“意外-该节点不是群集管理器。请使用“ docker swarm init”或“ docker swarm join”将此节点连接到群集并重试”。以下是我的代码,
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运行应用程序来获得吗?
回答如下:作为docker docs状态:
Worker节点do n't参与Raft分布式状态,计划决策,或提供群集模式HTTP API。
可能的解决方案:
您可能考虑在集群拓扑中仅运行管理器节点。
或者,您可以为基于node.js的docker服务使用展示位置constraint
--constraint node.role==manager
这样,您的服务容器将仅在提供群体模式HTTP API的管理器节点上运行。