Реплики глобального сервиса Docker Swarm работают только на ведущем узле. Ошибка контейнера: HNS завершился с ошибкой: {объект существует}

Когда я пытаюсь развернуть службу с глобальным режимом, запускается только реплика на ведущем узле, реплика на рабочем узле не запускается. У меня есть два экземпляра Windows Server 2016, работающих на AWS (1 лидер и 1 рабочий узел). Я использую стандартный образ Microsoft / IIS. Оба узла имеют статус "Готов"

PS C:\Users\Administrator> docker version
Client:
 Version:      17.06.2-ee-6
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   e75fdb8
 Built:        Mon Nov 27 22:46:09 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.06.2-ee-6
 API version:  1.30 (minimum version 1.24)
 Go version:   go1.8.3
 Git commit:   e75fdb8
 Built:        Mon Nov 27 22:55:16 2017
 OS/Arch:      windows/amd64
 Experimental: false

Это команда, которую я выполнил для развертывания службы:

docker service create --name web --mode global --publish 8080:80 microsoft/iis

В глобальном режиме одна реплика процесса должна быть запущена на каждом узле. Однако работает только одна из двух реплик (как видно ниже). Реплика работает на узле "Лидер". Реплика на рабочих узлах не создается.

PS C:\Users\Administrator> docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                  PORTS
we1v56oqqg85        web                 global              1/2                 microsoft/iis:latest   *:8080->80/tcp

Я проверил один из контейнеров, которые не запускаются на рабочем узле, и выдается следующая ошибка: Err ":" HNS завершился с ошибкой: {объект существует} Была сделана попытка создать объект, и имя объекта уже существовало. "

PS C:\Users\Administrator> docker inspect udx0u2r79qak
[
    {
        "ID": "udx0u2r79qakjqj47q54h77im",
        "Version": {
            "Index": 3097
        },
        "CreatedAt": "2017-12-20T01:23:16.8231351Z",
        "UpdatedAt": "2017-12-20T01:23:22.0121065Z",
        "Labels": {},
        "Spec": {
            "ContainerSpec": {
                "Image": "microsoft/iis:latest@sha256:fdabed2b25528610300f61ec4fc62c93858080e943c8170b2eb3b78f3cb34d6f",
                "DNSConfig": {}
            },
            "Resources": {
                "Limits": {},
                "Reservations": {}
            },
            "Placement": {
                "Platforms": [
                    {
                        "Architecture": "amd64",
                        "OS": "windows"
                    },
                    {
                        "Architecture": "amd64",
                        "OS": "windows"
                    }
                ]
            },
            "ForceUpdate": 0
        },
        "ServiceID": "we1v56oqqg85jc97ro3h385a5",
        "NodeID": "v9v4k3v3rc1vbfugrj62jtd56",
        "Status": {
            "Timestamp": "2017-12-20T01:23:17.0172859Z",
            "State": "rejected",
            "Message": "preparing",
            "Err": "HNS failed with error : {Object Exists} An attempt was made to create an object and the object name already existed. ",
            "ContainerStatus": {},
            "PortStatus": {}
        },
        "DesiredState": "shutdown",
        "NetworksAttachments": [
            {
                "Network": {
                    "ID": "ob7ysngbmgnk57r68tpk3miun",
                    "Version": {
                        "Index": 2998
                    },
                    "CreatedAt": "2017-12-19T21:48:23.5930028Z",
                    "UpdatedAt": "2017-12-20T01:16:01.771829Z",
                    "Spec": {
                        "Name": "ingress",
                        "Labels": {},
                        "DriverConfiguration": {},
                        "Ingress": true,
                        "IPAMOptions": {
                            "Driver": {},
                            "Configs": [
                                {
                                    "Subnet": "10.255.0.0/16",
                                    "Gateway": "10.255.0.1"
                                }
                            ]
                        },
                        "Scope": "swarm"
                    },
                    "DriverState": {
                        "Name": "overlay",
                        "Options": {
                            "com.docker.network.driver.overlay.vxlanid_list": "4096"
                        }
                    },
                    "IPAMOptions": {
                        "Driver": {
                            "Name": "default"
                        },
                        "Configs": [
                            {
                                "Subnet": "10.255.0.0/16",
                                "Gateway": "10.255.0.1"
                            }
                        ]
                    }
                },
                "Addresses": [
                    "10.255.0.19/16"
                ]
            }
        ]
    }
]

Во время моего исследования я наткнулся на это: https://github.com/MicrosoftDocs/Virtualization-Documentation/issues/529 котором говорится об ошибке, но ни одно из предложений не помогло.

Я попытался сбросить HNS C:\ProgramData\Microsoft\Windows\HNS\HNS.data и запустить его снова. Я также попытался запустить скрипт, предлагаемый на этой странице: https://github.com/MicrosoftDocs/Virtualization-Documentation/tree/live/windows-server-container-tools/CleanupContainerHostNetworking

Экземпляры AWS не поддерживают Hyper-V, это может быть частью проблемы, так как это ограничивает сетевые возможности, но это всего лишь слабое подозрение, которое у меня есть.

Как бы я пошел об устранении этой ошибки хост-службы сети (HNS)?

0 ответов

Другие вопросы по тегам