删除故障节点后 Docker Swarm 中的孤立任务
Orphaned Tasks in Docker Swarm after removal of failed node
上周我不得不从我的 Docker Swarm 集群中删除一个故障节点,留下一些 运行 在该节点上处于所需状态的任务 "Remove"。
即使删除堆栈并以相同的名称重新创建它,docker stack ps stackname
仍然显示它们。
有趣的是,在重新创建堆栈后,任务仍然存在,但没有分配节点。
这是我到目前为止对 "cleanup" 堆栈所做的尝试:
- 正在重新创建同名堆栈
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"
}
]
我遇到了同样的问题。我按照 this instructions :
解决了它
docker run --rm -v /var/run/docker/swarm/control.sock:/var/run/swarmd.sock dperny/tasknuke <taskid>
请务必使用完整的长任务 ID,否则它将无法工作(fkgz0oihexzsjqwv4ju0szorh
在您的情况下)。
上周我不得不从我的 Docker Swarm 集群中删除一个故障节点,留下一些 运行 在该节点上处于所需状态的任务 "Remove"。
即使删除堆栈并以相同的名称重新创建它,docker stack ps stackname
仍然显示它们。
有趣的是,在重新创建堆栈后,任务仍然存在,但没有分配节点。
这是我到目前为止对 "cleanup" 堆栈所做的尝试:
- 正在重新创建同名堆栈
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"
}
]
我遇到了同样的问题。我按照 this instructions :
解决了它docker run --rm -v /var/run/docker/swarm/control.sock:/var/run/swarmd.sock dperny/tasknuke <taskid>
请务必使用完整的长任务 ID,否则它将无法工作(fkgz0oihexzsjqwv4ju0szorh
在您的情况下)。