Возможно, вас смутило выражение «ВМ на голом железе» в заголовке. Но это не опечатка: в этом посте мы расскажем о двух ключевых вещах, а основная тема, которую мы рассмотрим — это запуск виртуальных машин (ВМ) как контейнеров в среде Kubernetes. Поэтому в этой статье будет две основные цели:
Раскрыть преимущества запуска ВМ и контейнеров на единой платформе. Да, этой единой платформой является служба vSphere Kubernetes Service в VMware Cloud Foundation.
Объяснить, почему запуск ВМ и контейнеров на «голом железе» имеет реальные недостатки для предприятий, чтобы вы могли сделать собственные выводы. Мы приведем факты, которые вы сможете проверить независимо от каких-либо поставщиков.
Начнём с того, что разберёмся, что такое служба vSphere Kubernetes Service (далее — VKS) и что она предлагает.
Что такое VKS?
VKS — это промышленный Kubernetes-рантайм от VMware, сертифицированный и совместимый с CNCF (Cloud Native Computing Foundation). Он включён в состав VMware Cloud Foundation (то есть доплачивать за него не нужно), поддерживается и уже доступен.
Если вы сейчас используете Kubernetes у одного из крупных облачных провайдеров или раньше пробовали запускать Kubernetes на vSphere, VKS стоит вашего внимания. Он изначально разрабатывался с учётом потребностей крупных предприятий — включая более простой процесс установки, возможности самообслуживания и наличие всех привычных компонентов, которые ожидают пользователи Kubernetes.
Это даёт клиентам беспрецедентные возможности запускать промышленный Kubernetes у себя на площадке — в более удобной и масштабируемой форме.
Кроме того, для приверженцев философии FOSS (свободного и открытого ПО) есть над чем задуматься:
За последнее десятилетие VMware входила в тройку крупнейших участников по объёму вклада в исходный код Kubernetes.
Соответствие стандарту CNCF означает, что VMware придерживается открытых стандартов. Это важно, поскольку вы получаете гибкость и можете рассчитывать на определённый набор компонентов в платформе, не попадая в ловушку специфических для конкретного вендора решений и ограничений.
VKS развивался с тех пор, как VMware приобрела компанию Pivotal в 2019 году, так что это далеко не «версия 1.0».
Несколько слов о vSphere Supervisor
Чтобы начать использовать VKS, вам нужно установить vSphere Supervisor. Он предоставляет, помимо прочего, возможность использовать все преимущества VMware, а также предлагает компоненты, совместимые с Kubernetes.
Один из примеров: как только vSphere Supervisor будет запущен, вы создаёте пространство имен Kubernetes Namespace, которое будет сопоставлено с пулом ресурсов vSphere. Внутри кластера Kubernetes Namespace будет вести себя так, как и положено, но при этом его ресурсами можно также управлять через интерфейс vSphere для пулов ресурсов.
Другой пример: управляющие и рабочие узлы Kubernetes в буквальном смысле являются виртуальными машинами (ВМ). Это важно для следующего момента, который будет раскрыт далее.
Обратите внимание: «традиционные» виртуальные машины продолжают работать бок о бок с вашими кластерами Kubernetes. Именно такую возможность даёт VKS в составе VMware Cloud Foundation (VCF).
Если вы запомните только одну вещь из этого поста, пусть это будет следующее:
Вашим текущим инженерам VMware не нужно обладать специальными знаниями о Kubernetes, чтобы управлять как виртуальными машинами, так и потребляемыми компонентами Kubernetes или самими кластерами. Инженеры платформ или разработчики могут получать доступ через инструменты самообслуживания, а инженеры по виртуализации продолжают управлять инфраструктурой так же, как и раньше.
Развенчиваем миф о запуске ВМ и контейнеров на «голом железе»
Интересный факт: когда вы разворачиваете кластер Kubernetes у гиперскейлера (большой публичный облачный провайдер), этот кластер на самом деле работает на наборе виртуальных машин под управлением гипервизора. Это справедливо для всех гиперскейлеров на момент написания статьи. Контейнеры, в итоге, не работают напрямую на голом железе — такого просто не существует. VMware подчеркивает это, потому что они видели, как и C-level руководители, и разработчики, и даже инженеры платформ (которые вроде бы должны это знать) были поражены этим фактом.
Более того, не упомянуть ещё один момент было бы упущением: когда вы создаёте виртуальную машину у гиперскейлера, она тоже работает на гипервизоре. То, что вы его не видите — не значит, что его нет.
В результате организации начинают задумываться о:
запуске контейнеров напрямую на голом железе;
запуске традиционных ВМ в виде контейнеров на голом железе.
Начнём с первого: запуск контейнеров на голом железе мог бы быть темой горячих споров… если бы сейчас был 2017 год. Эта дискуссия в индустрии уже была, и виртуализированная платформа с Kubernetes одержала убедительную победу.
Почему? В числе причин: более простое управление, масштабируемость, гибкость, меньшая стоимость и практически полное отсутствие потерь в производительности. Не сказать, что у контейнеров на железе совсем нет применения, но для 98% организаций запуск контейнеров на гипервизоре оказался более выгодным решением.
Простой пример: вспомните, какие возможности даёт вам архитектура отказоустойчивости vSphere HA — ваши контейнеры в виде ВМ отлично вписываются в эту архитектуру уже на этом одном примере.
Или другими словами: запуск контейнеров рядом с ВМ на VMware обходится дешевле, при этом вы сохраняете тот же уровень отказоустойчивости, надёжности и высокой производительности, к которому вы привыкли для технологий VMware.
А как насчёт запуска ВМ как контейнеров? Во-первых, у VMware есть доказательства того, что их платформа обеспечивает лучшую производительность и масштабируемость. Например, при создании ВМ через VM Service, инженеру не нужно разбираться в деталях и компонентах Kubernetes. Обычно это лучшее решение, потому что командам не нужно проходить дорогостоящее переобучение или нанимать более дорогих специалистов, чтобы запускать ВМ внутри кластера Kubernetes.
Когда вы увидите, насколько просто получить низкую совокупную стоимость владения (TCO) с промышленной виртуализацией, которую легко внедрить (и снова напомним про vSphere HA, которая настраивается буквально двумя кликами), становится очевидно: запуск VKS в составе VCF — разумное и эффективное решение.