2015-09-30 4 views
8

Итак, у Kubernetes есть довольно новая сетевая модель, которая, на мой взгляд, основана на том, что, по ее мнению, является недостатком с сетью Docker по умолчанию. В то время как я все еще пытаюсь понять: (1) то, что он считает фактическим недостатком (-ами), и (2) то, что общее решение Кубернеса, я сейчас достиг точки, где я хотел бы просто реализовать решение и, возможно, это подскажет мне немного лучше.Запуск Kubernetes на vCenter

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

Я надеюсь, что кто-то, кто создал кластер Kubernetes раньше (с нуля), может помочь мне пройти через основные процедуры. Мне не интересно работать на GCE или AWS, и пока я не заинтересован в использовании какой-либо сети наложения, например flannel.

Мой основной понимание:

  1. выкроить /16 подсети для всех стручков. Это ограничит вас до 65 тыс. Контейнеров, что должно быть достаточным для большинства обычных приложений. Все IP-адреса в этой подсети должны быть «общедоступными», а не внутри некоторого традиционно-частного (классного) диапазона.
  2. Создать cbr0 мост где-то и убедитесь, что его постоянные (но на какой машине?)
  3. Remove/отключить MASQUERADE правило, установленное Докер.
  4. Некоторые способы настройки iptables маршрутов (опять же, где?), так что каждый стручок, созданный Kubernetes, получает один из этих публичных IP-адресов.
  5. Для использования балансировки нагрузки Services и динамического DNS требуется другая настройка.
  6. Предоставление 5 виртуальных машин: 1 мастер, 4 миньонов
  7. Установки/настройки Docker на всех 5 виртуальных машинах
  8. Установки/настроить kubectl, controller-manager, apiserver и etcd к мастеру, и запустить их в качестве услуги/демонов
  9. Установка/настройка kubelet и kube-proxy на каждый миньон и запустить их в качестве услуг/демонов

Это лучшее, что я могу собрать из 2-х полных дней исследований, и они, вероятно, неправильно (или misdir), вышли из строя и совершенно неполны.

У меня есть необузданный доступ для создания виртуальных машин в кластере vCenter на месте. Если необходимо внести изменения в VLAN/Switches/etc. Я могу привлечь инфраструктуру.

Сколько виртуальных машин нужно настроить для Kubernetes (для кластера от малого до среднего) и почему? Какие точные исправления я должен внести в свои неопределенные инструкции выше, чтобы полностью настроить сеть?

У меня хорошая установка/настройка всех двоичных файлов. Просто полностью задыхается на стороне сети установки.

ответ

3

Для общего введения в сети kubernetes, я нашел http://www.slideshare.net/enakai/architecture-overview-kubernetes-with-red-hat-enterprise-linux-71 довольно полезно.

На ваших товарах (1) и (2): IMHO они хорошо описаны в https://github.com/kubernetes/kubernetes/blob/master/docs/admin/networking.md#docker-model. Из моего опыта: в чем проблема с подходом типа Docker NAT? Иногда вам нужно настроить, например. в программное обеспечение все конечные точки всех узлов (172.168.10.1:8080, 172.168.10.2:8080 и т. д.). в kubernetes вы можете просто настроить IP-адреса контейнеров в каждый другой pod, Docker усложняет его с помощью NAT-ссылки. См. Также Setting up the network for Kubernetes за хороший ответ.

Комментарии на других точках: 1.

Все IP-адреса в этой подсети должны быть «общественность», а не внутри какого-то традиционно-частного() диапазона классовой.

В «внутренней сети» кубернетов обычно используются частные IP-адреса, см. Также слайды выше, в которых используется пример 10.x.x.x. Я предполагаю, что путаница исходит из некоторых текстов кубернетов, которые ссылаются на «общедоступные» как «видимые вне узла», но они не означают «Internet Public IP Address Range».

+0

Спасибо @Stefan Vailant (+1), я ценю ссылки и объяснения. Тем не менее, я думаю, вы упустили основной фокус моего вопроса, который является ** смелым ** предложением выше, начиная «* Сколько VM нужно настроить для Kubernetes ... *». Основное внимание в вопросе (и щедрости!) Заключается в том, чтобы собрать ряд конкретных шагов для создания Kubernetes на vCenter. Есть предположения? – smeeb

+0

Hi smeeb, я согласен с вашим комментарием. Извините, никаких мыслей со своей стороны, я в основном хотел, чтобы обсуждение началось, так как ваш вопрос остался без ответа в течение 2 дней. –

0

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

Я нашел сценарий kube-up.sh, который устанавливает кластер Kubernetes качества производства на вашей учетной записи AWS. По существу он создает 1 экземпляр экземпляра ECU Kubernetes и 4 экземпляра minion.

На хозяине он устанавливает etcd, apiserver, диспетчер диспетчера и планировщик. На миньонах он устанавливает kubelet и kube-proxy. Он также создает группу автомасштабирования для миньонов (симпатичный) и создает для вас целую массу проблем, связанных с безопасностью и сетью, для AWS. Если вы запустите скрипт и не создадите ведро AWS S3, создайте ведро с тем же самым точным именем вручную, а затем запустите сценарий.

Когда сценарий будет закончен, вы будете работать и работать с кубернетами и готовыми к почти производственному использованию (я продолжаю говорить «рядом» и «производственно-иш», потому что я слишком новичок в Кубернете, чтобы узнать, что на самом деле составляет кластер с производственной арендой с реальной сделкой). Вам понадобится CLI AWS, установленный и настроенный с пользователем, который имеет полный доступ администратора к вашей учетной записи AWS (он продвигается вперед и создает роли IAM и т. Д.).

Мой план игры будет:

  1. Получить комфортно работать с Kubernetes на AWS
  2. Держите травят команду Kubernetes на Slack, чтобы помочь мне понять, как Kubernetes работает под капотом
  3. перепроектировать kube-up.sh сценарий, чтобы я мог получить Kubernetes, работающий по помещению (vCenter)
  4. Блог об этом процессе
  5. Обновить этот ответ с помощью ссылка на указанный блог.

Дайте мне время, и я последую за ним.

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