В VMware Cloud Foundation (VCF) 9.0 был представлен ряд новых и интересных функций и возможностей, которые помогают клиентам создавать гибкое, производительное и безопасное самообслуживаемое частное облако. В рамках стратегии частного облака крайне важно обеспечить способ потребления базовых инфраструктурных сервисов и быструю доставку приложений при одновременном управлении политиками и контролем.
В VCF доступно множество облачных сервисов, таких как сервисы виртуальных машин и кластеров Kubernetes, а также сервисы для управления базами данных, конвейеров непрерывной доставки, сервисной сетки, реестра образов и многое другое.
Ниже представлен обзор некоторых основных сервисов, таких как сервисы виртуальных машин и Kubernetes, а также применение к ним политик ресурсов IaaS. Политики ресурсов помогают обеспечивать соответствие конфигураций, например размеров кластеров. Настройки безопасности, такие как применение базового уровня безопасности подов или запрет на развертывание определённых ресурсов, — лишь несколько таких примеров использования политик ресурсов.
Выбор моделей потребления
С VCF администраторы организаций могут выбирать, как изолировать пользователей и ресурсы, используя такие конструкции, как организации (тенанты), проекты, пространства имён и т. д. Потребители, такие как разработчики и команды приложений, также могут выбирать способ потребления. На графике ниже показаны два основных метода: каталог самообслуживания и UI/CLI.
Единая платформа для создания и управления приложениями
VMware Cloud Foundation — это единая платформа для создания и управления приложениями и сервисами для всей организации (тенантов). ИТ-команды могут запускать и управлять разнообразными рабочими нагрузками, включая AI/ML и облачные нативные приложения. Команды могут использовать современный интерфейс (UI + код) для упрощения развертывания таких сервисов, как базы данных и виртуальные машины. Сервисы каталога предоставляют способ формировать набор приложений, которые пользователи могут запрашивать.
Администраторы могут расширять набор сервисов VCF дополнительными службами, которые могут понадобиться пользователям для их рабочих нагрузок. vSphere Supervisor создаёт управляющую точку Kubernetes на гипервизоре, что позволяет развертывать виртуальные машины и кластеры на базе Kubernetes, а также другие сервисы. Типы сервисов варьируются в зависимости от реестра образов, сервисов резервного копирования, сервисов баз данных, кластеров Kubernetes и многого другого!
Далее мы обсудим два следующих сервиса в контексте применения политик.
vSphere Kubernetes Service: позволяет пользователям легко использовать стандартизированные, соответствующие требованиям кластеры Kubernetes, обеспечивая единообразие во всех контейнеризированных средах.
VM Service: даёт пользователям возможность самостоятельно создавать виртуальные машины без необходимости прямого доступа к vSphere Client, упрощая создание ВМ наряду с рабочими процессами Kubernetes.
Развёртывание ВМ и кластеров VKS
Начнём с VM Service, который предоставляет современный метод потребления виртуальных машин. Используя декларативные манифесты Kubernetes YAML, пользователи могут развертывать и управлять виртуальными машинами вместе с кластерами Kubernetes. Команды разработчиков приложений, например, могут захотеть запускать виртуальные машины рядом с подами Kubernetes. Это также обеспечивает единообразный способ предоставления ресурсов для команд приложений во всём парке VCF.
Виртуальная машина разворачивается с помощью vmoperator, который представляет собой определение CRD: VM Operator. Например, для развертывания виртуальной машины может использоваться такой манифест Kubernetes:
Приведённый выше манифест Kubernetes может быть создан с нуля и, например, использован в качестве шаблона, либо пользователи могут создать его с помощью интуитивно понятного интерфейса Services UI, который также развернёт для них виртуальную машину. YAML-файл для развертывания ВМ затем можно редактировать через UI или CLI.
При использовании Services UI для развертывания кластеров VKS доступны два типа конфигурации: Default Configuration, которая автоматически заполняет ряд параметров, и Custom Configuration, позволяющая выполнить более детальную настройку. В приведённом ниже примере была выбрана Default Configuration.
Потребление и развертывание через каталог
Ранее мы упоминали, что пользователи должны иметь выбор в том, как они хотят использовать инфраструктуру и развертывать приложения. До этого мы рассмотрели метод с использованием UI, где пользователь может через интуитивно понятную форму создавать виртуальные машины, кластеры VKS и вспомогательные объекты, такие как балансировщики нагрузки.
В этом разделе мы рассмотрим возможность предоставления подготовленных приложений через каталог. Элементы, находящиеся в каталоге, обычно используются для двух целей:
Потребление базовых IaaS-компонентов и развертывание приложений и сервисов
Запуск ad-hoc рабочих процессов и скриптов для XaaS
Далее мы сосредоточимся на первом случае. При создании элементов каталога мы можем сначала подготовить шаблоны (blueprints). VCF 9.0 предлагает простой в использовании сервис каталога. После завершения подготовки шаблона его можно опубликовать в каталог.
Теперь, когда элемент каталога для нашего приложения доступен пользователям, администраторы организации могут захотеть применить политики к развертываниям сервисов.
Тип политики для ресурсов Kubernetes
В VCF Automation 9.0 был представлен новый тип политики ресурсов: IaaS Resource Policy. Этот тип политики обеспечивает подход policy-as-code, используя Kubernetes Validation Admission Control Policy с языком CEL.
Нажав на политику ресурсов IaaS, администраторы могут настроить политики, которые будут применяться к развертываемым объектам Kubernetes, таким как виртуальные машины VM Service и кластеры Kubernetes. В примере ниже показана политика, которая ограничивает максимум одним узлом управления/рабочим узлом в кластере Kubernetes. Существует ряд готовых шаблонов, и это один из них.
Когда пользователь пытается развернуть кластер VKS с тремя управляющими узлами, при развертывании возникает ошибка, указывающая на нарушение политики.
Политика управления доступом предотвратила развертывание из-за того, что пользователь запросил больше одного управляющего узла. Это лишь один из примеров использования нового механизма policy-as-code для ресурсов Kubernetes.
Применение и настройка политик с VCF стали намного проще. Администраторы могут предоставлять конечным пользователям гибкость и скорость в потреблении инфраструктуры без ущерба для безопасности, соответствия требованиям и организационных политик.