Воротарі з Red Hat OpenShift або Upstream Kubernetes
Zusammenfassung: У цій базі пояснюється, як використовувати репозиторій Red Hat GitHub kubevirt-rawio-addon для презентації PowerMax Gatekeepers у середовищі Red Hat OpenShift або Upstream Kubernetes.
Weisungen
Воротарі PowerMax
PowerMax Gatekeeper — це невеликі пристрої (зазвичай три МБ), вирізані з дисків у PowerMax, які виконують роль SCSI-цілей для команд Solutions Enabler. Інформація про конфігурацію та статус зберігається у файлі бази даних PowerMax, symapi_db.bin за замовчуванням. Вона відома як база даних конфігурацій PowerMax. Це зменшує кількість запитів від хоста до масивів зберігання. Гейткіпери мають бути сирими пристроями, щоб ОС просто передавала SCSI-команди без маніпуляцій. Хоча фізичні хости завжди працюють із Gatekeeper (з підтримуваною ОС), віртуальні хости обмежені VMware з використанням фізичних сирих відображень пристроїв (RDM), in-Guest iSCSI на Windows або Linux, in-Guest NVMe/TCP у Linux або passthrough пристроями (NIC або HBA). Однак лише VMware може надати справжній сирий пристрій, який визнається життєздатним Gatekeeper. Інші рішення для віртуалізації дозволяють користувачу представляти пристрої як «сирі», але їхні рішення блокують деякі SCSI-команди, що не дозволяє їх використовувати як Gatekeeper. Solutions Enabler позначає їх як Gatekeepers, але повідомляє про помилку, як зазначено нижче.

Крім того, якщо подивитися на Gatekeepers, вони показують стан «CLS» або закритий.

Тому ви не можете передати необхідні SCSI-команди.
Щоб скористатися цим рішенням, потрібно використовувати протокол, який підтримує Solutions Enabler на обраній операційній системі. Будь ласка, ознайомтеся з документацією продукту.
Рішення Red Hat на GitHub
Dell звернулася до Red Hat з проханням допомогти розробити обхідний шлях для Gatekeepers у OpenShift-середовищі для деяких наших спільних клієнтів. З цією метою вони створили рішення, яке працює як для OpenShift, так і для Upstream Kubernetes з невеликими відмінностями у реалізації. Репозиторій GitHub називається kubevirt-rawio-addon, оскільки розташований тут: https://github.com/openshift-cnv/kubevirt-rawio-addon GitHub містить readme https://github.com/openshift-cnv/kubevirt-rawio-addon/blob/main/README.md.
Додаток встановлює кілька компонентів:
- Мутація вебхуків для модифікації об'єктів на льоту
- Валідація вебхука — спеціалізована для OpenShift перевірка безпеки
- конфігурація безпеки для забезпечення привілейованих можливостей
- Гачок для сайдкару
Сайдкар — це невеликий додатковий контейнер, який працює поруч із VM pod і змінює низькорівневу конфігурацію VM перед запуском. Він перехоплює конфігурацію віртуальної машини, створену KubeVirt, знаходить анотовані диски та встановлює rawio=yes. KubeVirt потім повертає XML. Архітектура libvirt/QEMU підтримує це, але не відкриває, тому потрібна ця незначна корекція. Можливо, KubeVirt викриє це в майбутньому, і тоді обхідний шлях стане зайвим.
Реалізація на OpenShift
Репозиторій містить усі інструкції для реалізації цього рішення. Оскільки рішення належить Red Hat, Dell рекомендує дотримуватися чинних інструкцій, які можуть змінюватися в майбутньому. Dell не оновлює базу знань з урахуванням цих змін. З люб'язності ми надаємо базову інформацію нижче, але заохочуємо користувачів цієї бази знань використовувати її разом із репозиторієм.
Як зазначалося, це можна реалізувати на OpenShift або Upstream Kubernetes. Як кроки для OpenShift, є кілька важливих моментів, якщо ви обираєте Upstream Kubernetes.
- Якщо ви впроваджуєте це на стандартних K8s, у вас має бути встановлений cert-manager. Якщо встановлено драйвер PowerMax CSI, то він присутній.
- Якщо ви реалізуєте на ванільних K8, вам потрібен привілейований простір імен. Ви можете використовувати простір імен у скриптах або створити власний, а потім змінити скрипти.
Два скрипти, які потрібні для реалізації, знаходяться у папці hack . rawio-setup.sh — це перший скрипт, і він однаковий для обох платформ, але майте на увазі, що він базується на просторі назв openshift-cnv, який присутній лише на OpenShift. Додайте простір імен або створіть новий і змініть скрипт для K8s. Скрипт створення віртуальної машини унікальний для платформи, але знову ж таки використовує простір імен openshift-cnv. Для OpenShift це rawio-create-vm-openshift.sh. Скрипти розроблені для створення тестового середовища і потребуватимуть модифікації для виробництва. Зокрема, скрипт rawio-setup.sh створює віртуальний SCSI-пристрій. Натомість модифікуйте скрипт, щоб використовувати ваш клас зберігання PowerMax. Крім того, скрипт передбачає наявність одного вузла для планування віртуальної машини. Модифікуйте його, щоб він працював на будь-якому робочому вузлі. Скрипт використовує попередню ОС Fedora.
Зразки сценаріїв містяться у додатковому контенті.
Основні кроки
- Клонуйте репозиторій: git clonehttps://github.com/openshift-cnv/kubevirt-rawio-addon.git
- Встановіть маніфест: oc apply -fhttps://github.com/openshift-cnv/kubevirt-rawio-addon/releases/download/v0.1.0/rawio-addon-openshift.yaml
- Встановити sidecar: oc annotate –overwrite -n openshift-cnv hco kubevirt-hyperconverged kubevirt.kubevirt.io/jsonpatch='[{"op": «додати», «шлях»: "/spec/configuration/developerConfiguration/featureGates/-", "value": "Sidecar"}]'
- Запусти налаштування: rawio-setup.sh
- Створити віртуальну машину: rawio-create-vm-openshift.sh
- Встановіть свою ОС (якщо ви не використовуєте готову)
Майте на увазі, що PowerMax CSI не може створити пристрій менше 50 МБ, навіть якщо ви просите традиційний Gatekeeper на 3 МБ. Це не створює проблем.


Інші рішення для віртуалізації
Жодне з наведених нижче рішень не працює з цим репозиторієм Red Hat.
- Рішення на базі K8s, такі як SUSE Harvester - SUSE повинні розробити власне рішення
- KVM-рішення, такі як Proxmox або Oracle KVM (oVirt) — вони не базуються на KubeVirt і не використовуються
Weitere Informationen
rawio-setup.sh
*******************************************
rawio-create-vm-openshift.sh