OKD ist die Open-Source-Upstream-Community-Edition der OpenShift-Containerplattform von Red Hat. OKD ist eine Containerverwaltungs- und -orchestrierungsplattform, die auf Docker und Kubernetes basiert.
OKD ist eine Komplettlösung zum Verwalten, Bereitstellen und Betreiben containerisierter Anwendungen, die (zusätzlich zu den von Kubernetes bereitgestellten Funktionen) eine benutzerfreundliche Webschnittstelle, automatisierte Build-Tools, Routing-Funktionen sowie Überwachungs- und Protokollierungsaggregationsfunktionen umfasst.
OKD bietet mehrere Bereitstellungsoptionen für unterschiedliche Anforderungen mit einzelnen oder mehreren Master-Knoten, Hochverfügbarkeitsfunktionen, Protokollierung, Überwachung und mehr. Sie können OKD-Cluster so klein oder so groß wie nötig erstellen.
Linux-Container
- Was sind Linux-Container?
- Eine Einführung in die Containerterminologie
- Download:Einführung in Container
- Kubernetes-Operatoren:Automatisierung der Container-Orchestrierungsplattform
- eBook:Kubernetes-Muster zum Entwerfen cloudnativer Apps
- Was ist Kubernetes?
Zusätzlich zu diesen Bereitstellungsoptionen bietet OKD eine Möglichkeit zum Erstellen eines lokalen All-in-One-Clusters auf Ihrem eigenen Computer mithilfe von oc Befehlszeilentool. Dies ist eine großartige Option, wenn Sie OKD lokal ausprobieren möchten, ohne die Ressourcen zum Erstellen eines größeren Multi-Node-Clusters bereitzustellen, oder wenn Sie als Teil Ihres Workflows oder Entwicklungsprozesses einen lokalen Cluster auf Ihrem Computer haben möchten. In diesem Fall können Sie die Anwendungen lokal erstellen und bereitstellen, indem Sie dieselben APIs und Schnittstellen verwenden, die für die Bereitstellung der Anwendung in größerem Umfang erforderlich sind. Dieser Prozess stellt eine nahtlose Integration sicher, die Probleme mit Anwendungen verhindert, die in der Umgebung des Entwicklers, aber nicht in der Produktion funktionieren.
Dieses Tutorial zeigt Ihnen, wie Sie mit oc cluster up einen OKD-Cluster erstellen in einer Linux-Box.
1. Installieren Sie Docker
Das oc cluster up Der Befehl erstellt mithilfe von Docker-Containern einen lokalen OKD-Cluster auf Ihrem Computer. Um diesen Befehl verwenden zu können, muss Docker auf Ihrem Computer installiert sein. Für OKD Version 3.9 und höher ist Docker 1.13 die empfohlene Mindestversion. Wenn Docker nicht auf Ihrem System installiert ist, installieren Sie es mithilfe des Paketmanagers Ihrer Distribution. Installieren Sie Docker beispielsweise unter CentOS oder RHEL mit diesem Befehl:
$ sudo yum install -y docker
Verwenden Sie auf Fedora dnf:
$ sudo dnf install -y docker
Dadurch werden Docker und alle erforderlichen Abhängigkeiten installiert.
2. Unsichere Docker-Registrierung konfigurieren
Sobald Sie Docker installiert haben, müssen Sie es konfigurieren, um die Kommunikation mit einer unsicheren Registrierung unter der Adresse 172.30.0.0/16 zu ermöglichen. Diese unsichere Registrierung wird später mit Ihrem lokalen OKD-Cluster bereitgestellt.
Bearbeiten Sie unter CentOS oder RHEL die Datei /etc/docker/daemon.json indem Sie diese Zeilen hinzufügen:
{
"insecure-registries":["172.30.0.0/16"]
}
Bearbeiten Sie auf Fedora die Datei /etc/containers/registries.conf indem Sie diese Zeilen hinzufügen:
[registries.insecure]
registries =['172.30.0.0/16']
3. Starten Sie Docker
Erstellen Sie vor dem Starten von Docker eine Systemgruppe mit dem Namen docker und weisen Sie diese Gruppe Ihrem Benutzer zu, damit Sie Docker-Befehle mit Ihrem eigenen Benutzer ausführen können, ohne Root- oder Sudo-Zugriff zu benötigen. Auf diese Weise können Sie Ihren OKD-Cluster mit Ihrem eigenen Benutzer erstellen.
Dies sind beispielsweise die Befehle, um die Gruppe zu erstellen und sie meinem lokalen Benutzer ricardo zuzuweisen :
$ sudo groupadd docker
$ sudo usermod -a -G docker ricardo
Sie müssen sich abmelden und wieder anmelden, um die neue Gruppenzuordnung anzuzeigen. Führen Sie nach der erneuten Anmeldung die id aus Befehl und vergewissern Sie sich, dass Sie Mitglied des Docker sind Gruppe:
$ id
uid=1000(ricardo) gid=1000(ricardo) groups=1000(ricardo),10(wheel),1001(docker)
context=unconfined_u:unconfined_r:unconfined_t:s0 -s0:c0.c1023
Starten und aktivieren Sie nun den Docker-Daemon wie folgt:
$ sudo systemctl start docker
$ sudo systemctl enable docker
Symlink von /etc/systemd/system/multi-user.target.wants/docker.service zu /usr/lib/systemd/ erstellt system/docker.service.
Stellen Sie sicher, dass Docker ausgeführt wird:
$ Docker-Version
Client:
Version: 1.13.1
API-Version: 1.26
Paketversion:docker-1.13.1-75.git8633870.el7.centos. x86_64
Go-Version: go1.9.4
Git-Commit: 8633870/1.13.1
Erstellt: Freitag, 28. September 19:45:08 2018
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API-Version: 1.26 (Mindestversion 1.12)
Paketversion:docker-1.13.1-75.git8633870.el7. centos.x86_64
Go-Version: go1.9.4
Git-Commit: 8633870/1.13.1
Erstellt: Freitag, 28. September 19:45:08 2018
OS/Arch: linux/ amd64
Experimentell: falsch
Stellen Sie sicher, dass die unsichere Registrierungsoption aktiviert wurde, indem Sie docker info ausführen und nach diesen Zeilen suchen:
$ docker info
... Lange Ausgabe wird übersprungen ...
Unsichere Registrierungen:
172.30.0.0/16
127.0.0.0/8
4. Firewall-Ports öffnen
Öffnen Sie als Nächstes Firewall-Ports, um sicherzustellen, dass Ihre OKD-Container mit der Master-API kommunizieren können. Standardmäßig ist bei einigen Distributionen die Firewall aktiviert, die die erforderliche Verbindung von den OKD-Containern zur Master-API blockiert. Wenn auf Ihrem System die Firewall aktiviert ist, müssen Sie Regeln hinzufügen, um die Kommunikation auf den Ports 8443/tcp zuzulassen für die Master-API und 53/udp für die DNS-Auflösung im Docker-Bridge-Subnetz.
Für CentOS, RHEL und Fedora können Sie das firewall-cmd verwenden Befehlszeilentool zum Hinzufügen der Regeln. Für andere Distributionen können Sie den bereitgestellten Firewall-Manager wie UFW oder iptables verwenden.
Rufen Sie vor dem Hinzufügen der Firewallregeln die Subnetzadresse des Docker-Bridge-Netzwerks wie folgt ab:
$ docker network inspect bridge | grep Subnetz
"Subnetz":"172.17.0.0/16",
Aktivieren Sie die Firewall-Regeln mit diesem Subnetz. Verwenden Sie für CentOS, RHEL und Fedora firewall-cmd So fügen Sie eine neue Zone hinzu:
$ sudo firewall-cmd --permanent --new-zone okdlocal
Erfolg
Fügen Sie die Subnetzadresse, die Sie zuvor erhalten haben, als Quelle für die neue Zone hinzu:
$ sudo firewall-cmd --permanent --zone okdlocal --add-source 172.17.0.0/16
Erfolg
Fügen Sie als Nächstes die erforderlichen Regeln zu okdlocal hinzu Bereich:
$ sudo firewall-cmd --permanent --zone okdlocal --add-port 8443/tcp
Erfolg
$ sudo firewall-cmd --permanent --zone okdlocal --add-port 53 /udp
success
$ sudo firewall-cmd --permanent --zone okdlocal --add-port 8053/udp
success
Laden Sie abschließend die Firewall neu, um die neuen Regeln zu aktivieren:
$ sudo firewall-cmd --reload
Erfolg
Stellen Sie sicher, dass die neue Zone und die Regeln vorhanden sind:
$ sudo firewall-cmd --zone okdlocal --list-sources
172.17.0.0/16
$ sudo firewall-cmd --zone okdlocal --list-ports
8443/ TCP 53/udp 8053/udp
Ihr System ist bereit, den Cluster zu starten. Es ist an der Zeit, die OKD-Client-Tools herunterzuladen.
5. Laden Sie die OKD-Client-Tools herunter
So stellen Sie einen lokalen OKD-Cluster mit oc bereit , müssen Sie das OKD-Client-Tools-Paket herunterladen. Für einige Distributionen wie CentOS und Fedora kann dieses Paket als RPM aus den offiziellen Repositories heruntergeladen werden. Bitte beachten Sie, dass diese Pakete möglicherweise dem Aktualisierungszyklus der Distribution folgen und normalerweise nicht die neueste verfügbare Version sind.
Laden Sie für dieses Tutorial das OKD-Client-Paket direkt aus dem offiziellen GitHub-Repository herunter, damit Sie die neueste verfügbare Version erhalten. Zum Zeitpunkt des Schreibens war dies OKD v3.11.
Rufen Sie die OKD-Downloadseite auf, um den Link zu den OKD-Tools für Linux zu erhalten, und laden Sie sie dann mit wget herunter :
$ cd ~/Downloads/
$ wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux -64bit.tar.gz
Dekomprimieren Sie das heruntergeladene Paket:
$ tar -xzvf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
Schließlich, um die Verwendung von oc zu vereinfachen Befehl systemweit, verschieben Sie ihn in ein Verzeichnis, das in Ihrem $PATH enthalten ist Variable. Ein guter Speicherort ist /usr/local/bin :
$ sudo cp openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/oc /usr/local/bin/
Eines der schönsten Features von oc Befehl ist, dass es sich um eine statische einzelne Binärdatei handelt. Sie müssen es nicht installieren, um es zu verwenden.
Prüfen Sie, ob die oc Befehl funktioniert:
$ oc version
oc v3.11.0+0cbc58b
kubernetes v1.11.0+d4cacc0
features:Basic-Auth GSSAPI Kerberos SPNEGO
6. Starten Sie Ihren OKD-Cluster
Sobald Sie alle Voraussetzungen erfüllt haben, starten Sie Ihren lokalen OKD-Cluster, indem Sie diesen Befehl ausführen:
$ oc cluster up
Dieser Befehl stellt eine Verbindung zu Ihrem lokalen Docker-Daemon her, lädt alle erforderlichen Images von Docker Hub herunter und startet die Container. Wenn Sie es zum ersten Mal ausführen, dauert es einige Minuten, bis es abgeschlossen ist. Wenn es fertig ist, sehen Sie diese Nachricht:
... Lange Ausgabe wird übersprungen ...
OpenShift-Server gestartet.
Der Server ist über die Webkonsole erreichbar unter:
https://127.0 .0.1:8443
Sie sind angemeldet als:
Benutzer: Entwickler
Passwort:
Um sich als Administrator anzumelden:
oc login -u system:admin
Greifen Sie auf die OKD-Webkonsole zu, indem Sie den Browser verwenden und zu https://127.0.0.1:8443:
navigieren
Über die Befehlszeile können Sie überprüfen, ob der Cluster ausgeführt wird, indem Sie diesen Befehl eingeben:
$ oc cluster status
URL der Webkonsole:https://127.0.0.1:8443/console/
Konfiguration befindet sich im Hostverzeichnis
Volumes befinden sich im Hostverzeichnis
Persistente Volumes befinden sich im Hostverzeichnis /home/ricardo/openshift.local.clusterup/openshift.local.pv
Daten werden verworfen, wenn Cluster zerstört wird
Sie können auch überprüfen, ob Ihr Cluster funktioniert, indem Sie sich als system:admin anmelden Benutzer und Prüfen verfügbarer Knoten mit oc Befehlszeilentool:
$ oc login -u system:admin
Bei „https://127.0.0.1:8443“ als „system:admin“ mit bestehenden Anmeldedaten angemeldet.
Sie haben Zugriff auf die folgenden Projekte und kann mit 'oc project' zwischen ihnen wechseln:
default
kube-dns
kube-proxy
kube-public
kube-system
* myproject
openshift
openshift-apiserver
openshift-controller-manager
openshift-core-operatoren
openshift-infra
openshift-node
openshift-service-cert-signer
openshift-web-console
Using project "myproject".
$ oc get nodes
NAME STATUS ROLLEN ALTER VERSION
localhost Bereit52m v1.11.0+d4cacc0
Da es sich um einen lokalen All-in-One-Cluster handelt, sehen Sie nur localhost in der Knotenliste.
7. Führen Sie einen Smoke-Test Ihres Clusters durch
Nachdem Ihr lokaler OKD-Cluster ausgeführt wird, erstellen Sie eine Test-App, um sie einem Rauchtest zu unterziehen. Verwenden Sie OKD, um die Beispielanwendung zu erstellen und zu starten, damit Sie sicherstellen können, dass die verschiedenen Komponenten funktionieren.
Melden Sie sich zunächst als Entwickler an Benutzer:
$ oc login -u developer
Angemeldet bei „https://127.0.0.1:8443“ als „developer“ mit vorhandenen Zugangsdaten.
Sie haben ein Projekt auf diesem Server:"myproject"
Projekt "myproject" verwenden.
Sie werden automatisch einem neuen, leeren Projekt mit dem Namen myproject zugewiesen . Erstellen Sie eine Beispiel-PHP-Anwendung basierend auf einem vorhandenen GitHub-Repository wie folgt:
$ oc new-app php:5.6~https://github.com/rgerardi/ocp-smoke-test.git
--> Bild 92ed8b3 (5 Monate alt) im Bildstrom "openshift/" gefunden php" unter dem Tag "5.6" für "php:5.6"
Apache 2.4 mit PHP 5.6
-------------------- ---
PHP 5.6, das als Container verfügbar ist, ist eine Basisplattform zum Erstellen und Ausführen verschiedener PHP 5.6-Anwendungen und -Frameworks. PHP ist eine in HTML eingebettete Skriptsprache. PHP versucht, es Entwicklern leicht zu machen, dynamisch generierte Webseiten zu schreiben. PHP bietet auch eine integrierte Datenbankintegration für mehrere kommerzielle und nichtkommerzielle Datenbankverwaltungssysteme, sodass das Schreiben einer datenbankfähigen Webseite mit PHP ziemlich einfach ist. Die häufigste Verwendung von PHP-Codierung ist wahrscheinlich der Ersatz für CGI-Skripte.
Tags:builder, php, php56, rh-php56
* Ein Quell-Build unter Verwendung des Quellcodes von https://github.com/rgerardi/ocp-smoke-test.git wird erstellt
* Das resultierende Bild wird an das Image-Stream-Tag "ocp-smoke-test:latest" gepusht
* Verwenden Sie „start-build“, um einen neuen Build auszulösen.
* Dieses Image wird in der Bereitstellungskonfiguration „ocp-smoke-test“ bereitgestellt.
* Die Ports 8080/tcp, 8443/tcp werden vom Dienst mit Lastenausgleich versehen "ocp-smoke-test"
* Andere Container können auf diesen Dienst über den Hostnamen "ocp-smoke-test" zugreifen
--> Ressourcen erstellen ...
imagestream. image.openshift.io „ocp-smoke-test“ erstellt
buildconfig.build.openshift.io „ocp-smoke-test“ erstellt
deployconfig.apps.openshift.io „ocp-smoke-test“ erstellt
Dienst "ocp-smoke-test" erstellt
--> Erfolgreich
Build geplant, verwenden Sie 'oc logs -f bc/ocp-smoke -test“, um den Fortschritt zu verfolgen.
Die Anwendung wird nicht angezeigt. Sie können Dienste der Außenwelt zugänglich machen, indem Sie einen oder mehrere der folgenden Befehle ausführen:
'oc Expose svc/ocp-smoke-test'
Führen Sie 'oc status' aus, um Ihre App anzuzeigen.
OKD startet den Build-Prozess, der das bereitgestellte GitHub-Repository klont, die Anwendung kompiliert (falls erforderlich) und die erforderlichen Images erstellt. Sie können den Erstellungsprozess verfolgen, indem Sie sein Protokoll mit diesem Befehl verfolgen:
$ oc logs -f bc/ocp-smoke-test
Klonen von "https://github.com/rgerardi/ocp-smoke-test.git" ...
Commit:391a475713d01ab0afab700bab8a3d7549c5cc27 ( Index.php erstellen)
Autor:Ricardo Gerardi
Datum: Di Okt. 2 13:47:25 2018 -0400
Using 172.30.1.1:5000/ openshift/php@sha256:f3c95020fa870fcefa7d1440d07a2b947834b87bdaf000588e84ef4a599c7546 als s2i builder image
---> Installation der Anwendungsquelle...
=> Beschaffung von 20-copy-config.sh ...
---> 04:53:28 Verarbeitung einer zusätzlichen willkürlichen httpd-Konfiguration, die von s2i bereitgestellt wird ...
=> Sourcing von 00-documentroot.conf ...
=> Sourcing von 50-mpm-tuning.conf ...
=> Sourcing 40-ssl-certs.sh ...
Pushing image 172.30.1.1:5000/myproject/ocp-smoke-test:latest ...
Pushed 1/10 Schichten, 10 % abgeschlossen
Push erfolgreich
Nachdem der Erstellungsprozess abgeschlossen ist, startet OKD die Anwendung automatisch, indem ein neuer Pod basierend auf dem erstellten Image ausgeführt wird. Sie können diesen neuen Pod mit diesem Befehl sehen:
$ oc get pods
NAME READY STATUS RESTARTS AGE
ocp-smoke-test-1-build 0/1 Completed 0 1 m
ocp-smoke-test-1-d8h76 1 1 Läuft 0 7s
Sie können sehen, dass zwei Pods erstellt wurden; Der erste (mit dem Status Abgeschlossen) ist der Pod, der zum Erstellen der Anwendung verwendet wird. Die zweite (mit dem Status Running) ist die Anwendung selbst.
Darüber hinaus erstellt OKD einen Dienst für diese Anwendung. Überprüfen Sie es mit diesem Befehl:
$ oc get service
NAME TYP CLUSTER-IP EXTERNE-IP PORT(S) ALTER
ocp-smoke-test ClusterIP 172.30.232.2418080/TCP 4/TCP 4/TCP 3 vor> Machen Sie diesen Dienst schließlich extern verfügbar, indem Sie OKD-Routen verwenden, damit Sie von einem lokalen Browser aus auf die Anwendung zugreifen können:
$ oc exponieren svc ocp-smoke-test
route.route.openshift.io/ocp-smoke-test exponiert
$ oc get route
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
ocp-smoke-test ocp-smoke-test-myproject.127.0.0.1.nip.io ocp-smoke-test 8080-tcp KeineÜberprüfen Sie, ob Ihre neue Anwendung ausgeführt wird, indem Sie in einem Webbrowser zu http://ocp-smoke-test-myproject.127.0.0.1.nip.io navigieren:
![]()
Sie können den Status Ihrer Bewerbung auch sehen, indem Sie sich bei der OKD-Webkonsole anmelden:
![]()
Weitere Informationen
Weitere Informationen zu OKD finden Sie auf der offiziellen Website, die einen Link zur OKD-Dokumentation enthält.
Wenn Sie zum ersten Mal mit OKD/OpenShift arbeiten, können Sie über das interaktive Lernportal die Grundlagen der Plattform erlernen, einschließlich der Erstellung und Bereitstellung von containerisierten Anwendungen. Eine weitere gute Ressource ist der offizielle YouTube-Kanal von OpenShift.