0

Я хотел бы развернуть кубернете на большом физическом сервере (24 ядра), и я не уверен в некоторых вещах.Чтобы виртуализировать или не виртуализировать голый металлический сервер для развертывания кубернетов

Каковы преимущества и недостатки создания виртуальных машин для кластера k8s, отличных от бега на голом.

У меня есть следующие соображения:

  • Создание VMS позволит для изоляции рабочей нагрузки. Новые vms для экспериментов могут быть созданы и назначены разработчикам.
  • С другой стороны, с k8s, работающим на голом металле, для каждого разработчика может быть создан новый NAMESPACE, и они могут запускать свой код в нем. Ведь их код должен работать в контейнерах докеров.

Безопасность:

  • Имея VMS бы ограничить количество доступа данного будущим сопровождающим, ограничивая количество повреждений, которые можно было бы сделать. В то время как, с другой стороны, основной задачей для любых будущих сопровождающих было бы добавлять/удалять узлы, и для этого требовался бы доступ к голосовой информации.

Аутентификация:

  • На данный момент дэвов бы коснуться только сервер, когда их код проходит через трубопровод CI и их развертывание погонных развернуты. Но как насчет просмотра журналов? Можем ли мы установить многоуровневую аутентификацию kubectl, чтобы позволить разработчикам получать доступ только к тем, кому им присвоены пространства имен (я считаю, что это должно быть возможно с помощью плагина авторизации пространства имен k8s).

Число vms уже существует на сервере. Будет ли это проблемой?

ответ

1

128 ядер и сомнений .... Это много ядер для одного сервера.

Для кубернетов, однако это не имеет значения: Kubernetes может использовать серверы разных размеров и максимально использовать их. Однако, если вы объедините процессы главного сервера и процессы узла/рабочего на одном сервере, вы можете создать нежелательные проблемы с ресурсами. Вы можете управлять ими с пространствами имен, как вы уже упоминаете.

Мы используем непрерывную интеграцию с пространствами имен в одной среде dev/qa kubernetes, в которой изменения имеют собственное пространство имен (таким образом, мы запускаем множество пространств имен) и запускаем полное развертывание среды в этих пространствах имен. Для управления этим используется сценарий оболочки. Это работает как с большим сервером, так и с небольшими (или виртуальными) ящиками. Преимущество виртуализации для вас в основном состоит в том, чтобы разделить большой ящик на более мелкие, чтобы вы могли использовать его для других целей, а затем просто кубернете (да, kubernetes работает, кроме MS Windows, нет рабочих столов, нет модулей ядра для целей VPN и т. Д.).

+0

Коррекция 24 ядра 128 гб RAM: – Jonathan

1

Я бы разделил dev и prod в виде различных vms. У меня когда-то был webapp внутри докера, который использовал слишком много потоков, поэтому демон docker на хосте разбился. К счастью, он был ограничен одним хозяином. Вы можете защитить это, установив лимиты, но это риск: одна ошибка в dev может привести к снижению производительности.

0

Я думаю, что ответ «это зависит!». что на самом деле не является ответом. Лично я разделил бы машину с помощью виртуальных машин и развернул ее. У вас есть большая гибкость в отношении того, сколько ресурсов сервера вы вырезаете, и вы можете легко создавать новые среды, а затем легко уничтожать.

Даже если эти vms действительно большие, я думаю, что управлять ими еще проще, учитывая, что у вас есть существующие vm на машине.

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

Я бы посмотрел на ваши потребности в окружающей среде для HA и время безотказной работы, а также то, как вы собираетесь развертывать VM (если вы идете по этому маршруту) и решаете, что для вас лучше всего подходит.

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