OpenShift Origin PaaS Server installeren en configureren op Ubuntu 18.04

OpenShift is een gratis en open-source Platform-as-a-Service ontwikkeld door Red Hat. OpenShift wordt gebruikt om toepassingen te ontwikkelen, te hosten en te schalen in de cloud omgeving. OpenShift biedt ondersteuning voor veel talen zoals, Java EE6, Ruby, PHP, Python, Perl, MongoDB, MySQL, en PostgreSQL. OpenShift is een toonaangevend cloud en enterprise Kubernetes applicatieplatform dat door 1000+ bedrijven vertrouwd wordt. Met OpenShift kun je toepassingen maken, wijzigen en inzetten volgens je eisen.

In deze zelfstudie leren we hoe je single-node OpenShift Origin installeert op een Ubuntu 18.04 LTS server.

Vereisten

  • Een server met Ubuntu 18.04 met minimaal 2 GB RAM.
  • Een root wachtwoord is op de server ingesteld.

Aan de slag

Voor je begint, update je je systeem met de laatste stabiele versie. Je kunt dat doen met het volgende commando:

apt-get update -y
apt-get upgrade -y

Eenmaal bijgewerkt, herstart je je server om alle configuratieveranderingen toe te passen.

Installeer Docker CE

OpenShift draait op Docker container. Je zult dus Docker CE op je server moeten installeren. Bt standaard is de nieuwste versie van Docker CE niet beschikbaar in de Ubuntu 18.04 standaard repository. Je zult dus de Docker CE repository aan je systeem moeten toevoegen.

Om Docker CE te installeren, download je de Docker GPG sleutel en voeg je die toe met het volgende commando:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

Eenmaal toegevoegd, voeg je de Docker CE repository toe met het volgende commando:

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Update en installeer vervolgens Docker CE met het volgende commando:

apt-get update -y
apt-get install docker-ce -y

Eenmaal geïnstalleerd, controleer de status van Docker CE met het volgende commando:

systemctl status docker

Je zou de volgende uitvoer moeten zien:

? docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-08-07 08:06:57 UTC; 33s ago
     Docs: https://docs.docker.com
 Main PID: 19052 (dockerd)
    Tasks: 8
   CGroup: /system.slice/docker.service
           ??19052 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.372084572Z" level=warning msg="Your kernel does not support swap memory limit"
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.372483783Z" level=warning msg="Your kernel does not support cgroup rt period"
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.372711298Z" level=warning msg="Your kernel does not support cgroup rt runtime"
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.373275104Z" level=info msg="Loading containers: start."
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.612047102Z" level=info msg="Default bridge (docker0) is assigned with an IP ad
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.712918131Z" level=info msg="Loading containers: done."
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.938574106Z" level=info msg="Docker daemon" commit=74b1e89 graphdriver(s)=overl
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.939341612Z" level=info msg="Daemon has completed initialization"
Aug 07 08:06:57 hitesh systemd[1]: Started Docker Application Container Engine.
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.989385865Z" level=info msg="API listen on /var/run/docker.sock"

Als je dat gedaan hebt, kun je doorgaan naar de volgende stap.

Installeer OpenShift

Eerst moet je de nieuwste stabiele versie van OpenShift downloaden uit de Git repository. Je kunt de nieuwste versie van OpenShift uit de Git repository downloaden met het volgende commando:

cd /opt
wget https://github.com/openshift/origin/releases/download/v3.9.0/openshift-origin-client-tools-v3.9.0-191fece-linux-64bit.tar.gz

Eenmaal gedownload pak je het gedownloade bestand uit met het volgende commando:

tar -zvxf openshift-origin-client-tools-v3.9.0-191fece-linux-64bit.tar.gz

Verander vervolgens de directory in uitgepakte map en kopieer oc binary naar de /usr/local/bin directory met het volgende commando:

cd openshift-origin-client-tools-v3.9.0-191fece-linux-64bit
cp oc /usr/local/bin/

Je kunt nu de versie van oc verifiëren met het volgende commando:

oc version

Je zou de volgende uitvoer moeten zien:

oc v3.9.0+191fece
kubernetes v1.9.1+a0ce1bc657
features: Basic-Auth GSSAPI Kerberos SPNEGO

Vervolgens moet je het onveilige register toevoegen aan docker daemon. Je kunt dat doen met het volgende commando:

nano /etc/docker/daemon.json

Voeg de volgende regels toe:

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

Sla het bestand op en sluit het, als je klaar bent. Herstart dan de Docker service om de configuratiewijzigingen toe te passen:

systemctl restart docker

Als je dat gedaan hebt, kun je doorgaan naar de volgende stap.

Start OpenShift Cluster

Start nu de OpenShift cluster door je IP adres of hostname op te geven zoals hieronder:

oc cluster up --public-hostname=38.143.69.14

Als de server met succes gestart is, zou je de volgende uitvoer moeten zien:

WARNING: Binding DNS on port 8053 instead of 53, which may not be resolvable from all clients.
Using Docker shared volumes for OpenShift volumes
Using public hostname IP 38.143.69.14 as the host IP
Using 38.143.69.14 as the server IP
Starting OpenShift using openshift/origin:v3.9.0 ...
OpenShift server started.

The server is accessible via web console at:
    https://38.143.69.14:8443

You are logged in as:
    User:     developer
    Password: 

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

Opmerking: Vervang het IP adres van je server door 38.143.69.14.

Log nu in op je cluster met het volgende commando:

oc login -u system:admin

Je zou de volgende uitvoer moeten zien:

Logged into "https://38.143.69.14:8443" as "system:admin" using existing credentials.

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

    default
    kube-public
    kube-system
  * myproject
    openshift
    openshift-infra
    openshift-node
    openshift-web-console
Using project "myproject".

Nu kun je het project veranderen in standaard met het volgende commando:

oc project default

Je zou de volgende uitvoer moeten zien:

Now using project "default" on server "https://38.143.69.14:8443".

Je kunt nu de status van het project controleren met het volgende commando:

oc status

Je zou de volgende uitvoer moeten zien:

In project default on server https://38.143.69.14:8443

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

svc/kubernetes - 172.30.0.1 ports 443->8443, 53->8053, 53->8053

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

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

Maak een Testproject op OpenShift

OpenShift is nu geïnstalleerd en werkt. Log vervolgens in op OpenShift met developer user:

oc login

Geef gebruikersnaam en wachtwoord op als developer / ontwikkelaar en druk op enter. Je zou de volgende uitvoer moeten zien:

Authentication required for https://38.143.69.14:8443 (openshift)
Username: developer
Password: 
Login successful.

You have one project on this server: "myproject"

Using project "myproject".

Maak nu een nieuw testproject aan met het volgende commando:

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

Je zou de volgende uitvoer moeten zien:

Now using project "dev" on server "https://38.143.69.14:8443".

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

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

to build a new example application in Ruby.

Bouw vervolgens een nieuwe Ruby toepassing op dit project met het volgende commando:

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

Controleer nu de status van het huidige project met het volgende commando:

oc status

Je zou de volgende uitvoer moeten zien:

In project test - Dev (dev) on server https://38.143.69.14:8443

svc/ruby-ex - 172.30.16.207:8080
  dc/ruby-ex deploys istag/ruby-ex:latest <- bc="" ruby-ex="" source="" builds="" https:="" github="" com="" openshift="" git="" on="" istag="" ruby-22-centos7:latest="" build="" 1="" running="" for="" 54="" seconds="" -="" c00ecd7:="" merge="" pull="" request="" 25="" from="" pvalena="" master="" honza="" horak="" hhorak="" redhat="">)
    deployment #1 waiting on image or update

Als je dat gedaan hebt, kun je doorgaan naar de volgende stap.

Open de webconsole van OpenShift

Open nu je webbrowser en typ de URL https://your-server-ip:8443. Je wordt doorgestuurd naar de volgende pagina:

OPENSHIFT Inloggen

Geef je ontwikkelaars gebruikersnaam en wachtwoord op. Klik dan op de knop Log in. Je zou het OpenShift standaard dashboard moeten zien op de volgende pagina:

OPENSHIFT Dashboard

Klik nu op het Mijn Project aan de rechterkant. Je zou de volgende pagina moeten zien:

Voeg een project toe in OPENSHIFT

Klik nu op de test – Dev. Je zou je ingezette Ruby app op de volgende pagina moeten zien:

Test de OPENSHIFT app

Gefeliciteerd! je hebt OpenShift met succes geïnstalleerd en geconfigureerd op Ubuntu 18.04 server. Je kunt nu een nieuw project maken en je eigen applicatie inzetten met OpenShift. Voel je vrij om me te vragen als je vragen hebt. Dit artikel wordt niet aanbevolen voor productiegebruik. Voor meer informatie kun je de officiële documentatie bij OpenShift raadplegen.