Poortwachters met Red Hat OpenShift of upstream Kubernetes
Zusammenfassung: In dit KB-artikel wordt uitgelegd hoe u de Red Hat GitHub kubevirt-rawio-addon repository kunt gebruiken om PowerMax Gatekeepers te presenteren aan een Red Hat OpenShift- of upstream Kubernetes-omgeving. ...
Weisungen
PowerMax Gatekeepers
PowerMax Gatekeepers zijn kleine apparaten (meestal drie MB's) die zijn gemaakt van schijven in de PowerMax en die fungeren als SCSI-doelen voor Solutions Enabler-opdrachten. Configuratie- en statusinformatie wordt standaard bijgehouden in een PowerMax-hostdatabasebestand, symapi_db.bin. Dit staat bekend als de PowerMax-configuratiedatabase. Het vermindert het aantal vragen van de host naar de storage-arrays. Poortwachters moeten onbewerkte apparaten zijn, zodat het besturingssysteem de SCSI-commando's gewoon doorgeeft zonder manipulatie. Hoewel fysieke hosts altijd werken met Gatekeepers (met een ondersteund besturingssysteem), zijn virtuele hosts beperkt tot VMware met behulp van fysieke onbewerkte apparaattoewijzingen (RDM's), iSCSI voor gasten op Windows of Linux, NVMe/TCP voor gasten op Linux of passthrough-apparaten (NIC of HBA). Alleen VMware kan echter een echt onbewerkt apparaat presenteren dat wordt erkend als een levensvatbare Gatekeeper. Met andere virtualisatieoplossingen kan de gebruiker apparaten als 'onbewerkt' presenteren, maar hun oplossingen blokkeren sommige SCSI-opdrachten, waardoor ze niet als poortwachters kunnen worden gebruikt. Solutions Enabler labelt ze als poortwachters, maar rapporteert een fout zoals hieronder.

Bovendien, als je de poortwachters onderzoekt, tonen ze een status van "CLS" of gesloten.

Daarom kunt u de benodigde SCSI-commando's niet doorgeven.
Om van deze oplossing te profiteren, moet u een protocol gebruiken dat Solutions Enabler ondersteunt op het gekozen besturingssysteem. Raadpleeg de productdocumentatie.
Red Hat GitHub-oplossing
Dell heeft Red Hat om hulp gevraagd bij het ontwikkelen van een tijdelijke oplossing voor poortwachters in een OpenShift-omgeving voor een aantal van onze gemeenschappelijke klanten. Daartoe creëerden ze een oplossing die werkt voor zowel OpenShift als Upstream Kubernetes met kleine variaties in implementatie. De GitHub-repository heet kubevirt-rawio-addon en bevindt zich hier: https://github.com/openshift-cnv/kubevirt-rawio-addon De GitHub bevat een leesmij-https://github.com/openshift-cnv/kubevirt-rawio-addon/blob/main/README.md.
De add-on installeert verschillende componenten:
- Webhooks muteren om objecten direct te wijzigen
- Webhook valideren - een OpenShift-specifieke veiligheidscontrole
- Beveiligingsconfiguratie om geprivilegieerde mogelijkheden toe te staan
- Zijspanhaak
De sidecar is een kleine extra container die naast de VM-pod wordt uitgevoerd en de configuratie op laag niveau van de VM wijzigt voordat deze wordt gestart. Het onderschept de door KubeVirt gegenereerde VM-configuratie, vindt de geannoteerde schijven en stelt rawio=yes in. KubeVirt krijgt dan de XML terug. De libvirt/QEMU onderliggende architectuur ondersteunt dit, maar stelt het niet bloot, dus deze kleine aanpassing is vereist. Het is mogelijk dat KubeVirt dit in de toekomst aan het licht brengt, waarna de tijdelijke oplossing overbodig zal zijn.
Implementatie op OpenShift
De repository bevat alle instructies voor het implementeren van deze oplossing. Omdat Red Hat eigenaar is van de oplossing, raadt Dell aan de huidige instructies te volgen, die in de toekomst kunnen veranderen. Dell werkt de KB niet bij om deze wijzigingen weer te geven. Uit beleefdheid geven we de basisinformatie hieronder, maar moedigen gebruikers van deze KB aan om deze naast de repository te gebruiken.
Zoals opgemerkt, kunt u dit implementeren op OpenShift of Upstream Kubernetes. Aangezien de stappen voor OpenShift zijn, zijn er een paar punten die u kunt opmerken als u upstream Kubernetes gebruikt.
- Als u implementeert op vanilla K8s, moet u cert-manager hebben geïnstalleerd. Als de PowerMax CSI-driver is geïnstalleerd, is deze aanwezig.
- Als je implementeert op vanilla K8s, heb je een geprivilegieerde naamruimte nodig. U kunt de naamruimte in de scripts gebruiken of uw eigen naamruimte maken en vervolgens de scripts wijzigen.
De twee scripts die je nodig hebt voor de implementatie staan in de hackmap . Het rawio-setup.sh is het eerste script en is hetzelfde voor beide platforms, maar houd er rekening mee dat het afhankelijk is van de openshift-cnv-naamruimte die alleen aanwezig is op OpenShift. Voeg de namespace toe of maak een nieuwe en wijzig het script voor K8s. Het script voor het maken van de VM is uniek voor het platform, maar gebruikt opnieuw de openshift-cnv-namespace. Voor OpenShift is dit rawio-create-vm-openshift.sh. De scripts zijn ontworpen om een testomgeving te creëren en moeten worden aangepast voor een productie-installatie. Met name het rawio-setup.sh-script maakt een virtueel SCSI-apparaat. Pas in plaats daarvan het script aan om uw PowerMax-storageklasse te gebruiken. Bovendien gaat het script uit van één knooppunt voor het plannen van de VM. Wijzig het zodat het op elk werkknooppunt kan worden uitgevoerd. Het script maakt gebruik van een pre-buit Fedora OS.
Voorbeeldscripts zijn opgenomen in Supplemental Content.
Basisstappen
- Kloon de repository: git clonehttps://github.com/openshift-cnv/kubevirt-rawio-addon.git
- Installeer het manifest: oc apply -fhttps://github.com/openshift-cnv/kubevirt-rawio-addon/releases/download/v0.1.0/rawio-addon-openshift.yaml
- Installeer de sidecar: oc annotate –overwrite -n openshift-cnv hco kubevirt-hyperconverged kubevirt.kubevirt.io/jsonpatch='[{"op": "add", "path": "/spec/configuration/developerConfiguration/featureGates/-", "value": "Zijspan"}]'
- Voer de installatie uit: rawio-setup.sh
- Maak de VM: rawio-create-vm-openshift.sh
- Installeer uw besturingssysteem (ervan uitgaande dat u geen vooraf geïnstalleerd besturingssysteem gebruikt)
Houd er rekening mee dat de PowerMax CSI geen apparaat kan maken dat kleiner is dan 50 MB, zelfs niet als u om een traditionele poortwachter van 3 MB vraagt. Het veroorzaakt geen probleem.


Andere virtualisatieoplossingen
Geen van de onderstaande oplossingen werkt met deze Red Hat-repository.
- Op K8s gebaseerde oplossingen zoals SUSE Harvester - SUSE moeten hun eigen oplossing ontwikkelen
- KVM-oplossingen zoals Proxmox of Oracle KVM (oVirt) - deze zijn niet gebaseerd op KubeVirt en kunnen niet worden gebruikt
Weitere Informationen
rawio-setup.sh
*******************************************
rawio-create-vm-openshift.sh