2017-02-03 19 views
0

Надеюсь, кто-то может помочь. У меня есть кластер CoreOS 3x, на котором запущен Kubernetes. Узлы заключаются в следующем: 192.168.1.201 - Контроллер 192.168.1.202 - Рабочий узел 192.168.1.203 - Рабочий узелНевозможно запустить kube-dns на Кубернете

кластер запущен и работает, и я могу запустить следующие команды:

> kubectl get nodes 

NAME   STATUS      AGE 
192.168.1.201 Ready,SchedulingDisabled 1d 
192.168.1.202 Ready      21h 
192.168.1.203 Ready      21h 

> kubectl get pods --namespace=kube-system 

NAME         READY  STATUS    RESTARTS AGE 
kube-apiserver-192.168.1.201   1/1  Running   2   1d 
kube-controller-manager-192.168.1.201 1/1  Running   4   1d 
kube-dns-v20-h4w7m      2/3  CrashLoopBackOff 15   23m 
kube-proxy-192.168.1.201    1/1  Running   2   1d 
kube-proxy-192.168.1.202    1/1  Running   1   21h 
kube-proxy-192.168.1.203    1/1  Running   1   21h 
kube-scheduler-192.168.1.201   1/1  Running   4   1d 

Как вы можете видеть, служба kube-dns работает неправильно. Он продолжает перезагружаться, и я боюсь понять, почему. Любая помощь в ее отладке была бы оценена (или указатели на то, где читать об отладке. Запуск журналов kubectl ничего не возвращает ... не уверен, что аддоны по-разному работают со стандартными контейнерами.

Запуск kubectl описать стручки, я могу видеть, контейнеры погибают из-за того нездоровым:

16m   16m    1  {kubelet 192.168.1.203} spec.containers{kubedns}  Normal   Created   Created container with docker id 189afaa1eb0d; Security:[seccomp=unconfined] 
16m   16m    1  {kubelet 192.168.1.203} spec.containers{kubedns}  Normal   Started   Started container with docker id 189afaa1eb0d 
14m   14m    1  {kubelet 192.168.1.203} spec.containers{kubedns}  Normal   Killing   Killing container with docker id 189afaa1eb0d: pod "kube-dns-v20-h4w7m_kube-system(3a545c95-ea19-11e6-aa7c-52540021bfab)" container "kubedns" is unhealthy, it will be killed and re-created 

Вы могут найти полный вывод этой команды как GitHub суть здесь: https://gist.github.com/mehstg/0b8016f5398a8781c3ade8cf49c02680

заранее спасибо

+0

Привет - удаление и повторное развертывание kube-dns вызовет те же проблемы? – pagid

+0

Привет. Да. Попробовали удалить и перераспределить. К сожалению, такая же проблема. – mehstg

ответ

1

Если вы установили свой кластер с помощью kubeadm, после установки вы должны добавить сеть подкачки.

Если вы выбрали фланель в качестве сети вашего порта, вы должны иметь этот аргумент в своей команде init kubeadm init --pod-network-cidr 10.244.0.0/16.

Фланель YAML-файл можно найти в coreOS flannel repo.

Все, что вам нужно сделать, если ваш кластер был инициализирован (читайте выше), чтобы запустить kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

После того, как это и работает (он будет создавать стручки на каждом узле), ваш Кубэ-DNS стручок должен подойти.

Если вам нужно сбросить настройки (например, чтобы добавить аргумент в kubeadm init), вы можете использовать kubeadm reset для всех узлов.

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

Все это описано более подробно на этапе 3/4 Getting started guide относительно сети порта.

+0

Большое спасибо Morten. Я проведу это завтра и дам вам знать, как я себя чувствую. – mehstg

+0

Hi Morten. Сегодня я просмотрел руководство по началу работы, однако это отличается от того, что я следил на веб-сайте CoreOS. Я использовал это: https://coreos.com/kubernetes/docs/latest/kubernetes-on-generic-platforms.html и использовал сценарии сборки для запуска ящиков. Я также установил фланель на ящики CoreOS, поэтому не уверен, что мне все еще нужна сеть подкачки. – mehstg

+0

Я столкнулся с той же проблемой, что и в вопросе, но с weave-net. Будет ли такое же решение работать для моей проблемы? Насколько я знаю, мы указываем pod-network-cidr только в случае фланеля – Yudi

0

как ваш gist говорит, что ваша сеть подкачки, кажется, сломана. Вы используете пользовательскую подсистему с 10.10.10.X. Вы должны передавать эти IP-адреса всем компонентам.

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

Я рекомендую вам установить с Калико, так как это было решение для меня, чтобы довести до CoreOS K8S рабочие

+0

Hi David. Я, должно быть, пропустил это в журнале. Где в моем сущности это показывает, что сеть нарушена (для будущей справки, когда я отлаживаю). Мортен ответил ниже, и я попробую его предложение, я просто просматриваю строку журнала, в которой говорится, что сеть сломана. – mehstg

0

После последовали шаги в официальном kubeadm документ с фланелевой сети, я бегу в подобной проблеме

http://janetkuo.github.io/docs/getting-started-guides/kubeadm/

Похоже, сетевые стручки застревают в состоянии ошибки:

Кубэ-ДНС для XXXXXXXX-xxxvn (ошибка RPC)

Кубэ-фланель-DS-ххххх (CrashLoopBackOff)

Кубэ-фланель-дц-ххххх (CrashLoopBackOff)

Кубэ-фланель-дц-ххххх (CrashLoopBackOff)

В моем случае это связанные с ошибками разрешения RBAC и решаются путем запуска

kubectl создать -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml

Затем вся Кубэ-система стручки вошла в запущенные состояния. Проблема восходящего потока обсуждается на github https://github.com/kubernetes/kubernetes/issues/44029