Потерянные задачи в Docker Swarm после удаления вышедшего из строя узла - PullRequest
0 голосов
/ 06 ноября 2018

На прошлой неделе мне пришлось удалить неисправный узел из моего Docker Swarm Cluster, оставив некоторые задачи, которые выполнялись на этом узле, в желаемом состоянии «Удалить».

Даже после удаления стека и повторного создания его с тем же именем, docker stack ps stackname все равно показывает их.

Интересно, что после воссоздания стека задачи все еще там, но без назначенного узла. screenshot of docker stack ps

Вот что я до сих пор пытался «очистить» стек:

  • Воссоздание стека с тем же именем
  • docker container prune
  • docker volume prune
  • docker system prune

Есть ли способ удалить конкретную задачу?

Вот вывод для docker inspect fkgz0oihexzs, первой задачи в списке:

[
  {
    "ID": "fkgz0oihexzsjqwv4ju0szorh",
    "Version": {
      "Index": 14422171
    },
    "CreatedAt": "2018-11-05T16:15:31.528933998Z",
    "UpdatedAt": "2018-11-05T16:27:07.422368364Z",
    "Labels": {},
    "Spec": {
      "ContainerSpec": {
        "Image": "redacted",
        "Labels": {
          "com.docker.stack.namespace": "redacted"
        },
        "Env": [
          "redacted"
        ],
        "Privileges": {
          "CredentialSpec": null,
          "SELinuxContext": null
        },
        "Isolation": "default"
      },
      "Resources": {},
      "Placement": {
        "Platforms": [
          {
            "Architecture": "amd64",
            "OS": "linux"
          }
        ]
      },
      "Networks": [
        {
          "Target": "3i998stqemnevzgiqw3ndik4f",
          "Aliases": [
            "redacted"
          ]
        }
      ],
      "ForceUpdate": 0
    },
    "ServiceID": "g3vk9tgfibmcigmf67ik7uhj6",
    "Slot": 1,
    "Status": {
      "Timestamp": "2018-11-05T16:15:31.528892467Z",
      "State": "new",
      "Message": "created",
      "PortStatus": {}
    },
    "DesiredState": "remove"
  }
]

1 Ответ

0 голосов
/ 20 июня 2019

У меня была такая же проблема. Я решил это, следуя этой инструкции :

docker run --rm -v /var/run/docker/swarm/control.sock:/var/run/swarmd.sock dperny/tasknuke <taskid>

Обязательно используйте полный длинный идентификатор задачи, иначе он не будет работать (fkgz0oihexzsjqwv4ju0szorh в вашем случае).

...