Installation und Konfiguration von OpenShift Origin PaaS-Server unter Ubuntu 20.04

OpenShift ist eine freie, quelloffene und Cloud-Entwicklungsplattform als Service (Platform as a Service, PaaS), die von Red Hat entwickelt wurde und es den Entwicklern ermöglicht, ihre Anwendungen auf einer Cloud-Infrastruktur zu entwickeln und bereitzustellen. Es ist eine Community-Distribution von Kubernetes und ermöglicht schnellere Entwicklungs- und Release-Zyklen für Anwendungen. Sie wird mit einer einfachen und leicht zu bedienenden Webschnittstelle geliefert, mit der Sie die Container-Ressourcen, den Container-Zustand, die Knoten, auf denen sich die Container befinden, die IP-Adressen der Knoten usw. überwachen können.

In diesem Tutorial werden wir erklären, wie man OpenShift Origin auf einem Ubuntu 20.04-Server installiert.

Voraussetzungen

  • Ein Server mit Ubuntu 20.04.
  • Auf Ihrem Server ist ein Root-Passwort konfiguriert.

Docker CE installieren

Zuerst müssen Sie das Docker-CE in Ihrem System installieren, um alle OKD-Dienste in Docker-Containern ausführen zu können. Standardmäßig ist die neueste Version des Docker CE im Standard-Repository von Ubuntu 20.04 verfügbar. Sie können sie installieren, indem Sie einfach den folgenden Befehl ausführen:

apt-get install docker.io -y

Sobald der Docker installiert ist, starten Sie den Docker-Dienst und aktivieren Sie ihn beim Booten mit dem folgenden Befehl:

systemctl start docker
systemctl enable docker

Sie können den Status des Docker-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status docker

Sie sollten die folgende Ausgabe sehen:

? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-05-29 12:25:47 UTC; 2s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 48433 (dockerd)
      Tasks: 10
     Memory: 36.5M
     CGroup: /system.slice/docker.service
             ??48433 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215078550Z" level=warning msg="Your kernel does not support swap memory l>
May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215139097Z" level=warning msg="Your kernel does not support cgroup blkio >
May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215169580Z" level=warning msg="Your kernel does not support cgroup blkio >
May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215721944Z" level=info msg="Loading containers: start."
May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.418058547Z" level=info msg="Default bridge (docker0) is assigned with an >
May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.515158041Z" level=info msg="Loading containers: done."
May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.545778830Z" level=info msg="Docker daemon" commit=afacb8b7f0 graphdriver(>
May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.546068892Z" level=info msg="Daemon has completed initialization"
May 29 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.599029431Z" level=info msg="API listen on /run/docker.sock"
May 29 12:25:47 ubuntu2004 systemd[1]: Started Docker Application Container Engine.

Zu diesem Zeitpunkt ist Docker installiert und läuft. Sie können nun mit dem nächsten Schritt fortfahren.

OpenShift Origin herunterladen

Zum Zeitpunkt des Schreibens dieses Tutorials ist die neueste Version von OpenShift Origin v3.11.0. Sie können sie mit dem folgenden Befehl aus dem Git-Hub-Repository herunterladen:

wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz

Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit folgendem Befehl:

tar -xvzf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz

Wechseln Sie als nächstes in das extrahierte Verzeichnis und kopieren Sie die Binärdateien kubectl und oc in das Verzeichnis /usr/local/bin.

cd openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit
cp oc kubectl /usr/local/bin/

Überprüfen Sie als nächstes die Installation des OpenShift-Client-Dienstprogramms mit dem folgenden Befehl:

oc version

Sie sollten die folgende Ausgabe sehen:

oc v3.11.0+0cbc58b
kubernetes v1.11.0+d4cacc0
features: Basic-Auth GSSAPI Kerberos SPNEGO

Als nächstes müssen Sie eine neue Datei daemon.json erstellen und die Verwendung der Insecure Docker-Registrierung zulassen.

nano /etc/docker/daemon.json

Fügen Sie die folgende Zeile hinzu:

 {
     "insecure-registries" : [ "172.30.0.0/16" ]
 }

Speichern und schließen Sie die Datei und starten Sie den Docker-Dienst neu, um die Änderungen zu implementieren.

systemctl restart docker

OpenShif-Herkunfts-Cluster starten

Starten Sie nun den OpenShift Origin-Cluster, indem Sie die IP Ihres Systems angeben:

oc cluster up --public-hostname=your-server-ip

Sobald der Server erfolgreich gestartet ist, sollten Sie die folgende Ausgabe erhalten:

Login to server ...
Creating initial project "myproject" ...
Server Information ...
OpenShift server started.

The server is accessible via web console at:
    https://your-server-ip:8443

You are logged in as:
    User:     developer
    Password: 

To login as administrator:
    oc login -u system:admin

Melden Sie sich nun mit folgendem Befehl als Administrator-Benutzer an Ihrem Cluster an:

oc login -u system:admin

Sobald Sie sich angemeldet haben, sollten Sie folgende Ausgabe erhalten:

Logged into "https://your-server-ip:8443" as "system:admin" using existing credentials.

You have access to the following projects and can switch between them with 'oc project ':

    default
    kube-dns
    kube-proxy
    kube-public
    kube-system
  * myproject
    openshift
    openshift-apiserver
    openshift-controller-manager
    openshift-core-operators
    openshift-infra
    openshift-node
    openshift-service-cert-signer
    openshift-web-console

Using project "myproject".

Wechseln Sie dann mit folgendem Befehl zum Standardprojekt:

oc project default

Ausgabe:

Now using project "default" on server "https://your-server-ip:8443".

Überprüfen Sie nun den aktuellen Status Ihres Projekts mit dem folgenden Befehl:

oc status

Sie sollten die folgende Ausgabe erhalten:

In project default on server https://your-server-ip:8443

svc/docker-registry - 172.30.1.1:5000
  dc/docker-registry deploys docker.io/openshift/origin-docker-registry:v3.11 
    deployment #1 deployed 2 minutes ago - 1 pod

svc/kubernetes - 172.30.0.1:443 -> 8443

svc/router - 172.30.94.157 ports 80, 443, 1936
  dc/router deploys docker.io/openshift/origin-haproxy-router:v3.11 
    deployment #1 deployed 2 minutes ago - 1 pod

View details with 'oc describe /' or list everything with 'oc get all'.

Projekt in OpenShift erstellen

Melden Sie sich jetzt mit dem Entwickler-Benutzer mit dem folgenden Befehl bei OpenShift an:

oc login

Sie werden gebeten, einen Benutzernamen und ein Kennwort wie unten gezeigt einzugeben:

Authentication required for https://your-server-ip:8443 (openshift)
Username: developer
Password: 

Geben Sie Ihren Benutzernamen als Entwickler und das Passwort als Entwickler ein und klicken Sie auf Enter. Sie sollten die folgende Ausgabe sehen: Geben Sie den Benutzernamen als Entwickler und das Passwort ein und drücken Sie Enter:

Login successful.

You have one project on this server: "myproject"

Using project "myproject".

Um ein neues Projekt zu erstellen, führen Sie den folgenden Befehl aus:

oc new-project dev --display-name="Project - Dev" --description="My Project"

Sie sollten die folgende Ausgabe sehen:

Now using project "dev" on server "https://your-server-ip:8443".

You can add applications to this project with the 'new-app' command. For example, try:

    oc new-app centos/ruby-25-centos7~https://github.com/sclorg/ruby-ex.git

to build a new example application in Ruby.

Zugriff auf die OpenShift-Webkonsole

Öffnen Sie nun Ihren Webbrowser und geben Sie die URL https://your-server-ip:8443/console ein. Sie sollten die OpenShift-Anmeldeseite sehen:

Anmeldung für die OpenShift-Webkonsole

Geben Sie Ihren Entwickler-Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche Anmelden. Sie sollten die folgende Seite sehen:

OpenShift Web Console Dashboard

Klicken Sie auf die Schaltfläche Projekt erstellen. Sie sollten die folgende Seite sehen:

Ein Projekt erstellen

Geben Sie alle erforderlichen Informationen ein und klicken Sie auf die Schaltfläche Create, um ein neues Projekt zu erstellen.

Anwendung auf OpenShift Origin bereitstellen

Melden Sie sich zunächst mit dem Entwickler-Benutzer am OpenShift-System an, indem Sie den folgenden Befehl ausführen:

oc login

Melden Sie sich mit dem Entwickler-Benutzer wie unten gezeigt an:

Authentication required for https://your-server-ip:8443 (openshift)
Username: developer
Password: 
Login successful.

You have access to the following projects and can switch between them with 'oc project ':

  * dev
    my-project
    myproject

Using project "dev".

Sobald Sie sich eingeloggt haben, wechseln Sie das Projekt zu dem my-project, das Sie über die OpenShift-Webkonsole erstellt haben:

oc project my-project

Ausgabe:

Now using project "my-project" on server "https://your-server-ip:8443".

Als nächstes überprüfen Sie den Status Ihres aktuellen Projekts mit dem folgenden Befehl:

oc status

Ausgabe:

In project My Project (my-project) on server https://your-server-ip:8443

You have no services, deployment configs, or build configs.
Run 'oc new-app' to create an application.

Als nächstes markieren Sie ein Anwendungsimage aus der Docker-Hub-Registrierung mit dem folgenden Befehl:

oc tag --source=docker openshift/deployment-example:v2 deployment-example:latest

Ausgabe:

Tag deployment-example:latest set to openshift/deployment-example:v2.

Stellen Sie anschließend eine Anwendung mit dem folgenden Befehl in OpenShift bereit:

oc new-app deployment-example

Sie sollten die folgende Ausgabe sehen:

--> Found image da61bb2 (4 years old) in image stream "my-project/deployment-example" under tag "latest" for "deployment-example"

    * This image will be deployed in deployment config "deployment-example"
    * Port 8080/tcp will be load balanced by service "deployment-example"
      * Other containers can access this service through the hostname "deployment-example"
    * WARNING: Image "my-project/deployment-example:latest" runs as the 'root' user which may not be permitted by your cluster administrator

--> Creating resources ...
    deploymentconfig.apps.openshift.io "deployment-example" created
    service "deployment-example" created
--> Success
    Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
     'oc expose svc/deployment-example' 
    Run 'oc status' to view your app.

Überprüfen Sie nun den Status der Anwendungsbereitstellung mit folgendem Befehl: Ausgabe: Sie sollten die folgende Ausgabe sehen:

oc status

Sie sollten die folgende Ausgabe sehen:

In project My Project (my-project) on server https://your-server-ip:8443

svc/deployment-example - 172.30.87.146:8080
  dc/deployment-example deploys istag/deployment-example:latest 
    deployment #1 deployed 36 seconds ago - 1 pod


2 infos identified, use 'oc status --suggest' to see details.

Um Informationen über Ihren Dienst zu erhalten, führen Sie den folgenden Befehl aus:

oc get svc

Ausgabe:

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
deployment-example   ClusterIP   172.30.87.146           8080/TCP   1m

Um detaillierte Informationen zu erhalten, führen Sie den folgenden Befehl aus:

oc describe svc deployment-example

Ausgeben:

Name:              deployment-example
Namespace:         my-project
Labels:            app=deployment-example
Annotations:       openshift.io/generated-by=OpenShiftNewApp
Selector:          app=deployment-example,deploymentconfig=deployment-example
Type:              ClusterIP
IP:                172.30.87.146
Port:              8080-tcp  8080/TCP
TargetPort:        8080/TCP
Endpoints:         172.17.0.10:8080
Session Affinity:  None
Events:            

Sie können den Pods-Status auch mit dem folgenden Befehl überprüfen:

oc get pods

Ausgabe:

NAME                         READY     STATUS    RESTARTS   AGE
deployment-example-1-b9prf   1/1       Running   0          2m

Stellen Sie nun die Anwendung mit dem folgenden Befehl für den externen Zugriff frei:

oc expose service/deployment-example

Ausgabe:

route.route.openshift.io/deployment-example exposed

Um die Routeninformationen anzuzeigen, führen Sie den folgenden Befehl aus:

oc get routes

Sie sollten die folgende Ausgabe erhalten:

NAME                 HOST/PORT                                           PATH      SERVICES             PORT       TERMINATION   WILDCARD
deployment-example   deployment-example-my-project.your-server-ip.nip.io             deployment-example   8080-tcp                 None

Externen Zugriff verifizieren

Jetzt ist Ihre Anwendung für den externen Zugriff bereit. Öffnen Sie Ihren Webbrowser und geben Sie die obige URL http://deployment-example-my-project.your-server-ip.nip.io ein. Sie sollten Ihre Anwendung auf der folgenden Seite sehen:

App bereitgestellt

Wenn Sie Ihre Anwendung löschen möchten, führen Sie den folgenden Befehl aus: Geben Sie Ihren Entwickler-Benutzernamen und Ihr Kennwort ein und klicken Sie auf die Schaltfläche Anmelden:

oc delete all -l app=deployment-example

Sie sollten die folgende Ausgabe sehen: Geben Sie Ihren Entwickler-Benutzernamen und Ihr Passwort ein:

pod "deployment-example-1-b9prf" deleted
replicationcontroller "deployment-example-1" deleted
service "deployment-example" deleted
deploymentconfig.apps.openshift.io "deployment-example" deleted
route.route.openshift.io "deployment-example" deleted

Schlussfolgerung

In diesem Artikel haben wir erfolgreich einen Single-Node OpenShift Origin unter Ubuntu 20.04 installiert und konfiguriert. Sie können nun mit der Entwicklung Ihrer ersten Anwendung in der OpenShift-Umgebung beginnen. Wenn Sie Fragen haben, können Sie mich gerne fragen.

Das könnte Dich auch interessieren …