はじめに
RedHatのサンドボックスでOpenShiftを触ったので覚書です。
kubernetesの基礎知識はあった方がスムーズかと思います。
こちらの学習を始めた時の私のkubernetesの学習状況は、こちら。
本当に基礎ですが、PodやRoute、createとapplyの違いなどはkubernetesの情報をもとに進めました。
サンドボックスは無料ですぐにOpenShiftが使い始められる環境です。利用期限あり。
サンドボックスの詳細は、こちら
RedHatアカウント登録
まずは、以下URLからRedHatアカウントを作成します。
https://developers.redhat.com/about
Sandboxの利用を開始
期間の制限はありますが、無料の使用が可能です。
ここでは開発者サンドボックス(利用期間30日)を利用します。
-
以下URLにアクセスし、「無料トライアルを始める」を押下
https://www.redhat.com/ja/technologies/cloud-computing/openshift/get-started -
開発者サンドボックスの「無料トライアルを始める」を押下
-
以下の画面にて「Get started in the Sandbox」タブの「Launch your Developer Sandbox for Red Hat OpenShift」を押下
-
電話番号を「81」「9011112222」の形式で入力して認証します。(090-1111-2222の電話番号の場合)
-
webコンソールが開きます。
CLIツールのインストール
ツールはバージョンごとに細かく分かれているのでまずはwebコンソールでバージョンを確認します。
-
以下URLにアクセスし、先ほど確認したOpenShiftのバージョンに合致するリンクを押下し、ホスト端末の環境に該当するインストーラーをDL
https://mirror.openshift.com/pub/openshift-v4/clients/ocp/ -
DLしたインストーラーを使って端末にインストール
-
ターミナルを開き以下コマンドでバージョンが確認できればインストール成功
> oc version
CLIツールのログイン
- webコンソールにアクセスし、右上のユーザ名から「ログインコマンドのコピー」を押下
- DevSendBoxを押下
- Deploy Tokenを押下
- Log In with this tokenに表示されたコマンドをコピーしてターミナルで実行するとログインできます
> oc login --token=XXXXXXXXXXXXXXXXX --server=https://api.sandbox.x8i5.p1.openshiftapps.com:6443
Logged into "https://api.sandbox.x8i5.p1.openshiftapps.com:6443" as "ユーザ名" using the token provided.
プロジェクト作成
webコンソールやCLI(oc new-project my-project
)で作成することができますが、
Sandboxでは、新規にプロジェクトを作成することができないため、すでに用意されているプロジェクトを利用します。
webコンソールからアプリを作成してみる
地図が表示できるwebアプリをデプロイします。
-
webコンソールにログインし、左ペインで「Developer」を選択
-
左ペインから「追加」を押下
-
追加できるリソースが表示されます。ここではDocker Hub ImageのPodを追加してみます。「コンテナ-イメージ」を押下
-
以下の情報を入力し、「作成」を押下
外部レジストリーからのイメージ名:docker.io/openshiftroadshow/parksmap-katacoda:1.2.0
名前:任意 -
Podを押下すると表示される以下の画面の「^」でPod数を増加できます。逆は減らせます。
この数値は、Podのあるべき姿なので、2と定義して起動しているものを1つ削除した場合、自動的に追加のPodが起動して2になるようになります。 -
このイメージはすでに「Route」が定義されているため丸の右上のリンクマークを押下するとアプリが確認できます。(地図のアプリです)
CLIからアプリを作成してみる
Jenkinsでパイプライン構築を行ってみます。
こちらの手順は、こちらのブログを参考にしています。
- ターミナルにて以下コマンドでテンプレートの確認。
> oc get templates -n openshift
- ターミナルにて以下コマンドでアプリケーションを作成。今回は表示されたテンプレートの中からJenkinsを選択。
> oc new-app jenkins-ephemeral
3.yamlからPodを作成
> oc create -f https://raw.githubusercontent.com/openshift/origin/master/examples/jenkins/pipeline/nodejs-sample-pipeline.yaml
4.JenkinsPiplineをビルドします。
> oc start-build nodejs-sample-pipeline
5.Routeの確認
>oc get routes
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
jenkins jenkins-yuko-kanai-dev.apps.sandbox.x8i5.p1.openshiftapps.com jenkins <all> edge/Redirect None
nodejs-postgresql-example nodejs-postgresql-example-yuko-kanai-dev.apps.sandbox.x8i5.p1.openshiftapps.com nodejs-postgresql-example <all> None
6.Routeで確認したjenkinsのURL(jenkins-yuko-kanai-dev.apps.sandbox.x8i5.p1.openshiftapps.com
)へアクセスするとJenkinsを確認
nodejs-postgresql-exampleのURLは、サンプルのCRUDアプリへ接続します。
その他のコマンド
yamlの適用(createで使ったyamlからの変更なども)
> oc apply -f pod.yaml
そのほか
おわりに
前段にKubernetesの学習をしていたこともあり、Pod、Routeなどの意味は分かっていましたが、Kubernetesとの違いがあまり分かっていないため学習を進めたいです。
アプリケーションとして追加できる対象はバリエーションが多く、自身の開発状況にあったものを選べないか見てみようと思います。
ありがとうございました。