DC/OS марафон Виртуальная сеть не работает

Я установил DC/OS с 3 мастерами и 3 агентами и столкнулся с проблемой виртуальной сети. Вот моя спецификация приложения Marathon:

{
  "id": "/nginx",
  "cmd": null,
  "cpus": 1,
  "mem": 128,
  "disk": 0,
  "instances": 1,
  "container": {
    "type": "DOCKER",
    "volumes": [],
    "docker": {
      "image": "nginx",
      "network": "BRIDGE",
      "portMappings": [
        {
          "containerPort": 80,
          "hostPort": 0,
          "servicePort": 10002,
          "protocol": "tcp",
          "name": "main1",
          "labels": {
            "VIP_0": "9.0.0.0:34562"
          }
        }
      ],
      "privileged": false,
      "parameters": [],
      "forcePullImage": false
    }
  },
  "portDefinitions": [
    {
      "port": 10002,
      "protocol": "tcp",
      "labels": {}
    }
  ]
}

В разделе виртуальной сети DC/OS я вижу следующее:

НАИМЕНОВАНИЕ ВИРТУАЛЬНОЙ СЕТИ | Подсеть | АГЕНТ ПРЕФИКС ДЛИНА

Dcos 9.0.0.0/8 24

Контейнеры долго ждут. Если я удаляю раздел сопоставления портов, он работает успешно.

По сути, мне нужно знать, как работать с этой новой виртуальной сетью, и исправить обнаружение службы и балансировку нагрузки без использования каких-либо дополнительных вещей.

1 ответ

Мне понадобилось время, чтобы понять это...

Вам нужно:

  • Удалить все порты назначения в определении задачи
  • Опишите имя сети, к которой нужно подключиться (созданная по умолчанию сеть называется "dcos")

    {
        "id": "yourtask",
        "container": {
            "type": "DOCKER",
            "docker": {
                "image": "your/image",
                "network": "USER"
            }
        },
        "acceptedResourceRoles" : [
            "slave_public"
        ],
        "ipAddress": {
            "networkName": "dcos"
        },
        "instances": 2,
        "cpus": 0.2,
        "mem": 128
    }
    
Другие вопросы по тегам