2016-03-06 4 views
0

Я выполнил инструкции на this page, чтобы построить и развернуть Mesos. Я сделал это на Ubuntu Trusty VM с 1 мастером Mesos и 1 подчиненным. Следующие команды - это то, что я использовал для запуска Mesos.Kubernetes on Mesos, нет подходящего предложения

$ mesos-master --ip=10.0.2.15 --work_dir=/var/lib/mesos --log_dir=/var/log/mesos 
$ mesos-slave --master=10.0.2.15:5050 --containerizers=docker,mesos 

Все три испытания завершены без сообщения об ошибке.

Затем я последовал за this page, чтобы развернуть Кубернетес. После строительства Кубернетеса-Мезоса я использовал следующие команды для развертывания Кубернетеса.

$ export KUBERNETES_MASTER_IP=10.0.2.15 
$ export KUBERNETES_MASTER=http://${KUBERNETES_MASTER_IP}:8888 
$ docker run -d --hostname $(uname -n) --name etcd \ 
    -p 4001:4001 -p 7001:7001 quay.io/coreos/etcd:v2.0.12 \ 
    --listen-client-urls http://0.0.0.0:4001 \ 
    --advertise-client-urls http://${KUBERNETES_MASTER_IP}:4001 

и т.д.d контейнер работает.

$ export PATH="$(pwd)/_output/local/go/bin:$PATH" 
$ export MESOS_MASTER=10.0.2.15:5050 
$ cat <<EOF >mesos-cloud.conf 
    [mesos-cloud] 
     mesos-master  = ${MESOS_MASTER} 
    EOF 
$ km apiserver \ 
    --address=${KUBERNETES_MASTER_IP} \ 
    --etcd-servers=http://${KUBERNETES_MASTER_IP}:4001 \ 
    --service-cluster-ip-range=10.10.10.0/24 \ 
    --port=8888 \ 
    --cloud-provider=mesos \ 
    --cloud-config=mesos-cloud.conf \ 
    --secure-port=0 \ 
    --v=1 >apiserver.log 2>&1 & 
$ km controller-manager \ 
    --master=${KUBERNETES_MASTER_IP}:8888 \ 
    --cloud-provider=mesos \ 
    --cloud-config=./mesos-cloud.conf \ 
    --v=1 >controller.log 2>&1 & 
$ km scheduler \ 
    --address=${KUBERNETES_MASTER_IP} \ 
    --mesos-master=${MESOS_MASTER} \ 
    --etcd-servers=http://${KUBERNETES_MASTER_IP}:4001 \ 
    --mesos-user=root \ 
    --api-servers=${KUBERNETES_MASTER_IP}:8888 \ 
    --cluster-dns=10.10.10.10 \ 
    --cluster-domain=cluster.local \ 
    --v=2 >scheduler.log 2>&1 & 

Журналы выглядят правильно, никаких сообщений об ошибке.

kubectl get services показывает:

NAME    CLUSTER-IP EXTERNAL-IP PORT(S)  AGE 
k8sm-scheduler 10.10.10.50 <none>  10251/TCP 1m 
kubernetes  10.10.10.1 <none>  443/TCP  2m 

Затем я создал простой Nginx стручок, kubectl get pods всегда показывает, что он еще не принято. kubectl get events показывает:

FIRSTSEEN LASTSEEN COUNT  NAME  KIND  SUBOBJECT TYPE  REASON    SOURCE     MESSAGE 
2m   47s  9   nginx  Pod     Warning FailedScheduling {default-scheduler } Error scheduling: No suitable offers for pod/task 

Что это значит по нет подходящих предложений для стручка/задачи? В журнале Mesos я вижу, что Mesos продолжает отправлять предложение в рамках Kubernetes, но продолжает оставаться ДЕКЛАРИРОВАННЫМ. Если я запустил mesos-execute --master=10.0.2.15:5050 --name=echo --command="echo 'hello world'" --containerizer=docker --docker_image=ubuntu:14.04, он может развернуть образ Docker с префиксом «mesos-» и запустить команду. Таким образом, контейнер Docker работает правильно.

ответ

1

Kubernetes-Mesos будет отказываться от предложений по нескольким причинам:

  1. ресурсы в предложении не удовлетворяют минимально необходимого для запуска стручка-задачи. Первая подзадача, запущенная на данном подчиненном сервере, требует ресурсов-исполнителей в дополнение к ресурсам под-задачи.
  2. Ресурсы в предложении не совместимы с планировщиком. это происходит, если вы запускаете фреймворк, запускаете задачу, убиваете процесс планировщика, а затем перезапускаете планировщик с разными флагами; некоторые флаги планировщика влияют на командную строку, используемую для запуска исполнителя. самый быстрый способ исправить это - удалить все запущенные модули и вручную убить несовместимые процессы-исполнители, уже запущенные на ведомых устройствах.
  3. есть проблема с информацией об узле в реестре apirusver.

Какую версию k8sm вы используете? мастер? Вы можете попытаться увеличить многословие журналов планировщика (--v = 3), а затем сбросить копию журналов планировщика на pastebin или некоторые из них, чтобы они могли быть проанализированы. Часто бывает сложно устранить ситуации, подобные этой, без журналов.

+0

Моя версия k8sm v1.2.0-alpha.8, версия mesos 0.27.1. Вот часть scheduler.log: http://pastebin.com/M0FSsa1i –

1

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

+0

Как это сделать? Как я знаю, для запуска Kubernetes pod вам нужно только запустить изображение Docker. Я попытался запустить изображение Docker с помощью 'mesos-execute -master = 10.0.2.15: 5050 --name = echo -command =" echo 'hello world' "--containerizer = docker --docker_image = ubuntu: 14.04 'и успешно. –

+0

Для каждой задачи требуется запуск процессора, памяти и одного или нескольких портов.Если предложений нет, удовлетворяющих всем этим критериям, задача не может быть запущена. – John

Смежные вопросы