LoginSignup
8
6

More than 3 years have passed since last update.

Red Hat OpenShift on IBM Cloud の無料Hands-onを試してみる - Lab1

Last updated at Posted at 2020-05-25

はじめに

以下の記事を参考に、Red Hat OpenShift on IBM Cloudを試してみたときのログです。
参考: OpenShift on IBM Cloud をデモサイトから無料で試す方法
このデモサイトでは、IBM Cloud上で稼働するOpenShift4.3の環境が一時的にアサインされて、その環境を使ったハンズオンを無料でお手軽に実施できます。
アサインされる環境の利用時間は限られていて、Provisioningされてから4時間で使用できなくなります。1時間単位で3回延長可(すなわち最長7時間は利用可)です。長期にわたって環境を維持できる訳では無いのでまとまった時間を取って実施するのがよいでしょう。

まずはHands on LabsへのアクセスとLab1の実施の所までやってみます。

関連記事

Red Hat OpenShift on IBM Cloud の無料Hands-onを試してみる - Lab1
Red Hat OpenShift on IBM Cloud の無料Hands-onを試してみる - Lab2
Red Hat OpenShift on IBM Cloud の無料Hands-onを試してみる - Lab3

Hands on Labs へのアクセス

以下にアクセスしてRedHat OpenShift on IBM Cloud を選択。
https://www.ibm.com/demos/
image.png

一番下の Hands on Labs for Red Hat OpenShift on IBM Cloudを選択。
image.png

IBM Cloudのアカウントでログイン。
image.png

以下のように、動画やハンズオンのメニューが出てくるので、ここから適宜選択してやってみます。
image.png

Hands on 実施

Lab1

Lab1では、管理コンソールや、アプリのデプロイから稼働までの基本的な流れなどが体験できます。

Lab1で扱う環境の全体像です。
image.png

Lab1の Launch Labをクリック
image.png

しばらくするとActiveになるので再度Launch Labをクリック
image.png

別のタブが開くので、左側のメニューに従ってハンズオンを実施します。
image.png

Exercise1 / Basics

ここでは、IBM Cloud Portalと、OpenShift Web Consoleの画面を確認します。
Exerciseの記述に従って、いくつか画面を確認してみます。

IBM Cloud Portal

左側のガイドに記載されているリンクをクリック
image.png

IBM Cloud の画面が開きます(IBM CloudにログインするとDTE Cloud Platformというデモ用アカウントへのアクセス権限が一時的に付与されて、OpenShiftのクラスターの状況はそこから参照できるようになるようです)。
「概要」のメニューからワーカーノードの数やステータスが確認できます。
image.png

ワーカーノードの確認
image.png

ワーカープールの確認
image.png

OpenShift Web Console

IBM Cloud Portal画面の右上の「OpenShift Webコンソール」をクリックすると、OpenShift Web Consoleが開きます。
Administrator/Developerと、役割に応じてPerspecitiveを切り替えて利用することができます。

Administrator
image.png

Developer
image.png

Number of nodes in the cluster inventory dashboard
image.png

Standard services deployed in the default project
image.png

Operators installed
image.png

Exercise2 / Deploying an application

ここでは、s2i (Source to Image)の流れを確認します。

Developer Perspective - Topology - Project - Create Project選択
image.png

Name, Display Nameを指定
image.png

From Gitを選択
image.png

Git Repo URLにhttps://github.com/svennam92/node-s2i-openshift を指定して、Builder ImageからNode.jsを選択。
image.png

その他デフォルトのまま「Create」クリック
image.png

Build Runningステータスとなり...
image.png

しばらくするとBuild Completeのステータスとなります。
image.png

Nodeのラベルをクリックすると、詳細が表示されます。
Node.jsのアプリが特定のPodで稼働していること、そのPodへのアクセス方法などが確認できます。
右下のRoutesで示されているリンクをクリックします。
image.png

Podで稼働しているNode.jsのアプリケーションにアクセスすることができます。
image.png

ログインしてみます。(任意のユーザーID/パスワードが指定可)
image.png

アプリケーションが使えることが確認できます。
image.png

Exercise3 / Using the command line interface (CLI)

ここでは、CLI(ocコマンド)を使ってみます。

最初にLaunchしたときに接続される右側のターミナルを使います。
image.png

クラスターにログイン

container-lab$ oc login --server https://c100-e.us-south.containers.cloud.ibm.com:3xx2 -u apikey -p 8xxxxx3
Login successful.

You have access to 58 projects, the list has been suppressed. You can list all projects with 'oc projects'

Using project "default".
Welcome! See 'oc help' to get started.

デフォルトプロジェクトの設定

container-lab$ oc project example-health
Now using project "example-health" on server "https://c100-e.us-south.containers.cloud.ibm.com:32642".

ホスト名確認

container-lab$ oc get routes
NAME                   HOST/PORT                                                                                                                       PATH   SERVICES               PORT       TERMINATION   WILDCARD
node-s-2-i-openshift   node-s-2-i-openshift-example-health.dte-ocp4-0t7vlh-915b3b336cabec458a7c7ec2aa7c625f-0000.us-south.containers.appdomain.cloud          node-s-2-i-openshift   8080-tcp                 None

負荷をかけるためのコマンド(無限ループ)
「oc get routes」で取得されるホスト名に対して、1秒毎にCURLの発行を無限に繰り返す。

container-lab$ APP_ROUTE=`oc get routes --no-headers|cut -d' ' -f4`
container-lab$ while sleep 1; do curl -s http://$APP_ROUTE/info; echo "";done
{"personal":{"name":"Ralph DAlmeida","age":38,"gender":"male","street":"34 Main Street","city":"Toronto","zipcode":"M5H 1T1"},"medications":["Metoprolol","ACE inhibitors","Vitamin D"],"appointments":["2018-01-15 1:00 - Dentist","2018-02-14 4:00 - Internal Medicine","2018-09-30 8:00 - Pediatry"]}
{"personal":{"name":"Ralph DAlmeida","age":38,"gender":"male","street":"34 Main Street","city":"Toronto","zipcode":"M5H 1T1"},"medications":["Metoprolol","ACE inhibitors","Vitamin D"],"appointments":["2018-01-15 1:00 - Dentist","2018-02-14 4:00 - Internal Medicine","2018-09-30 8:00 - Pediatry"]}
{"personal":{"name":"Ralph DAlmeida","age":38,"gender":"male","street":"34 Main Street","city":"Toronto","zipcode":"M5H 1T1"},"medications":["Metoprolol","ACE inhibitors","Vitamin D"],"appointments":["2018-01-15 1:00 - Dentist","2018-02-14 4:00 - Internal Medicine","2018-09-30 8:00 - Pediatry"]}
{"personal":{"name":"Ralph DAlmeida","age":38,"gender":"male","street":"34 Main Street","city":"Toronto","zipcode":"M5H 1T1"},"medications":["Metoprolol","ACE inhibitors","Vitamin D"],"appointments":["2018-01-15 1:00 - Dentist","2018-02-14 4:00 - Internal Medicine","2018-09-30 8:00 - Pediatry"]}
...

後のExerciseで使うので、一旦ここでは停止させておきます。

Exercise4 / Logging and events

ここではLogの情報などを確認してみます。

OpenShift Web ConsoleからNode.jsが稼働しているPodを選択します。
image.png

Logをクリック
image.png

メッセージが確認できます。
image.png

Advanced - Eventメニューからは各種イベントの情報(Podの生成など)が確認できます。
image.png

Exercise5 / Metrics and Dashboards

ここではメトリック情報などを確認します。

OpenShift Web Consoleにて Monitoring - Dashboardsを選択します。
image.png

Log in with Openshiftをクリック
image.png

Allow selected permissionsをクリック
image.png

image.png

Grafanaに接続されます。
Homeをクリック
image.png

Kubernetes / Compute Resources / Namespace (Workloads)を選択
image.png

namespaceからexample-healthを選択。
CPU,Memory状況などが確認できます。
image.png

Openshift Web Console - Monitoring - Metricsのメニューでは、PrometheusのUIが提供されており、Prometheus Query Languageを使用したメトリックス情報可視化が行えます。
image.png

Exercise6 / Scaling the application

ここではアプリケーションのスケーリングを試してみます。
Exercise3の負荷をかけるコマンドを裏で実行しておきます。

OpenShift Web ConsoleのWorkloads - Deploymentsのメニューを選択し、node-s-2-i-opensiftを選択
image.png

右側のActionsのプルダウンからEdit Deploymentを選択
image.png

resources{}部分を以下のように修正。

          resources:
            limits:
              cpu: 30m
              memory: 100Mi
            requests:
              cpu: 3m
              memory: 40Mi

以下のイメージ。
image.png

変更をSaveしてReloadします。
image.png

この修正では、コンテナに対してリソース(CPU,Memory)の割り当てや制限を追加で指定しています。
参考:
Kubernetes - コンテナおよびPodへのCPUリソースの割り当て
KubernetesのResource RequestsとResource Limitsについて

変更されたDeploymentのstart/stopをEventで確認できます。
image.png

Workload - Deployments - node-s-2-i-openshiftを選択し、pod数が1であることを確認します。
image.png

次に、Workloads - Horizontal Pod Autoscales メニューから、Create Horizontal Pod Autoscalerをクリック
image.png

Autoscaleの定義を以下のように更新してCreateをクリックします。

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: patient-hpa
  namespace: example-health
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: node-s-2-i-openshift
  minReplicas: 1
  maxReplicas: 10
  metrics:
    - type: Resource
      resource:
        name: cpu
        targetAverageUtilization: 1

image.png

参考:
Kubernetes - Horizontal Pod Autoscaler Walkthrough
Kuberentes の水平オートスケール
KubernetesのPodとNodeのAuto Scalingについて

DeoploymentのPod数を確認すると、徐々にスケールアップされてPod数が増えていくのが分かります。
image.png

Grafanaの状態
image.png

最終的にPodの数は10まで増えます。
image.png

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6