Comment installer et configurer le serveur PaaS OpenShift Origin sur Ubuntu 20.04

OpenShift est une plateforme en tant que service (PaaS) gratuite, open-source et développée par Red Hat, qui permet aux développeurs de développer et de déployer leurs applications sur une infrastructure en nuage. Il s’agit d’une distribution communautaire de Kubernetes qui permet d’accélérer le développement et les cycles de publication des applications. Il est livré avec une interface Web simple et facile à utiliser qui te permet de surveiller les ressources des conteneurs, la santé des conteneurs, les nœuds sur lesquels les conteneurs résident, les adresses IP des nœuds, etc.

Dans ce tutoriel, nous allons expliquer comment installer OpenShift Origin sur le serveur Ubuntu 20.04.

Conditions préalables

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur ton serveur.

Installer Docker CE

Tout d’abord, tu dois installer Docker CE dans ton système pour exécuter tous les services OKD dans des conteneurs Docker. Par défaut, la dernière version de Docker CE est disponible dans le dépôt par défaut d’Ubuntu 20.04. Tu peux l’installer en exécutant simplement la commande suivante :

apt-get install docker.io -y

Une fois que le Docker est installé, démarre le service Docker et active-le pour qu’il démarre au démarrage avec la commande suivante :

systemctl start docker
systemctl enable docker

Tu peux aussi vérifier l’état du service Docker avec la commande suivante :

systemctl status docker

Tu devrais voir la sortie suivante :

? 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.

À ce stade, Docker est installé et fonctionne. Tu peux maintenant passer à l’étape suivante.

Télécharge OpenShift Origin

Au moment de la rédaction de ce tutoriel, la dernière version d’OpenShift Origin est v3.11.0. Tu peux la télécharger depuis le dépôt Git Hub à l’aide de la commande suivante :

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

Une fois le téléchargement terminé, extrais le fichier téléchargé à l’aide de la commande suivante :

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

Ensuite, change le répertoire pour le répertoire extrait et copie les binaires kubectl et oc dans le répertoire /usr/local/bin.

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

Ensuite, vérifie l’installation de l’utilitaire client OpenShift à l’aide de la commande suivante :

oc version

Tu devrais voir la sortie suivante :

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

Ensuite, tu devras créer un nouveau fichier daemon.json et autoriser l’utilisation du registre Docker Insecure.

nano /etc/docker/daemon.json

Ajoute la ligne suivante :

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

Enregistre et ferme le fichier puis redémarre le service Docker pour mettre en œuvre les modifications.

systemctl restart docker

Démarre le cluster OpenShif Origin

Maintenant, démarre le cluster OpenShift Origin en spécifiant l’IP de ton système :

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

Une fois que le serveur a démarré avec succès, tu devrais obtenir la sortie suivante :

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

Maintenant, connecte-toi à ton cluster en tant qu’utilisateur administrateur avec la commande suivante :

oc login -u system:admin

Une fois connecté, tu devrais obtenir le résultat suivant :

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".

Ensuite, passe au projet par défaut avec la commande suivante :

oc project default

Sortie :

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

Maintenant, vérifie l’état actuel de ton projet avec la commande suivante :

oc status

Tu devrais obtenir le résultat suivant :

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'.

Créer un projet sur OpenShift

Maintenant, connecte-toi à OpenShift avec l’utilisateur développeur avec la commande suivante :

oc login

Tu seras invité à fournir un nom d’utilisateur et un mot de passe comme indiqué ci-dessous :

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

Indique le nom d’utilisateur en tant que développeur et le mot de passe en tant que développeur, puis appuie sur Entrée. Tu devrais voir la sortie suivante :

Login successful.

You have one project on this server: "myproject"

Using project "myproject".

Pour créer un nouveau projet, exécute la commande suivante :

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

Tu devrais voir la sortie suivante :

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.

Accéder à la console Web d’OpenShift

Maintenant, ouvre ton navigateur Web et tape l’URL https://your-server-ip:8443/consol e. Tu devrais voir la page de connexion OpenShift :

Connexion à la console Web d'OpenShift

Indique ton nom d’utilisateur et ton mot de passe de développeur, puis clique sur le bouton Connexion. Tu devrais voir la page suivante :

Tableau de bord OpenShift Web Console

Clique sur le bouton Créer un projet. Tu devrais voir la page suivante :

Créer un projet

Fournis toutes les informations requises et clique sur le bouton Créer pour créer un nouveau projet.

Déployer l’application sur OpenShift Origin

Tout d’abord, connecte-toi à OpenShift avec l’utilisateur développeur en exécutant la commande suivante :

oc login

Connecte-toi avec l’utilisateur développeur comme indiqué ci-dessous :

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".

Une fois connecté, bascule le projet vers le my-project que tu as créé via la console web OpenShift :

oc project my-project

Sortie :

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

Ensuite, vérifie le statut de ton projet actuel avec la commande suivante :

oc status

Sortie :

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.

Ensuite, marque une image d’application à partir du registre de Docker Hub avec la commande suivante :

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

Sortie :

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

Ensuite, déploie une application sur OpenShift avec la commande suivante :

oc new-app deployment-example

Tu devrais voir la sortie suivante :

--> 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.

Maintenant, vérifie l’état du déploiement de l’application avec la commande suivante :

oc status

Tu devrais voir le résultat suivant :

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.

Pour obtenir des informations sur ton service, exécute la commande suivante :

oc get svc

Sortie :

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

Pour obtenir des informations détaillées, exécute la commande suivante :

oc describe svc deployment-example

Sortie :

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:            

Tu peux aussi vérifier l’état des Pods à l’aide de la commande suivante :

oc get pods

Sortie :

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

Maintenant, expose l’application pour un accès externe à l’aide de la commande suivante :

oc expose service/deployment-example

Sortie :

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

Pour afficher les informations sur les itinéraires, exécute la commande suivante :

oc get routes

Tu devrais obtenir la sortie suivante :

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

Vérifier l’accès externe

Maintenant, ton application est prête pour l’accès externe. Ouvre ton navigateur Web et tape l’URL ci-dessus http://deployment-example-my-project.your-server-ip.nip.io. Tu devrais voir ton application sur la page suivante :

App déployée

Si tu veux supprimer ton application, exécute la commande suivante :

oc delete all -l app=deployment-example

Tu devrais voir la sortie suivante :

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

Conclusion

Dans cet article, nous avons installé et configuré avec succès un OpenShift Origin à un seul nœud sur Ubuntu 20.04. Tu peux maintenant commencer à développer ta première application dans l’environnement OpenShift. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...