Что Kubernetes на самом деле делать? [закрытый]


Kubernetes выставляется как контейнерный кластер "планировщик / оркестратор", но я понятия не имею, что это значит. После прочтения сайта Kubernetes и (неопределенного) GitHub wiki, лучшее, что я могу сказать, это то, что он каким-то образом выясняет, какие виртуальные машины доступны/способны запускать ваш контейнер Docker, а затем развертывает их там. Но это только мое предположение, и я не видел никаких конкретных слов в их документации, чтобы поддержать это.

так что же такое Kubernetes, ровно, а какие конкретные проблемы, которые он решает?

3 91

3 ответа:

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

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

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

Как Вы читаете из его страница Github:

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

Kubernetes является:

lean: lightweight, simple, accessible
portable: public, private, hybrid, multi cloud
extensible: modular, pluggable, hookable, composable
self-healing: auto-placement, auto-restart, auto-replication

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

для меня Kubernetes-это инструмент оркестровки контейнеров от Google. Благодаря своей конструкции вы можете реализовать совместимость с любым контейнерным движком, но я думаю, что теперь он ограничен Docker. В его архитектуре есть несколько важных понятий:

Kubernetes работает со следующими понятиями:

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

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

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

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

метки используются для организации и выбора групп объектов на основе пары ключ-значение. Подробнее о этикетках.

Итак, у вас есть группа машин, которая образует кластер, в котором выполняются контейнеры. Yo также может определить группу контейнеров, которые предоставляют услугу, аналогично тому, как вы делаете с другими инструментами, такими как fig (т. е.: webapp pod может быть сервером rails и базой данных postgres). У вас также есть другие инструменты для обеспечения нескольких контейнеров/модулей службы, работающих одновременно, хранилища ключей и значений, своего рода встроенного балансировщика нагрузки...

Если вы знаете что-то о coreos, это очень похожее решение, но от Google. Kubernetes алго имеет хорошая интеграция с Google Cloud Engine.

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

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

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

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/#why-do-i-need-kubernetes-and-what-can-it-do