Gatekeepers med Red Hat OpenShift eller överordnad Kubernetes
Zusammenfassung: I den här kunskapsbasartikeln beskrivs hur du använder Red Hat GitHub-lagringsplatsen kubevirt-rawio-addon för att presentera PowerMax-grindvakter för antingen en Red Hat OpenShift- eller uppströms Kubernetes-miljö. ...
Weisungen
PowerMax-gatekeepers
PowerMax Gatekeepers är små enheter (vanligtvis tre MB) som skärs ut från diskar i PowerMax och som fungerar som SCSI-mål för Solutions Enabler-kommandon. Information om konfiguration och status lagras i en PowerMax-värddatabasfil och symapi_db.bin som standard. Den kallas för PowerMax-konfigurationsdatabasen. Det minskar antalet förfrågningar från värden till lagringsdisksystemen. Gatekeepers måste vara råenheter så att operativsystemet helt enkelt skickar SCSI-kommandona utan manipulering. Fysiska värdar fungerar alltid med Gatekeepers (med ett operativsystem som stöds), men virtuella värdar är begränsade till VMware med hjälp av fysiska mappningar av råa enheter (RDM), iSCSI för gäst på Windows eller Linux, NVMe/TCP för gäst på Linux eller genomströmningsenheter (NIC eller HBA). Det är dock bara VMware som kan presentera en äkta rå enhet som är erkänd som en livskraftig Gatekeeper. Andra virtualiseringslösningar gör det möjligt för användaren att presentera enheter som "råa", men deras lösningar blockerar vissa SCSI-kommandon, vilket förhindrar att de används som gatekeepers. Solutions Enabler betecknar dem som gatekeepers men rapporterar ett fel enligt nedan.

Dessutom, om du undersöker grindvakterna visar de ett tillstånd av "CLS" eller stängt.

Därför kan du inte skicka de nödvändiga SCSI-kommandona.
Om du vill dra nytta av den här lösningen måste du använda ett protokoll som Solutions Enabler stöder på det valda operativsystemet. Se produktdokumentationen.
Red Hat GitHub-lösning
Dell bad Red Hat om hjälp med att utveckla en lösning för grindvakter i en OpenShift-miljö för några av våra gemensamma kunder. För detta ändamål skapade de en lösning som fungerar för både OpenShift och Upstream Kubernetes med små variationer i implementeringen. GitHub-lagringsplatsen kallas kubevirt-rawio-addon som finns här: https://github.com/openshift-cnv/kubevirt-rawio-addon GitHub innehåller en readme-https://github.com/openshift-cnv/kubevirt-rawio-addon/blob/main/README.md.
Tillägget installerar flera komponenter:
- Mutera webhooks för att ändra objekt i farten
- Validera webhook – en OpenShift-specifik säkerhetskontroll
- Säkerhetskonfiguration för att tillåta privilegierade funktioner
- Krok för sidovagn
Sidovagnen är en liten extra container som körs tillsammans med VM-podden och ändrar den virtuella datorns lågnivåkonfiguration innan den startar. Den fångar upp den KubeVirt-genererade VM-konfigurationen, hittar de kommenterade diskarna och anger rawio=yes. KubeVirt får sedan tillbaka XML-filen. Den underliggande arkitekturen libvirt/QEMU stöder detta, men visar det inte, så denna mindre justering krävs. Det är möjligt att KubeVirt avslöjar detta i framtiden, då lösningen kommer att vara onödig.
Implementering på OpenShift
Lagringsplatsen innehåller alla instruktioner för att implementera den här lösningen. Eftersom Red Hat äger lösningen rekommenderar Dell att du följer de aktuella instruktionerna, som kan komma att ändras i framtiden. Dell kommer inte att uppdatera kunskapsbasen för att återspegla dessa ändringar. Som en artighet tillhandahåller vi den grundläggande informationen nedan, men uppmuntrar användare av denna KB att använda dem tillsammans med arkivet.
Som nämnts kan du implementera detta på OpenShift eller Upstream Kubernetes. Som steg för OpenShift finns det några saker att tänka på om du gör överordnad Kubernetes.
- Om du implementerar på vanliga K8s-system måste du ha cert-manager installerat. Om PowerMax CSI-drivrutinen är installerad så finns den.
- Om du implementerar på vanliga K8s behöver du ett privilegierat namnområde. Du kan använda namnområdet i skripten eller skapa ett eget och sedan ändra skripten.
De två skript du behöver för implementering finns i hackmappen . rawio-setup.sh är det första skriptet och är detsamma för båda plattformarna, men tänk på att det förlitar sig på openshift-cnv namnområdet som bara finns på OpenShift. Lägg till namnområdet eller skapa ett nytt och ändra skriptet för K8s. Skriptet för att skapa virtuella datorer är unikt för plattformen, men använder återigen openshift-cnv namnområdet. För OpenShift är det rawio-create-vm-openshift.sh. Skripten är utformade för att skapa en testmiljö och måste ändras för en produktionsinställning. I synnerhet skapar rawio-setup.sh-skriptet en virtuell SCSI-enhet. Ändra i stället skriptet så att den använder din PowerMax-lagringsklass. Dessutom förutsätter skriptet en enda nod för schemaläggning av den virtuella datorn. Ändra den så att den kan köras på valfri arbetsnod. Skriptet använder ett Fedoraoperativsystem före buit.
Exempelskript finns i Tilläggsinnehåll.
Grundläggande steg
- Klona lagringsplatsen: git clonehttps://github.com/openshift-cnv/kubevirt-rawio-addon.git
- Installera manifestet: oc apply -fhttps://github.com/openshift-cnv/kubevirt-rawio-addon/releases/download/v0.1.0/rawio-addon-openshift.yaml
- Installera sidovagnen: oc annotate –overwrite -n openshift-cnv hco kubevirt-hyperconverged kubevirt.kubevirt.io/jsonpatch='[{"op": "add", "path": "/spec/configuration/developerConfiguration/featureGates/-", "value": "Sidovagn"}]'
- Kör konfigurationen: rawio-setup.sh
- Skapa VM: rawio-create-vm-openshift.sh
- Installera ditt operativsystem (förutsatt att du inte använder ett förbyggt)
Tänk på att PowerMax CSI inte kan skapa en enhet som är mindre än 50 MB även om du ber om en traditionell 3 MB Gatekeeper. Det orsakar inga problem.


Andra virtualiseringslösningar
Ingen av lösningarna nedan fungerar med den här Red Hat-lagringsplatsen.
- K8s-baserade lösningar som SUSE Harvester – SUSE måste utveckla sin egen lösning
- KVM-lösningar som Proxmox eller Oracle KVM (oVirt) - dessa är inte KubeVirt-baserade och kan inte användas
Weitere Informationen
rawio-setup.sh
*******************************************
rawio-create-vm-openshift.sh