Определение POD - Развертывание на DC / OS - PullRequest
0 голосов
/ 25 сентября 2018

Я новичок в DC / OS, и я действительно изо всех сил пытался развернуть POD.Я пробовал простые примеры, приведенные в документации , но развертывание застряло на этапе развертывания.Есть много доступных ресурсов, так что это не проблема.

enter image description here enter image description here

У меня есть 3 контейнера, которые мне необходимы для существования в виртуальной сети (очередь, PDI, API),Я включил свой файл определения, который начинается с развертывания одного контейнера, и как только я смогу успешно развернуть, я добавлю 2 дополнительных контейнера к определению.Я смотрел на этот пример , но безуспешно.

Я успешно развернул контейнеры по одному через Дженкинс.Все 3 изображения были опубликованы и существуют в реестре докеров (Jfrog).Я включил пример моего marathon.json для одного из этих успешных развертываний.Буду признателен за любые отзывы, которые могут помочь.Служба застряла в развернутой стадии, поэтому я не могу развернуть и просмотреть журналы через командную строку или пользовательский интерфейс.

enter image description here

контейнеров.image = pdi-queue

сервер артефакта = repos.pdi.com:5010/pdi-queue

1 Определение POD контейнера - (Ошибка: зависание на этапе развертывания)

{
"id":"/pdi-queue",
"containers":[
   {
      "name":"simple-docker",
      "resources":{
         "cpus":1,
         "mem":128,
         "disk":0,
         "gpus":0
      },
      "image":{
         "kind":"DOCKER",
         "id":"repos.pdi.com:5010/pdi-queue",
         "portMappings":[
            {
               "hostPort": 0,
               "containerPort": 15672,
               "protocol": "tcp",
               "servicePort": 15672

            }
         ]
      },
      "endpoints":[
         {
            "name":"web",
            "containerPort":80,
            "protocol":[
               "http"
            ]
         }

      ],
      "healthCheck":{
         "http":{
            "endpoint":"web",
            "path":"/"
         }
      }
   }
],
"networks":[
   {
      "mode":"container",
      "name":"dcos"
   }
]

}

Marathon.json - (Нет ошибки: успешное развертывание)

  {
  "id": "/pdi-queue",
  "backoffFactor": 1.15,
  "backoffSeconds": 1,
  "container": {
    "portMappings": [
      {"containerPort": 15672, "hostPort": 0, "protocol": "tcp", "servicePort": 15672, "name": "health"},
      {"containerPort": 5672, "hostPort": 0, "protocol": "tcp", "servicePort": 5672, "name": "queue"}
    ],
    "type": "DOCKER",
    "volumes": [],
    "docker": {
      "image": "repos.pdi.com:5010/pdi-queue",
      "forcePullImage": true,
      "privileged": false,
      "parameters": []
    }
  },
  "cpus": 0.1,
  "disk": 0,
  "healthChecks": [
    {
      "gracePeriodSeconds": 300,
      "intervalSeconds": 60,
      "maxConsecutiveFailures": 3,
      "portIndex": 0,
      "timeoutSeconds": 20,
      "delaySeconds": 15,
      "protocol": "MESOS_HTTP",
      "path": "/"
    }
  ],
  "instances": 1,
  "maxLaunchDelaySeconds": 3600,
  "mem": 512,
  "gpus": 0,
  "networks": [
    {
      "mode": "container/bridge"
    }
  ],
  "requirePorts": false,
  "upgradeStrategy": {
    "maximumOverCapacity": 1,
    "minimumHealthCapacity": 1
  },
  "killSelection": "YOUNGEST_FIRST",
  "unreachableStrategy": {
    "inactiveAfterSeconds": 300,
    "expungeAfterSeconds": 600
  },
  "fetch": [],
  "constraints": [],
  "labels": {
    "traefik.frontend.redirect.entryPoint": "https",
    "traefik.frontend.redirect.permanent": "true",
    "traefik.enable": "true"
  }

}

1 Ответ

0 голосов
/ 25 сентября 2018

Возможно, я не знаю ответа на проблемы, с которыми вы сталкиваетесь, но я думаю, что смогу поделиться некоторыми указателями, чтобы помочь отладить это.

Прежде всего, если вы не можете просматривать журналы спользовательский интерфейс DC / OS, вы также можете перейти к <cluster_url>/mesos и найти задачу simple_docker в разделе Выполненные задачи.Это будет отображаться как TASK_FAILED.Нажмите на ссылку Песочница справа и проверьте файлы stderr и stdout для этой задачи.Там могут быть некоторые подсказки о том, почему это не удалось.

Еще одно место, куда можно обратиться, - это отметить IP-адрес агента из пользовательского интерфейса Mesos, в котором задача не выполнена.SSH в узел и запустите sudo journalctl -u dcos-mesos-slave, чтобы просмотреть журналы агента и попытаться найти журналы, соответствующие сбойной задаче

Одно из различий между запуском приложения в качестве модуля и общим определением приложения заключается в том, чтоопределение приложения использует DOCKER в качестве контейнера для задачи, в то время как Pod используют MESOS контейнер.Я заметил, что вы используете личный реестр докеров для ваших образов докеров.Одна из возможностей состоит в том, что если ваш личный реестр не является доверенным для Mesos, но докер уже настроен на его доверие:

<copy the certificate(s) to /var/lib/dcos/pki/tls/certs>
cd /var/lib/dcos/pki/tls/certs
for file in *.crt; do ln -s \"$file\" \"$(openssl x509 -hash -noout -in \"$file\")\".0; done

Это необходимо сделать на каждом узле агента.

Еслиэто не проблема сертификата, это могут быть проблемы с учетными данными реестра Docker.Если используемый вами реестр Docker требует аутентификации, вы можете указать учетные данные Docker во время установки (при условии расширенного метода установки), используя: https://docs.mesosphere.com/1.11/installing/production/advanced-configuration/configuration-reference/#cluster-docker-credentials

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...