GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erste Schritte mit OKD auf Ihrem Linux-Desktop

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   Bereit        52m       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.241          8080/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.


Linux
  1. Erste Schritte mit btrfs für Linux

  2. Erste Schritte mit Linux-Firewalls

  3. Erste Schritte mit PiFlash:Starten Sie Ihren Raspberry Pi unter Linux

  4. Erste Schritte mit PostgreSQL unter Linux

  5. Erste Schritte mit SSH unter Linux

Erste Schritte mit Etcher.io

Erste Schritte mit GIT unter Linux

Erste Schritte mit dem Linux-Betriebssystem

Docker-Tutorial – Erste Schritte mit Docker unter Linux

Erste Schritte mit Docker Compose unter Linux

Erste Schritte mit Flutter auf dem Linux-Desktop