Expert GuideGuide zum Erstellen eines Red Hat OpenShift 4 Single-Node-Clusters in v4.14

Claus Küthe & Daniel Kaiser — 04. März 2024
Lesezeit: 6:09 Minuten

Mit OpenShift 4 hat Red Hat eine eigene Version von Kubernetes auf den Markt gebracht. Folgen Sie unserer Anleitung, um sich einen Single Node-Cluster zu installieren, mit dessen Hilfe Sie sich mit diesem Produkt vertraut machen können.

Im Beitrag zeigen wir, wie Sie einen lauffähigen Single Node OpenShift-‘Cluster’ installieren können. Obwohl es sich bei dieser Installation um keinen Cluster im technischen Sinne handelt, wird der Begriff in der folgenden Anleitung verwendet.

Machen Sie sich mit OpenShift vertraut

Zielsetzung der Anleitung ist kein Produktivsystem, sondern eine Testinstallation, auf deren Grundlage Sie sich mit OpenShift vertraut machen können.

 

Auch wenn wir selbst VMware verwendet haben, werden wir im Folgenden davon ausgehen, dass eine Bare Metal-Installation vorgenommen wird, um die Anleitung so generisch wie möglich zu halten.

 

Als Zielsystem haben wir in unserem Fall eine virtuelle Maschine mit folgenden Parametern verwendet:

  •  24 GB RAM
  • 120 GB primäre Festplatte
  • 200 GB sekundäre Festplatte
  • 8 CPUs
  • Eine Netzwerkkarte mit fester IP
  • Zwei statische Namenseinträge:
*.apps.<clustername>.<ihredomain>

und

api.<clustername>.<ihredomain>

Die Mindestanforderung liegt bei 16,35 GiB RAM, 120 GiB Festplatte und 8 CPUs – diese kann allenfalls genutzt werden, um die Installationsroutine zu überprüfen.

Installation mit VMware 

Wird VMware verwendet, müssen noch folgende Optionen gesetzt werden:

  • Erweiterte Parameter: disk.EnableUUID = TRUE
  • CPU: Hardwaregestützte Virtualisierung für das Gastbetriebssystem bereitstellen

Installation mit KVM

Für KVM verwenden Sie bitte:

  • Anzahl der CPUs: Die CPU-Konfiguration vom Host kopieren (host-passthrough)

Installation

Um die Installation vorzubereiten, wird als nächstes die Hybrid Cloud Console von Red Hat (https://console.redhat.com) aufgerufen. Hier Red Hat OpenShift bzw. Manage OpenShift Clusters, dann Red Hat OpenShift Dedicated/Create Cluster. Die Übersicht der Cluster sollte noch leer sein.

 

Dies wird nun mit einem Klick auf "Create Cluster“ geändert – in der nachfolgenden Übersicht wählen Sie Baremetal oder Platform agnostic (x86_64) aus, danach „Interactive“ für eine Installation über die Weboberfläche von Red Hat.

 

Als nächstes geben Sie folgende Daten ein:

  • Cluster name: <ihr name>, beispielsweise „ocp-test“
  • Base Doman: Ihre Domain, beispielsweise example.com
  • Install single node OpenShift (SNO)
  • Host network configuration: Static IP, bridges and bonds

 

Fahren Sie fort mit „Next“. Danach geben Sie ein:

  • DNS: Die IP-Adresse Ihres DNS-Servers
  • Machine Network: Das Netzwerk, in dem sich die Maschine befindet (CIDR-Format)
  • Default Gateway: Ihr Gateway

 

Danach gehen Sie mit „Next“ zur nächsten Seite über.

 

Hier müssen Sie nur folgende Parameter einstellen:

  • MAC Address: die MAC-Adresse des prim.ren Netzwerkinterfaces
  • IP-Adress: Die gewünschte IP-Adresse der Installation

 

Gehen Sie nun mit „Next“ zum nächsten Schritt, den Sie mit abermals „Next“ überspringen können. Nun zum interessanteren Teil der Installation:

 

Mit Klick auf „Add Host“ können Sie sich ein Installations-ISO erstellen und herunterladen, dem Sie Ihren SSH-Schlüssel mitgeben können.

 

Als „Provisioning Type“ kommen „Full Image“ sowie ein „Minimal Image“ in Betracht, wobei letzteres fehlende Dateien während der Installation herunterlädt und die Installation dementsprechend länger dauern wird. Mit „Generate Discovery ISO“ wird das Abbild erzeugt und kann danach entweder über den bereitgestellten wget-Befehl oder den Browser heruntergeladen und als Boot-Datenträger für Ihren Rechner verwendet werden.

Achtung: Das ISO ist an diesen Cluster gebunden und kann nicht zur Installation eines anderen Clusters verwendet werden!

Wenn Sie das Abbild gestartet haben, wird Ihr Host unter "Host Inventory" erscheinen und durch „Ready“ als installationsbereit angezeigt werden. Es kann bis zu einer Minute dauern, bis der Rechner erscheint und als fehlerfrei angezeigt wird.

Achtung:

Stellen Sie sicher, dass es sich um den richtigen Rechner handelt.

Während der Installation werden alle Daten Ihres Installationsrechners gelöscht!

Fahren Sie fort mit „Next“ in die Übersicht für „Storage“. Hier sollte unter „Role“ die Bezeichnung „Control plane node, Worker (bootstrap)“ erscheinen, da Sie einen Single Node Cluster installieren.

 

Klappen Sie die Detailansicht aus, indem Sie auf den nach unten zeigenden Pfeil klicken.

 

Hier sollten Sie sicherstellen, dass bei der zweiten Festplatte in der Spalte „Format“ kein Häkchen gesetzt ist. Notieren Sie sich zudem die dargestellte WWN, allerdings ohne das führende 0x.

 

Fahren Sie mit „Next“ fort.

 

Auf der folgenden Seite sehen Sie noch mal eine Zusammenfassung der Installation, die Sie mit „Next“ bestätigen können. Auf der nächsten Seite können Sie dann mit „Install cluster“ endlich die  Installation beginnen.

 

Diese wird, abhängig von der Leistungsfähigkeit Ihres Rechners, einige Zeit

(etwa eine Stunde) in Anspruch nehmen.

 

Mit „View Cluster Events“ können Sie sich Status- und Fehlermeldungen anzeigen lassen.

 

Nach erfolgreicher Installation können Sie mit „Launch OpenShift Console“ die nötigen DNS-Einstellungen sehen.

 

Beachten Sie bitte, dass die angegebene Wildcard-Domain

*.apps.<cluster-name><domain>

 

zwingend erforderlich ist, um die grafische Oberfläche des Clusters und

später etwaige darauf laufende Applikationen zu erreichen.

 

Als Login können Sie den Standardbenutzer kubeadmin und das in der Installationsumgebung bereitstehende Passwort verwenden. Die kubeconfig-Datei sollten Sie für den späteren Gebrauch herunterladen.

Installation des Kommandozeilenclients (OC)

Es empfiehlt sich, den Kommandozeilenclient (OC) von OpenShift zu installieren.

Glücklicherweise kann der Client direkt über die Oberfläche von OpenShift heruntergeladen werden:

  1. Klicken Sie auf das „?“ rechts oben
  2. Dort auf „Command Line Tools“

In der folgenden Ansicht können Sie den für Ihr Betriebssystem und ihre Architektur passenden Client als tar- (Linux) oder zip-Datei (Windows) herunterladen. Um den Client zu verwenden, müssen Sie noch die „kubeconfig“ aus der Cloud Console von RedHat herunterladen und als Datei ~/.kube/config ablegen. Mit dem Befehl oc whoami können Sie überprüfen, ob die Installation erfolgreich war und den aktuell authentifizierten Benutzer anzeigen.

Achtung:

Sollten Sie den Cluster auf einer virtuellen Maschine installiert haben, wäre jetzt ein günstiger Zeitpunkt für einen Snapshot gekommen. Fahren Sie hierzu die virtuelle Maschine herunter, erstellen Sie einen Snapshot und starten Sie die virtuelle Maschine erneut.

Storage

Bei einer Single Node-Installation wird kein Storage erstellt und muss beziehungsweise von Hand nachgetragen werden.

 

Ab jetzt werden wir öfter den Kommandozeilenclient benötigen. Stellen Sie

daher sicher, dass dessen Einrichtung im vorherigen Schritt erfolgreich war.

Erstellen Sie ein neues Projekt namens openshift-local-storage:

oc adm new-project openshift-local-storage

 

Für eine Single Node-Installation sollte noch folgender Befehl abgesetzt werden:

oc annotate namespace openshift-local-storage workload.openshift.io/allowed='management'

Danach muss die Oberfläche benutzt werden:

  • Rufen Sie die Oberfläche des Clusters auf und loggen Sie sich ein.
  • Rufen Sie Operators → OperatorHub auf.
  • Geben Sie „Local Storage“ in die Suche ein und klicken Sie auf das erscheinende Feld.
  • Klicken Sie auf „Install“.
  • Wählen Sie „A specific namespace on the cluster“ aus (sollte bereits ausgewählt sein).
  • Belassen Sie „Operator recommended Namespace: PR openshift-local-storage“, falls es ausgewählt ist, oder nutzen Sie „Select a namespace“ und wählen Sie den Namensraum selbst aus.
  • Klicken Sie auf „Install“.

 

Sobald die Installation ausweislich der Oberfläche abgeschlossen ist, können Sie den Namensraum auf laufende Pods überprüfen:

oc -n openshift-local-storage get pods

 

Der Befehl sollte mindestens einen Eintrag ausgeben.

 

Als nächstes müssen Sie ein Persistent Volume (PV) erstellen. Nutzen Sie hierzu folgende yaml-Datei. Den Pfad müssen Sie anpassen, indem sie /path/to/device durch Ihre WWN ersetzen. Sollten Sie die WWN während der Installation nicht notiert haben, können Sie Ihren Cluster über

console.redhat.com aufrufen und die WWN der zweiten Festplatte in den Details Ihres Clusters nachschlagen (ohne führendes 0x).

 

Alternativ können Sie sich auch per SSH mit dem Benutzer „core“ auf Ihrem Cluster einloggen und per „ls /dev/disk/by-id“ nachsehen.

Achtung: stellen Sie sicher, dass Sie die richtige Festplatte verwenden!

apiVersion: local.storage.openshift.io/v1
kind: LocalVolume
metadata:
  name: lv-main
  namespace: openshift-local-storage
spec:
  nodeSelector:
    nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
            - <FQDN Ihrer Installation>
  storageClassDevices:
    - devicePaths:
      - /path/to/device
    fsType: ext4
    storageClassName: sc-main
    volumeMode: Filesystem

 

Achten Sie bitte auf die Formatierung. Sollte die Einrückung falsch übernommen werden, kann die YAML-Datei nicht gelesen werden.

 

Ersetzen Sie /path/to/device durch den Pfad Ihrer Festplatte (z.B. /dev/disk/by-id/wwn-0x6000c29dd7af736df2e18d3714fbeef2) und speichern Sie die Datei als local-volume.yml in einem Verzeichnis Ihrer Wahl.

Nutzen Sie dann den oc-Client, um das Volume zu erstellen:

oc create -f local-volume.yml

Den Erfolg können Sie mit folgendem Befehl nachvollziehen:

oc get all -n openshift-local-storage
oc get pv

 

Der zweite Befehl ist der entscheidende: Hier muss eine storageClass mit dem Namen „sc-main“ angezeigt werden.

Wichtig ist nun, dass in der GUI unter Storage → PersistentVolumes automatisch ein PersistentVolume erstellt wurde, in unserem Fall local-pv-a7b1585d.

 

Leider müssen Sie noch eine händische Nacharbeit vornehmen, indem Sie auf das Persistent Volume klicken und mit Klick auf YAML den Editor aufrufen.

 

Suchen Sie hier unter „spec“ den Schlüssel „accessModes“ und ändern Sie den Eintrag von „ReadWriteOnce“ in „ReadWriteMany“, bevor Sie mit „Save“ speichern.

 

Die Bezeichnung des Persistent Volume (für uns local-pv-a7b1585d) werden Sie für die nächste YAML-Datei benötigen, die Sie in der Datei PersistentVolumeClaim.yml ablegen:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: image-registry-storage
  namespace: openshift-image-registry
spec:
  accessModes:
    - ReadWriteMany
  volumeMode: Filesystem
  volumeName: <Ihr PersistentVolume>
  storageClassName: sc-main
  resources:
    requests:
      storage: 100Gi

Hier muss noch volumeName durch Ihren Wert ersetzt werden.

 

Installieren Sie danach die YAML-Datei mit folgendem Befehl und überprüfen Sie nach einigen Sekunden das Ergebnis:

oc create -f PersistentVolumeClaim.yml -n openshift-image-registry
oc get pvc -n openshift-image-registry

Beachten Sie bitte, dass die zweite Spalte – STATUS – den Wert „Bound“ anzeigen muss.

 

Jetzt haben Sie den für die im nächsten Schritt anzulegende Registry nötigen Voraussetzungen geschaffen.

Registry

OpenShift nutzt eine eigene Registry, die dazu dient, Images in Ihrer Infrastruktur zu lagern. Die Einrichtung ist, nach den vorhergehenden Schritten, denkbar einfach.

 

Zunächst muss OpenShift wieder dazu gebracht werden, eine eigene Registry zu nutzen:

oc patch configs.imageregistry.operator.openshift.io cluster --type merge \
--patch '{"spec":{"managementState":"Managed"}}'

 

Danach wird OpenShift so konfiguriert, dass es den zuvor erstellten PersistentVolumeClaim nutzt:

oc patch configs.imageregistry.operator.openshift.io cluster --type merge \
--patch '{"spec": {"storage":{"managementState":"Managed", "pvc": \
{"claim":"image-registry-storage"}}}}'

Um den Erfolg der vorhergehenden Befehle zu prüfen, gibt es drei weitere Befehle:

oc -n openshift-local-storage get pods
oc get csvs -n openshift-local-storage
oc get clusteroperator image-registry

Der letzte Befehl wird im unmittelbaren Aufruf noch True in der Spalte DEGRADED angeben sowie „Available: The deployment does not have available replicas…“ in der Spalte MESSAGE.

 

Rufen Sie den Befehl mehrmals auf, bis MESSAGE leer ist und DEGRADED auf False steht. Der Zeithorizont lag in unserem Falle bei etwa 5 Minuten.

Die erste Anwendung

Um Ihre erste Anwendung zu starten, können Sie in der Oberfläche oben links von „Administrator“ in die „Developer“-Ansicht wechseln. Wählen Sie danach den Menüpunkt „+Add“ in der Seitenleiste. Im Arbeitsbereich können Sie nun oben links auf Projekt klicken und ein eigenes

Projekt erstellen, dass sie danach auch direkt auswählen.

 

Im Arbeitsbereich sehen Sie mehrere Schaltflächen – wählen Sie „Samples“ aus. Für den Anfang ist Nginx, ein leichtgewichtiger Webserver, eine gute Wahl. Klicken Sie diese Fläche an und erstellen Sie die Anwendung mit „Create“.

 

Nach etwa ein bis zwei Minuten Wartezeit sollte die Anwendung unter „Topology“ erscheinen und mit einem grünen Häkchen versehen werden:

 

Das Verweissymbol in der oberen rechten Ecke des Kreises sollte nun direkt auf eine Einführungsseite des nginx-Containers zeigen. Wenn Sie dieses Symbol anklicken, sollten Sie unter der Adresse nginx-sample-<Ihr Projekt>.apps.<clustername>.<ihredomain> eine Willkommensseite der nginx-Applikation sehen.

 

Wir hoffen, diese Anleitung hat Ihnen gefallen und wünschen Ihnen Erfolg bei der Umsetzung.

André Wild

Haben Sie Fragen zur Installation oder anderen Themen im Bereich OpenShift? - Schreiben Sie uns.

André Wild, Consultant
Telefon +49172 541 142 29

Wenn Sie sich hierfür interessieren, dann interessieren Sie sich vielleicht auch für...