概要
OpenShift は簡単に言ってしまえば kubernetes のエンタープライズ版になります
実際はライセンスを購入する必要がありますが簡単に試せる minishift というツールがあったので試してみました
環境
- macOS 10.13.2
- minishift v1.14.0+1ec5877
- VirtualBox 5.1.30r118389
インストール
- brew cask install minishift
今回は Mac なのでこれでインストールできます
minishift サーバの起動
minishift start --vm-driver=virtualbox
VirtualBox 上に minishift サーバ兼コンテナホスト VM を 1 つ立ててくれます
OS は minishift-b2d-iso という専用の OS を使っているようです
ISO やバイナリ、イメージのダウンロードが実行されるのである程度時間がかかります
Mac 上に Openshift 上のコンテナホストおよびコンテナを制御する oc コマンドがインストールされているので以下のコマンドで PATH に通します
eval $(minishift oc-env)
これで oc コマンドが使えるようになります
一応確認で oc version
と打ってみてください
後述している証明書のエラーが出なければ完了です
minishift サーバ確認
VirtualBox 上に構築された VM の中を確認してみましょう
- minishift ssh
で boot2docker のコンテナホストにログインしましょう
docker ps -a
で確認するとすでにいくつかのコンテナが起動しているかと思います
minishift を動作させるのに必要なコンテナになるのでそのままにしておきます
管理画面
https://192.168.99.100:8443
にアクセスしてみましょう
192.168.99.100 は構築した minishift サーバのアドレスです
デフォルトは developer ユーザもしくは system ユーザでログインできます
developer ユーザはパスワードなしになっています
system ユーザのパスワードは「admin」です
まだ何もないですが以下のような UI が表示されるはずです
コンテナを起動してみる
先の程の system ユーザを使って作業します
Mac 上の oc コマンドを使って制御します
まずはログインします
ログインしないで作業すると error: Error from server (Forbidden)
というエラーになり進みません
- oc login -u system
パスワードは admin と入力してください
次に test という名前のプロジェクトを作成します
ちなみにコマンドからプロジェクトを作成すると管理画面でも確認することができます
- oc new-project test
- oc project test
ログイン、プロジェクトの選択できたらアプリを作成します
アプリを作成するとコンテナも作成されます
oc new-app https://github.com/openshift/nodejs-ex -l name=myapp
-l オプションでラベルを付与することであとで削除しやすくしておきます
イメージの push などがあるので多少時間がかかります
コンテナができているか確認してみましょう
oc get pods
NAME READY STATUS RESTARTS AGE
nodejs-ex-1-build 0/1 Completed 0 3m
nodejs-ex-1-t9z5s 1/1 Running 0 9s
nodejs-ex-1-t9z5s
というアプリ陽のコンテナが作成されました
build コンテナは Complelted になっていれば OK です
build コンテナのログを確認してみましょう
oc logs -f bc/nodejs-ex
これで「Push successful」 になっていれば OK です
OpenShift 内にあるプライベートリポジトリにイメージを push してそこからコンテナを起動しています
ちなみに bc は buildconfigs
の略で OpenShift ではこれをリソースと読んでいます
リソースには様々な種類あり例えば dc は deploymentconfigs
の略になります
ちなみに先ほどの new-app で buildconfigs, builds, imagestreams, deploymentconfigs, po, rc, svc のリソースが作成されています
外部からアクセスできるようにする
あとは外部からアクセスできるようにするだけです
- oc expose svc/nodejs-ex
これで OK です
内部に DNS がありドメインを振ってくれています
- oc status
でアクセスする URL が確認できます
http://nodejs-ex-test.192.168.99.100.nip.io to pod port 8080-tcp (svc/nodejs-ex)
dc/nodejs-ex deploys istag/nodejs-ex:latest <-
bc/nodejs-ex source builds https://github.com/openshift/nodejs-ex on openshift/nodejs:6
deployment #1 deployed 4 minutes ago - 1 pod
動作確認
内部のドメインにアクセスしてみましょう
http://nodejs-ex-test.192.168.99.100.nip.io
するとアプリにアクセスできると思います
minishift openshift service nodejs-ex --in-browser -n test
でも確認できます
後処理
oc delete all -l name=myapp
で一通りのリソースを削除後
- minishift stop
で OK です
サーバも不要な場合は minishift delete
してください
Tips
Unable to connect to the server: x509: certificate signed by unknown authority
oc コマンド実行時に Unable to connect to the server: x509: certificate signed by unknown authority
というエラーが出た場合には ~/.kube
ファイルを一旦削除してから minishift start するようにしてください
どうやら oc コマンドが .kube ディレクトリを見ているようで同じホスト上で minikube を先に実行していると .kube ディレクトリがすでに出来ているようで minishift 用の .kube ディレクトリができていないみたいです
またすでに minishift start してしまっている場合は一旦 delete して再度 start する必要があります
- minishift stop
- minishift delete
rm -rf ~/.minishift
rm -rf ~/.kube
- minishift start
oc login 時の注意
またログインする際に oc login -u system:admin
という感じでログインするとユーザ名が「system:admin」という名前になってしまい管理画面などでプロジェクトを確認することができません
パスワードを指定する場合は -p
オプションで指定するので注意してください
もしログイン先が間違っていると minishift openshift service nodejs-ex --in-browser -n test
したときもそんなプロジェクトないと言われてエラーになってしまいます
コマンド
すべてのリソースを確認
- oc get all
リソースの詳細を確認
- oc describe svc/nodejs-ex
指定したリソースの取得
- oc get svc
現在のプロジェクトの確認
- oc project
最後に
minishift を Mac + VirtualBox で試してみました
名前からピンと来ている人はいると思いますが minishift は minikube の fork プロジェクトです
コマンドなども少し似ています
なので minikube に慣れている人であれば minishift は簡単に理解できると思います
まだ軽くしか触っていないので詳しくは不明ですが kubernetes にユーザ管理やプロジェクトの概念が追加されている感じです
また事前に準備されているカテゴリからアプリを簡単に展開することもできます
イメージ的には Rancher に近い感じだと思います
0 件のコメント:
コメントを投稿