- Software-Entwicklung
So installieren wir OpenShift auf AWS
Einleitung
Die Installation von OpenShift auf AWS ist bereits recht einfach. Wenn Sie dies nicht häufig vorhaben, können Sie problemlos mit den manuellen Schritten der Ersteinrichtung gut leben. Für uns ist es wichtig, folgende Punkte effizient und oft durchführen zu können
- erstellen eines OpenShift Clusters
- Patchen eines OpenShift Cluster, um das Abschalten des Clusters innerhalb von 24 Stunden zu ermöglichen (bekanntes Problem, welches Red Hat in folgendem Blogeintrag behandelt hat.
- Google als Authentifizierungsanbieter (OAuth) hinzufügen
- neue Administratoren und Cluster Administratoren hinzufügen
- kubeadmin-User löschen um Sicherheitsrisiken zu minimieren
- Starten / Stoppen der Cluster-VMs
- OpenShift-Cluster entfernen
Um diese Abfolge regelmäßig durchführen zu können, haben wir eine Sammlung von Skripten und Aliase erstellt, die uns dabei helfen, so effizient wie möglich zu arbeiten. Wenn Sie einen ähnlichen Bedarf haben, hoffen wir, dass unsere Vorarbeit Ihnen dabei hilft, Ihre manuellen Einrichtungsschritte zu beschleunigen.
Vorbereitung
Im Allgemeinen folgen wir der Anleitung, um OpenShift auf AWS einzurichten. Alle von uns erstellten Aliase sind in bashrc definiert und unten aufgeführt. Um den Alias zu verwenden, musst du die bashrc einsouren und verwenden. Wenn du die Befehle unabhängig von den Alias ausführen möchten, kannst du das auf eigenes Risiko tun.
source ./bashrc
Verfügbare Befehle
- ocp-extract
- ocp-create-config
- ocp-create-cluster
- ocp-destroy-cluster
- ocp-patch-cluster
- ocp-start-cluster
- ocp-stop-cluster
- ocp-auth-add-google-provider
- ocp-auth-add-cluster-admins
- ocp-auth-del-kubeadmin
- ocp-setup
Hinweis: Nicht vergessen, die bashrc einzusourcen.
Cluster Erstellung
1) Ordner extrahieren
Um einen neuen Cluster unter AWS zu erstellen, musst du das Installationsprogramm von Red Hat für OpenShift 4 verwenden. Lade dir zunächst das Installationsprogramm, Pull-Secret- und Commandline-Tools herunter und speichere die Dateien im Repository-Ordner. Als nächstes können wir ocp-extract verwenden, um die tar-Dateien in einen neuen bin-Ordner zu extrahieren.
Tipp: Verwende –help, um mehr über ocp-extract zu erfahren
2) Konfiguration erstellen
Für diesen Schritt benötigst du ein AWS-Konto. Weitere Informationen findest du hier. Sobald du den Befehl ausgeführt hast, hast du die Möglichkeit, die Initiale Konfiguration zu adaptieren.
Tipp: Verwende –help, um mehr über ocp-create-config zu erfahren.
3) Konfiguration anpassen
Du kannst die im vorherigen Schritt erstellte Installationskonfiguration jederzeit an deine spezifischen Anforderungen anpassen. Dies macht vor allem deshalb Sinn, da die Standardkonfiguration nicht unbedingt für deinen UseCase sinnvoll ist.
Beispiel für eine angepasste Datei install-config.yaml für AWS
apiVersion: v1
baseDomain: example.com
controlPlane:
hyperthreading: Enabled
name: master
platform:
aws:
zones:
- us-west-2a
- us-west-2b
rootVolume:
iops: 4000
size: 500
type: io1
type: m5.xlarge
replicas: 3
compute:
- hyperthreading: Enabled
name: worker
platform:
aws:
rootVolume:
iops: 2000
size: 500
type: io1
type: c5.4xlarge
zones:
- us-west-2c
replicas: 3
metadata:
name: test-cluster
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineCIDR: 10.0.0.0/16
networkType: OpenShiftSDN
serviceNetwork:
- 172.30.0.0/16
platform:
aws:
region: us-west-2
userTags:
adminContact: jdoe
costCenter: 7536
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA... Genaueres zum oben angeführten Beispiel finden Sie hier. Nachfolgend ein paar Links, die bei einer Konfigurationsanpassung helfen können
- Installationskonfigurationsparameter für AWS
- Anpassungen der Netzwerkkonfiguration
4) Cluster erstellen
Sobald die Konfiguration deinen Anforderungen entspricht, kannst du den Cluster einfach durch Ausführen erstellen.
Tipp: Verwende –help, um mehr über ocp-create-cluster zu erfahren.
Cluster patchen
“Bei der Installation von OpenShift 4-Clustern wird ein Bootstrap-Zertifikat erstellt, das auf den Master-Nodes zum Erstellen von Zertifikatsignierungsanforderungen (Certificate Signing Requests, CSRs) für Kubelet-Client-Zertifikate (eine für jedes Kubelet) verwendet wird, um jedes Kubelet auf einem beliebigen Knoten zu identifizieren. Da Zertifikate nicht widerrufen werden können, wird dieses Zertifikat mit einer kurzen Ablaufzeit erstellt und 24 Stunden nach der Clusterinstallation kann es nicht mehr verwendet werden. Alle Knoten außer den Masterknoten verfügen über ein widerrufbares ServiceAccount-Token. Daher ist das Bootstrap-Zertifikat nach der Cluster-Installation nur 24 Stunden lang gültig. Danach nochmal alle 30 Tage.
Wenn die Masterkubelets kein 30-Tage-Clientzertifikat haben (das erste ist nur für 24 Stunden gültig), macht das Fehlen des Aktualisierungsfensters für das Kubelet-Clientzertifikat den Cluster unbrauchbar, da der Bootstrap-Berechtigungsnachweis beim erneutem Starten des Clusters nicht verwendet werden kann. In der Praxis erfordert dies, dass ein OpenShift 4-Cluster nach der Installation mindestens 25 Stunden ausgeführt wird, bevor er heruntergefahren werden kann. Der folgende Prozess ermöglicht das Herunterfahren des Clusters direkt nach der Installation. Außerdem kann der Cluster in den nächsten 30 Tagen jederzeit wieder gestartet werden.”
Nun folgen wir der im OpenShift Blogpost beschriebenen Anleitung um den Cluster zu patchen, damit er vor Ablauf von 24 Stunden heruntergefahren werden kann.
Tipp: Verwende –help, um mehr über ocp-patch-cluster zu erfahren.
Achtung: Nachdem das Skript erfolgreich ausgeführt wurde, musst du oc get clusteroperators ausführen und warten, bis alle Clusteroperatoren den erforderlichen Status erreicht haben (True False False).
Google Auth hinzufügen
Du benötigst OAuth2.0-Anmeldeinformations-IDs von Google, um diesen Schritt auszuführen. Verwende zum Erstellen oder Abrufen der clientID / clientSecret die Entwicklerkonsole von Google.
Sobald du die Client-ID und das Client-Geheimnis hast, speichere sie als Dateien (Client-ID und Client-Geheimnis) im Repo-Verzeichnis.
Hinweis: Bei Dateinamen wird die Groß- und Kleinschreibung beachtet
Sobald die clientID und clientSecret eingerichtet sind, können wir den Befehl ausführen, um Google als Authentifizierungsanbieter zum OpenShift-Cluster hinzuzufügen. Zusätzlich schränkt die Angabe des hosteddomain Parameters die zugelassene Domain für Benutzer:innen, die sich über diesen Anbieter anmelden können, ein.
ocp-auth-add-google-provider --hosteddomain=<your-domain.com>
Tipp: Verwende –help, um mehr über ocp-auth-add-google-provider zu erfahren
Cluster-Administratoren hinzufügen
Um mehrere Cluster-Administratoren hinzuzufügen, kannst du ocp-auth-add-cluster-admins verwenden. Es wird eine neue Gruppe von Cluster-Administratoren erstellt und dieser Gruppe eine Liste von Benutzern hinzugefügt. Sofern nicht über zusätzliche Optionen angegeben, werden Cluster-Administratoren im Repo-Verzeichnis gelesen. Geben Sie einen Benutzer pro Zeile wie folgt an:
- user1
- user2
Tipp: Lasse am Ende der Datei eine leere Zeile frei. Andernfalls wird der letzte Eintrag übersprungen.
Tipp: Verwende –help, um mehr über ocp-auth-add-cluster-admins zu erfahren
Stoppen Sie den Cluster
Um einen laufenden Cluster zu stoppen, kannst du ocp-stop-cluster verwenden.
Tipp: Verwende –help, um mehr über ocp-stop-cluster zu erfahren
Cluster starten
Um einen gestoppten Cluster erneut zu starten, kannst du ocp-start-cluster verwenden.
Tipp: Verwende –help, um mehr über ocp-start-cluster zu erfahren
ocp-start-cluster
Cluster zerstören
Zerstöre alle von ocp-create-cluster erstellten AWS-Ressourcen mit ocp-destroy-cluster. Hinweis: manuell hinzugefügte Ressourcen werden nicht gelöscht!
Tipp: Verwende –help, um mehr über ocp-destroy-cluster zu erfahren
Alles in einem
Um den Bootstrapping-Vorgang schnell auszuführen, verwende ocp-setup.
Hinweis: Dadurch werden die obigen Befehle mit den Standardwerten ausgeführt. Wenn du das Verhalten ändern möchtest, ändere die Funktion ocp-setup in Ihrer Kopie von bashrc, indem du den Befehlen zusätzliche Parameter hinzufügst.


