Я заметил кое-что странное при развертывании службы данных в моем кластере Docker Swarm.
В настоящее время у меня есть 4 узла: 2 рабочих, 2 менеджера (да, я знаю, что это не рекомендуется, но все еще в режиме тестирования).
Мой сервис объявлен глобальным режимом:
version: '3.3'
services:
dd-agent:
image: datadog/agent:latest
environment:
- "DD_API_KEY=xxx"
- "DD_LOGS_ENABLED=true"
- "DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true"
- "DD_AC_EXCLUDE=image:datadog-agent"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc/:/host/proc/:ro
- /sys/fs/cgroup/:/host/sys/fs/cgroup:ro
- /opt/datadog-agent/run:/opt/datadog-agent/run:rw
deploy:
mode: global
restart_policy:
condition: on-failure
Однако на самом деле в моем кластере я вижу только 3 развернутых экземпляра, у одного менеджера нет экземпляра.
При запросеDocker для списка сервисов, он говорит мне, что нужно развернуть только 3 реплики:
ubuntu@docker-swarm-manager-1:~$ sudo docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
paiqnrqiwpbq dd-agent_dd-agent global 3/3 datadog/agent:latest
v6w4mrn6vavt xxx_yyy replicated 2/2 xxx/yyy:test-0.2
cib3gj4omojk traefik_traefik global 2/2 traefik:1.7 *:80->80/tcp, *:443->443/tcp, *:8080->8080/tcp
xhrl8oaftf1c visualizer_visualizer replicated 1/1 dockersamples/visualizer:latest
Команда проверки выглядит нормально:
ubuntu@docker-swarm-manager-1:~$ sudo docker service inspect dd-agent_dd-agent
[
{
"ID": "paiqnrqiwpbqmg4kooxtzpaer",
"Version": {
"Index": 49139
},
"CreatedAt": "2019-04-23T15:49:31.947283769Z",
"UpdatedAt": "2019-04-24T10:01:42.078629559Z",
"Spec": {
"Name": "dd-agent_dd-agent",
"Labels": {
"com.docker.stack.image": "datadog/agent:latest",
"com.docker.stack.namespace": "dd-agent"
},
"TaskTemplate": {
"ContainerSpec": {
"Image": "datadog/agent:latest@sha256:5fbe2c87d4c4c2d9fc2d4bf45e39b0572f7f3f8ff906e3a77515a3308ab0c2cf",
"Labels": {
"com.docker.stack.namespace": "dd-agent"
},
"Env": [
"DD_AC_EXCLUDE=image:datadog-agent",
"DD_API_KEY=xxx",
"DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true",
"DD_LOGS_ENABLED=true"
],
"Privileges": {
"CredentialSpec": null,
"SELinuxContext": null
},
"Mounts": [
{
"Type": "bind",
"Source": "/var/run/docker.sock",
"Target": "/var/run/docker.sock",
"ReadOnly": true
},
{
"Type": "bind",
"Source": "/proc/",
"Target": "/host/proc/",
"ReadOnly": true
},
{
"Type": "bind",
"Source": "/sys/fs/cgroup/",
"Target": "/host/sys/fs/cgroup",
"ReadOnly": true
},
{
"Type": "bind",
"Source": "/opt/datadog-agent/run",
"Target": "/opt/datadog-agent/run"
}
],
"StopGracePeriod": 10000000000,
"DNSConfig": {},
"Isolation": "default"
},
"Resources": {},
"RestartPolicy": {
"Condition": "on-failure",
"Delay": 5000000000,
"MaxAttempts": 0
},
"Placement": {
"Platforms": [
{
"Architecture": "amd64",
"OS": "linux"
}
]
},
"Networks": [
{
"Target": "5u989vnt4kukrzmwpaub5jn0t",
"Aliases": [
"dd-agent"
]
}
],
"ForceUpdate": 0,
"Runtime": "container"
},
"Mode": {
"Global": {}
},
"UpdateConfig": {
"Parallelism": 1,
"FailureAction": "pause",
"Monitor": 5000000000,
"MaxFailureRatio": 0,
"Order": "stop-first"
},
"RollbackConfig": {
"Parallelism": 1,
"FailureAction": "pause",
"Monitor": 5000000000,
"MaxFailureRatio": 0,
"Order": "stop-first"
},
"EndpointSpec": {
"Mode": "vip"
}
},
"PreviousSpec": {
"Name": "dd-agent_dd-agent",
"Labels": {
"com.docker.stack.image": "datadog/agent:latest",
"com.docker.stack.namespace": "dd-agent"
},
"TaskTemplate": {
"ContainerSpec": {
"Image": "datadog/agent:latest@sha256:5fbe2c87d4c4c2d9fc2d4bf45e39b0572f7f3f8ff906e3a77515a3308ab0c2cf",
"Labels": {
"com.docker.stack.namespace": "dd-agent"
},
"Env": [
"DD_AC_EXCLUDE=image:datadog-agent",
"DD_API_KEY=xxx",
"DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true",
"DD_LOGS_ENABLED=true"
],
"Privileges": {
"CredentialSpec": null,
"SELinuxContext": null
},
"Mounts": [
{
"Type": "bind",
"Source": "/var/run/docker.sock",
"Target": "/var/run/docker.sock",
"ReadOnly": true
},
{
"Type": "bind",
"Source": "/proc/",
"Target": "/host/proc/",
"ReadOnly": true
},
{
"Type": "bind",
"Source": "/sys/fs/cgroup/",
"Target": "/host/sys/fs/cgroup",
"ReadOnly": true
},
{
"Type": "bind",
"Source": "/opt/datadog-agent/run",
"Target": "/opt/datadog-agent/run"
}
],
"Isolation": "default"
},
"Resources": {},
"RestartPolicy": {
"Condition": "on-failure",
"MaxAttempts": 0
},
"Placement": {
"Platforms": [
{
"Architecture": "amd64",
"OS": "linux"
}
]
},
"Networks": [
{
"Target": "5u989vnt4kukrzmwpaub5jn0t",
"Aliases": [
"dd-agent"
]
}
],
"ForceUpdate": 0,
"Runtime": "container"
},
"Mode": {
"Global": {}
},
"EndpointSpec": {
"Mode": "vip"
}
},
"Endpoint": {
"Spec": {
"Mode": "vip"
},
"VirtualIPs": [
{
"NetworkID": "5u989vnt4kukrzmwpaub5jn0t",
"Addr": "10.0.0.2/24"
}
]
}
}
]
Я попытался повторно развернуть (обновить) службу,без необходимости удалять и воссоздавать, но Рой сохраняет то же самое.
Кажется, это проблема, я ничего не нашел в репозитории Github.Есть ли способ понять, почему этот узел не учитывается в глобальном режиме?(только для этой службы данных служба traefik работает в глобальном режиме и работает нормально)