2016-04-04 2 views
0

Я стараюсь идти с Kubernetes DaemonSets и вообще не повезло. Я искал решение безрезультатно. Я надеюсь, что кто-то здесь поможет.daemonset не создает никаких контейнеров

Во-первых, я видел this ticket. Перезапуск диспетчера контроллера не помогает. Как вы можете видеть здесь, остальные процессы куба были начаты после того, как apirusver и сервер api установили '--runtime-config = extensions/v1beta1 = true'.

kube  31398  1 0 08:54 ?  00:00:37 /usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd_servers=http://dock-admin:2379 --address=0.0.0.0 --allow-privileged=false --portal_net=10.254.0.0/16 --admission_control=NamespaceAutoProvision,LimitRanger,ResourceQuota --runtime-config=extensions/v1beta1=true 
kube  12976  1 0 09:49 ?  00:00:28 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://127.0.0.1:8080 --cloud-provider= 
kube  29489  1 0 11:34 ?  00:00:00 /usr/bin/kube-scheduler --logtostderr=true --v=0 --master=http://127.0.0.1:8080 

Однако API-версия показывает только версию 1:

$ kubectl api-versions 
Available Server Api Versions: v1 

Kubernetes версия 1.2:

$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.0", GitCommit:"86327329213fed4af2661c5ae1e92f9956b24f55", GitTreeState:"clean"} 
Server Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.0", GitCommit:"86327329213fed4af2661c5ae1e92f9956b24f55", GitTreeState:"clean"} 

DaemonSet был создан, но, как представляется, не имеют стручков расписанию (статус .desiredNumberScheduled).

$ kubectl get ds -o json 
{ 
    "kind": "List", 
    "apiVersion": "v1", 
    "metadata": {}, 
    "items": [ 
     { 
      "kind": "DaemonSet", 
      "apiVersion": "extensions/v1beta1", 
      "metadata": { 
       "name": "ds-test", 
       "namespace": "dvlp", 
       "selfLink": "/apis/extensions/v1beta1/namespaces/dvlp/daemonsets/ds-test", 
       "uid": "2d948b18-fa7b-11e5-8a55-00163e245587", 
       "resourceVersion": "2657499", 
       "generation": 1, 
       "creationTimestamp": "2016-04-04T15:37:45Z", 
       "labels": { 
        "app": "ds-test" 
       } 
      }, 
      "spec": { 
       "selector": { 
        "app": "ds-test" 
       }, 
       "template": { 
        "metadata": { 
         "creationTimestamp": null, 
         "labels": { 
          "app": "ds-test" 
         } 
        }, 
        "spec": { 
         "containers": [ 
          { 
           "name": "ds-test", 
           "image": "foo.vt.edu:1102/dbaa-app:v0.10-dvlp", 
           "ports": [ 
            { 
             "containerPort": 8080, 
             "protocol": "TCP" 
            } 
           ], 
           "resources": {}, 
           "terminationMessagePath": "/dev/termination-log", 
           "imagePullPolicy": "IfNotPresent" 
          } 
         ], 
         "restartPolicy": "Always", 
         "terminationGracePeriodSeconds": 30, 
         "dnsPolicy": "ClusterFirst", 
         "securityContext": {} 
        } 
       } 
      }, 
      "status": { 
       "currentNumberScheduled": 0, 
       "numberMisscheduled": 0, 
       "desiredNumberScheduled": 0 
      } 
     } 
    ] 
} 

Вот мой YAML файл, чтобы создать DaemonSet

apiVersion: extensions/v1beta1 
kind: DaemonSet 
metadata: 
    name: ds-test 
spec: 
    selector: 
    app: ds-test 
    template: 
    metadata: 
     labels: 
     app: ds-test 
    spec: 
     containers: 
     - name: ds-test 
     image: foo.vt.edu:1102/dbaa-app:v0.10-dvlp 
     ports: 
      - containerPort: 8080 

Используя этот файл, чтобы создать DaemonSet, кажется, работает (я получаю «daemonset„DS-тест“, созданный»), но не стручки созданы:

$ kubectl get pods -o json 
{ 
    "kind": "List", 
    "apiVersion": "v1", 
    "metadata": {}, 
    "items": [] 
} 
+0

Можете ли вы запустить 'kubectl описать ds ds-test', чтобы узнать больше о создавшемся вами демонах? Вы также можете проверить журнал управления kube-controller-manager, чтобы убедиться, что (1) был запущен контроллер установки демона при запуске, (2) контроллер 'ds-test' был синхронизирован контроллером. –

+0

$ kubectl описать ds ds-test Имя: ds-test Изображение (ы): foo.vt.edu:1102/dbaa-app:v0.10-dvlp Selector: приложение = DS-тест Node-селектор: Ярлыки: приложение = дц-тест Желаемая число узлов по расписанию: 0 Текущее число узлов по расписанию: 0 Количество узлов Misscheduled: 0 Бобы Статус: 0 Запуск/0 Ожидание/0 Успешно/0 Сбой Нет событий. –

+0

Сколько узлов имеет ваш кластер и какой размер? У вас есть достаточная емкость на вашем кластере для размещения стручка? – dward

ответ

1

(я бы отправил это как комментарий, если у меня было достаточно репутации)

Я конф используемый вашим выходом.

kubectl api-versions должен распечатать extensions/v1beta1, если он включен на сервере. Поскольку это не так, похоже, что расширения/v1beta1 не включены.

Но kubectl get ds не работает, если расширения/v1beta1 не включены. Поэтому я не могу понять, включены ли расширения/v1beta1 на вашем сервере или нет.

Можете ли вы попробовать GET masterIP/apis и посмотреть, указаны ли там расширения? Вы также можете перейти к masterIP/apis/extensions/v1beta1 и посмотреть, есть ли там демоны.

Кроме того, я вижу kubectl version говорит 1.2, но затем kubectl api-versions не следует распечатать строку Available Server Api Versions (эта строка была удалена в 1.1: https://github.com/kubernetes/kubernetes/pull/15796).

+0

$ локона HTTP: // локальный: 8080/APIs { "группа": [{ "имя": "расширение", "версия": [{ "groupVersion": "Расширение/v1beta1", "версия": "v1beta1" } ], "preferredVersion": { "groupVersion": "расширения/v1beta1", "версия": "v1beta1" } } ] –

+0

'локон HTTP:// localhost: 8080/apis' сообщает, что установлены расширения/v1beta1. 'curl http: // localhost: 8080/apis/extensions/v1beta1' сообщает, что доступны демоны. –

+0

Удивительный! это означает, что укротитель в порядке. Давайте посмотрим на диспетчера диспетчера. Вы видите «Запуск контроллера установки демона» в журналах диспетчера диспетчера ('/ var/log/kube-controller-manager.log')? Начаты ли какие-либо другие контроллеры? (например: найдите «Запустить контроллер ReplicaSet», чтобы узнать, запущен ли контроллер набора реплик). –

0

Try:

$ kubectl заражать узлы --all node-role.kubernetes.io/master:NoSchedule-

главный узел не может принимать стручки.

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