Gatekeepers con Red Hat OpenShift o Kubernetes ascendentes
Zusammenfassung: En este artículo de la base de conocimientos, se explica cómo utilizar el repositorio de Red Hat GitHub kubevirt-rawio-addon para presentar PowerMax Gatekeepers a un entorno Red Hat OpenShift o Upstream Kubernetes. ...
Weisungen
PowerMax Gatekeepers
Los gatekeepers de PowerMax son dispositivos pequeños (por lo general, tres MB) extraídos de discos en PowerMax que actúan como destinos SCSI para comandos de Solutions Enabler. La información de configuración y estado se mantiene en un archivo de base de datos del host de PowerMax symapi_db.bin de manera predeterminada. Se conoce como la base de datos de configuración de PowerMax. Reduce la cantidad de consultas desde el host hasta los arreglos de almacenamiento. Los gatekeepers deben ser dispositivos crudos, de modo que el sistema operativo simplemente pase los comandos de SCSI sin manipulación. Si bien los hosts físicos siempre funcionan con gatekeepers (con un sistema operativo compatible), los hosts virtuales se limitan a VMware mediante mapeos de dispositivos crudos físicos (RDM), iSCSI en el huésped en Windows o Linux, NVMe/TCP en el huésped en Linux o dispositivos de paso (NIC o HBA). Sin embargo, solo VMware puede presentar un verdadero dispositivo crudo que se reconozca como un gatekeeper viable. Otras soluciones de virtualización permiten que el usuario presente los dispositivos como "crudos", pero sus soluciones bloquean algunos comandos SCSI, lo que impide su uso como gatekeepers. Solutions Enabler los etiqueta como gatekeepers, pero informa un error como el que se muestra a continuación.

Además, si examina los gatekeepers, muestran un estado de "CLS" o cerrado.

Por lo tanto, no puede pasar los comandos de SCSI necesarios.
Para aprovechar esta solución, debe usar un protocolo que Solutions Enabler admita en el sistema operativo elegido. Consulte la documentación del producto.
Solución Red Hat GitHub
Dell solicitó la ayuda de Red Hat con el desarrollo de una solución alternativa para gatekeepers en un entorno OpenShift para algunos de nuestros clientes mutuos. Con ese fin, crearon una solución que funciona tanto para OpenShift como para Kubernetes ascendente con ligeras variaciones en la implementación. El repositorio de GitHub se llama kubevirt-rawio-addon como se encuentra aquí: https://github.com/openshift-cnv/kubevirt-rawio-addon El GitHub incluye un https://github.com/openshift-cnv/kubevirt-rawio-addon/blob/main/README.md léame.
El complemento instala varios componentes:
- Mutación de webhooks para modificar objetos sobre la marcha
- Validando webhook: una comprobación de seguridad específica de OpenShift
- Configuración de seguridad para permitir funcionalidades privilegiadas
- Gancho de sidecar
El sidecar es un pequeño contenedor adicional que se ejecuta junto con el pod de VM y modifica la configuración de bajo nivel de la VM antes de que se inicie. Intercepta la configuración de la máquina virtual generada por KubeVirt, encuentra los discos anotados y establece rawio=yes. A continuación, KubeVirt recupera el XML. La arquitectura subyacente de libvirt/QEMU admite esto, pero no lo expone, por lo que se requiere este ajuste menor. Es posible que KubeVirt exponga esto en el futuro, momento en el que la solución alternativa será innecesaria.
Implementación en OpenShift
El repositorio contiene todas las instrucciones para implementar esta solución. Dado que Red Hat es el propietario de la solución, Dell recomienda seguir las instrucciones actuales, que están sujetas a cambios en el futuro. Dell no actualizará la base de conocimientos para reflejar esos cambios. Como cortesía, proporcionamos la información básica a continuación, pero recomendamos a los usuarios de esta base de conocimientos que la utilicen junto con el repositorio.
Como se indicó, puede implementar esto en OpenShift o en Kubernetes ascendente. Como son los pasos para OpenShift, hay un par de elementos que se deben tener en cuenta si realiza Kubernetes ascendentes.
- Si implementa en K8s estándar, debe tener instalado cert-manager. Si el controlador de CSI de PowerMax está instalado, entonces esto está presente.
- Si implementa en vanilla K8s, necesita un espacio de nombres con privilegios. Puede usar el espacio de nombres en los scripts o crear uno propio y, a continuación, modificar los scripts.
Los dos scripts que necesita para la implementación están en la carpeta de hacks . El rawio-setup.sh es el primer script y es el mismo para cualquiera de las plataformas, pero tenga en cuenta que depende del espacio de nombres openshift-cnv que solo está presente en OpenShift. Agregue el espacio de nombres o cree uno nuevo y modifique el script para K8s. El script de creación de VM es exclusivo de la plataforma, pero nuevamente utiliza el espacio de nombres openshift-cnnv. Para OpenShift, es rawio-create-vm-openshift.sh. Los scripts están diseñados para crear un entorno de prueba y necesitarán modificaciones para una configuración de producción. En particular, el script de rawio-setup.sh crea un dispositivo SCSI virtual. En su lugar, modifique el script para usar la clase de almacenamiento de PowerMax. Además, el script supone un nodo único para programar la VM. Modifíquelo para permitir que se ejecute en cualquier nodo trabajador. El script utiliza un sistema operativo Fedora pre-construido.
Los scripts de muestra se encuentran en Supplemental Content.
Pasos básicos
- Clone el repositorio: git clonehttps://github.com/openshift-cnv/kubevirt-rawio-addon.git
- Instale el manifiesto: oc apply -fhttps://github.com/openshift-cnv/kubevirt-rawio-addon/releases/download/v0.1.0/rawio-addon-openshift.yaml
- Instale el sidecar: oc annotate –overwrite -n openshift-cnv hco kubevirt-hyperconverged kubevirt.kubevirt.io/jsonpatch='[{"op": "add", "ruta": "/spec/configuration/developerConfiguration/featureGates/-", "value": "Sidecar"}]'
- Ejecute la configuración: rawio-setup.sh
- Cree la VM: rawio-create-vm-openshift.sh
- Instale su sistema operativo (suponiendo que no esté usando uno prediseñado)
Tenga en cuenta que la CSI de PowerMax no puede crear un dispositivo de menos de 50 MB, incluso si solicita un gatekeeper tradicional de 3 MB. No causa ningún problema.


Otras soluciones de virtualización
Ninguna de las siguientes soluciones funciona con este repositorio de Red Hat.
- Soluciones basadas en K8s, como SUSE Harvester : SUSE debe desarrollar su propia solución
- Soluciones KVM como Proxmox u Oracle KVM (oVirt): no están basadas en KubeVirt y no se pueden utilizar
Weitere Informationen
rawio-setup.sh
*******************************************
rawio-create-vm-openshift.sh