Что нового в Red Hat OpenShift 4.2 и 4.3?
Четвертая версия OpenShift вышла сравнительно недавно. Актуальная на текущий момент версия 4.3 доступна с конца января и все изменения в ней — это или нечто совершенно новое, чего в третьей версии не было, или крупное обновление того, что появилось в версии 4.1. Все, что мы сейчас расскажем, нужно знать, понимать и учитывать тем, кто работает с OpenShift и планирует переходить на новую версию.
С выпуском версии OpenShift 4.2 Red Hat упростила работу с Kubernetes. Появились новые инструменты и плагины для создания контейнеров, CI/CD-конвейеров и serverless-развертываний. Нововведения дают разработчикам возможность сосредоточиться на написании кода, а не на разбирательствах с Kubernetes.
Собственно, что нового в версиях OpenShift 4.2 и 4.3?
Движение в сторону гибридных облаков
При планировании новой ИТ-инфраструктуры либо при развитии существующего ИТ-ландшафта компании все чаще рассматривают облачный подход в предоставлении ИТ-ресурсов, для чего реализуют частные облачные решения, либо используют мощности публичных облачных провайдеров. Таким образом, современные ИТ-инфраструктуры все чаще строятся по «гибридной» облачной модели, когда применяются как on-premises ресурсы, так и публичные облачные ресурсы с общей системой управления. Red Hat OpenShift 4.2 специально разработан для упрощения перехода к модели гибридного облака и позволяет легко подключать к кластеру ресурсы таких провайдеров, как AWS, Azure и Google Cloud Platform наравне с использованием частных облаков на VMware и OpenStack.
Новый подход к инсталляции
В 4-й версии изменился подход к инсталляции OpenShift. Red Hat предоставляет специальную утилиту для развертывания кластера OpenShift — openshift-install. Утилита представляет собой единственный бинарный файл, написанный на Go. Openshit-installer подготавливает yaml-файл с конфигурацией, необходимой для развертывания.
В случае инсталляции с использованием облачных ресурсов потребуется указать минимальную информацию о будущем кластере: DNS-зону, количество worker-узлов, специфические настройки для облачного провайдера, данные учетной записи для доступа к облачному провайдеру. После подготовки файла конфигурации кластер может быть развернут одной командой.
В случае инсталляции на собственных вычислительных ресурсах, например, при использовании частного облака (поддерживаются vSphere и OpenStack) или при инсталляции на bare metal серверы, потребуется ручная настройка инфраструктуры — подготовить минимальное количество виртуальных машин или физических серверов, необходимое для создания Control Plane кластера, настроить сетевые службы. После такой настройки кластер OpenShift можно будет аналогично создать одной командой утилиты openshift-installer.
Обновления в инфраструктуре
Интеграция с CoreOS
Ключевое обновление — это интеграция с Red Hat CoreOS. Теперь master-ноды Red Hat OpenShift могут работать только на новой ОС. Это бесплатная операционная система от Red Hat, которая предназначена специально для контейнерных решений. Red Hat CoreOS представляет собой облегченный Linux, оптимизированный для запуска контейнеров.
Если в 3.11 операционная система и OpenShift существовали отдельно, то в 4.2 она неразрывно связана с OpenShift. Теперь это единый appliance — immutable infrastructure.
Для кластеров, которые используют RHCOS для всех узлов, обновление OpenShift Container Platform является простым и хорошо автоматизированным процессом.
Раньше, чтобы обновить OpenShift, необходимо было сначала обновить базовую операционную систему, на которой продукт был запущен (в то время это была Red Hat Enterprise Linux). Только после этого можно было обновлять OpenShift постепенно, узел за узлом. Ни о какой автоматизации процесса речи не шло.
Сейчас же, поскольку OpenShift Container Platform полностью контролирует системы и службы на каждом узле, включая ОС, эта задача решается нажатием кнопки из веб-интерфейса. После этого запускается специальный оператор внутри кластера OpenShift, управляющий всем процессом обновления.
Новый CSI
Второе — новый CSI — контроллер storage-интерфейса, который позволяет подключать различные внешние СХД к кластеру OpenShift. Поддерживается большое количество провайдеров storage-драйверов для OpenShift на базе storage-драйверов, которые пишут сами производители СХД. Полный список поддерживаемых CSI-драйверов можно найти в этом документе: https://kubernetes-csi.github.io/docs/drivers.html. В этом списке можно найти все основные модели дисковых массивов ведущих производителей (Dell/EMC, IBM, NetApp, Hitachi, HPE, PureStorage), SDS-решений (Ceph) и облачных хранилищ (AWS, Azure, Google). OpenShift 4.2 поддерживает работу с CSI-драйверами спецификации CSI версии 1.1.
RedHat OpenShift Service Mesh
Основанная на проектах Istio, Kiali и Jaeger — Red Hat OpenShift Service Mesh, помимо обычных задач маршрутизации запросов между службами позволяет выполнять их трассировку и визуализацию. Это помогает разработчиками упростить взаимодействие, наблюдение и управление приложением, развернутым внутри Red Hat OpenShift.
Визуализация приложения, имеющего микросервисную архитектуру с использованием Kiali
Чтобы максимально упростить процессы установки, сервиса и управления жизненным циклом Service Mesh, Red Hat OpenShift предоставляет администраторам специальный оператор — Service Mesh Operator. Это оператор Kubernetes, который позволяет развернуть на кластере переконфигурированные пакеты Istio, Kiali и Jaeger, максимально снимая административную нагрузку на управление приложениями.
CRI-O вместо Docker
Дефолтный контейнерный runtime Docker был заменен на CRI-O. Воспользоваться CRI-O можно было уже в версии 3.11, но в 4.2 он стал основным. Не хорошо и не плохо, но стоит иметь в виду при использовании продукта.
Операторы и деплой приложений
Операторы — новая сущность для RedHat OpenShift, которая появилась в четвертой версии. Это метод упаковки, развертывания и управления приложением Kubernetes. Его можно представить, как управляемый с помощью API Kubernetes и инструментов kubectl плагин для приложений, развернутых в контейнерах.
Операторы Kubernetes помогают автоматизировать любые задачи, связанные с администрированием и управлением жизненным циклом приложения, которое вы разворачиваете в своем кластере. Например, оператор может автоматизировать обновления, резервное копирование и масштабирование приложения, менять конфигурацию и т.д. Полный список операторов можно посмотреть на https://operatorhub.io/.
OperatorHub доступен прямо из веб-интерфейса консоли управления. Он представляет собой каталог приложений для OpenShift, поддерживаемый Red Hat. Т.е. все операторы, одобренные Red Hat, будут покрываться вендорской поддержкой.
Портал OperatorHub в консоли управление OpenShift
Universal base image
Это стандартизированный набор образов ОС RHEL, которые можно использовать для создания ваших приложений в контейнерах. Есть минимальный, стандартный и полный наборы. Они занимают совсем немного места, поддерживают все необходимые установленные пакеты и языки программирования.
Инструменты CI/CD
В RedHat OpenShif 4.2 появилась возможность выбрать между Jenkins и OpenShift Pipelines на базе Tekton Pipelines.
OpenShift Pipelines основан на Tekton, который лучше поддерживают подходы Pipeline as Code и GitOps. В конвейерах OpenShift каждый шаг выполняется в собственном контейнере, поэтому ресурсы используются только во время выполнения шага. Это дает разработчикам полный контроль над конвейерами доставки модулей, плагинами и контролем доступа без центрального сервера CI/CD для управления.
OpenShift Pipelines в настоящее время находится в стадии Preview для разработчиков и доступен в качестве оператора на кластере OpenShift 4. Разумеется, пользователи OpenShift по-прежнему могут использовать Jenkins в RedHat OpenShift 4.
Обновления в управлении для разработчиков
В 4.2 OpenShift полностью обновился веб-интерфейс как для разработчиков, так и для администраторов.
В предыдущих версиях OpenShift все работали в трех консолях: сервис-каталог, администратор-консоль и work-консоль. Сейчас кластер разделен только на две части — administrator console и developer console.
Developer console получила значительные улучшения пользовательского интерфейса. Теперь на ней удобнее отображаются топологии приложений и их сборок. Это облегчает разработчикам создание, развертывание и визуализацию контейнерных приложений и кластерных ресурсов. Позволяет сосредоточиться на том, что для них важно.
Портал разработчика в консоли управления OpenShift
Odo
Odo — ориентированная на разработчиков утилита командной строки, упрощающая разработку приложений в OpenShift. Используя взаимодействие в стиле git push, этот CLI помогает разработчикам, не знакомым с Kubernetes, создавать приложения в OpenShift.
Интеграция со средами разработки
Разработчики теперь могут создавать, отлаживать и развертывать свои приложения в OpenShift, не покидая свою любимую среду разработки кода, например, Microsoft Visual Studio, JetBrains (включая IntelliJ), Eclipse Desktop и т.д.
Red Hat OpenShift Deployment extension for Microsoft Azure DevOps
Появилось расширение Red Hat OpenShift Deployment для Microsoft Azure DevOps. Теперь пользователи этого набора DevOps-инструментов могут развертывать свои приложения в Azure Red Hat OpenShift или любом другом кластере OpenShift непосредственно из Microsoft Azure DevOps.
Переход с третьей версии на четвертую
Поскольку речь идет о новом релизе, а не об обновлении, то нельзя так просто взять и поставить четвертую версию поверх третьей. Обновление с третьей на четвертую версию поддерживаться не будет.
Но есть и хорошая новость: Red Hat предоставляет инструменты для переноса проектов из 3.7 в 4.2. Вы можете перенести рабочие нагрузки приложений с помощью инструмента Cluster Application Migration (CAM). CAM позволяет контролировать миграцию и минимизировать время простоя приложения.
OpenShift 4.3
Основные новшества, описанные в данной статье, появились в версии 4.2. В недавно выпущенной 4.3 изменения не такие значительные, но все же есть кое-что новое. Перечень изменений достаточно обширный, приведем наиболее значимые на наш взгляд:
Апдейт версии Kubernetes до 1.16.
Версия проапгрейдилась сразу на два шага, в OpenShift 4.2 была 1.14.
Шифрование данных в etcd
Начиная с версии 4.3, появилась возможность шифровать данные в базе etcd. После включения шифрования будет возможно шифрование следующих ресурсов OpenShift API и Kubernetes API: Secrets, ConfigMaps, Routes, токенов доступа и авторизации OAuth.
Helm
Добавлена поддержка Helm 3-й версии — популярного пакетного менеджера для Kubernetes. Пока поддержка имеет статус TECHNOLOGY PREVIEW. В будущих версиях OpenShift поддержка Helm будет расширена до полной. Утилита helm cli поставляется вместе с OpenShift и может быть загружена из Web-консоли управления кластером.
Обновление Project Dashboard
В новой версии Project Dashboard предоставляет дополнительную информацию на странице проекта: статус проекта, утилизацию ресурсов и квоты для проекта.
Отображение уязвимостей для quay в Web-консоли
В консоль управления добавлена функция отображения известных уязвимостей для образов в репозиториях Quay. Поддерживается отображение уязвимостей для локальных и внешних репозиториев.
Упрощено создание оффлайн operatorhub
Для случая развертывания кластера OpenShift в изолированной сети, доступ из которой в интернет ограничен или отсутствует, упрощено создание «зеркала» для реестра OperatorHub. Теперь это можно будет сделать всего тремя командами.
Авторы:
Виктор Пучков, Юрий Семенюков