gpt4 book ai didi

docker - 使用 Ansible docker_service 模块将服务部署到 swarm

转载 作者:行者123 更新时间:2023-12-04 18:59:58 26 4
gpt4 key购买 nike

我正在尝试将 Docker 服务部署到 swarm 中,但总是在我的本地主机(我用作 docker swarm 管理器的那个)上运行容器并且没有服务

这是我的设置:

我有 3 个节点 Docker (v. 1.12.1) swarm,其中包括一个作为管理器运行的主机和两个在 CentOS 7 上运行的工作节点。在管理器节点 (localhost) 上,我运行 Ansible (v. 2.1.1.0) playbook 和swarm 已配置并正在运行

Swarm: active
NodeID: d9h5xa832ax7wzeq8q44fjld3
Is Manager: true
ClusterID: 9cztoin3gy2ntbwehsmrkjuxi
Managers: 1
Nodes: 3
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Node Address: 10.25.190.209

从具有此代码的剧本开始
- hosts: localhost
name: Run JMeter test
vars_files:
- user.config.yml
vars:
execute_tpcds_test : "{{ run_tpcds_test }}"
roles:
- { role: run_jmeter, when: execute_tpcds_test is defined and execute_tpcds_test ==1 }

这称为此角色:
- name: Deploy tpcds_tpg service to swarm
docker_service:
project_name: tpcds-tpg
definition:
version: '2'
services:
run_tests:
image: 'pbench/tpcds_tpg'
volumes:
- /opt/pbench/run_output/
command: ./run_jmeter.sh "{{jmeter_output_dir}}"
register: output
- debug: var=output

当我运行 ansible-playbook ./site.yml我最终得到了一个正在运行的容器。做 docker ps -a显示
[pdo@sdl02133 tpcds-tpg]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fef245b41365 pbench/tpcds_tpg "./run_jmeter.sh /opt" 21 seconds ago Up 20 seconds tpcdstpg_run_tests_1

docker service ls显示没有服务在运行,所以它看起来像 docker_service将我的图像部署为本地容器​​,而不是集群上的服务

所以我的假设是,如果我在机器上有一个活跃的 swarm 是一个 swarm manager 并且我使用 Ansible docker_service模块,然后它会自动感知 swarm 并将服务部署到它。看起来我的假设是错误的,我找不到任何文档、博客文章等来暗示我该做什么以及我缺少什么。请Ansible高手帮忙!

最佳答案

Ansible module uses Docker Compose目前不适用于 Swarm 模式。如果你运行 docker-compose在 Swarm 中的一个节点上,它只发出 docker run命令——这就是为什么你在单个主机上运行容器而不是在 Swarm 中运行服务的原因。

您可以使用 issue 3656 在 Compose 中跟踪群模式支持。 ,但是当这种情况发生时,很可能也需要对 Ansible 模块进行更改(除非将 Compose 更改为具有群模式检测逻辑)。

关于docker - 使用 Ansible docker_service 模块将服务部署到 swarm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39925167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com