ローカルOpenShift環境 - CodeReady Containers 導入について
こんにちは。RGA(リアルグローブ・オートメーティッド)でインフラエンジニアをしている川合です。
先日(2022/2/16)弊社のエンジニアも執筆に加わった技術書「OpenShift徹底入門」の発売記念イベントがあり、私も「OpenShiftの良いところ、導入ポイント」というお題でスピーチさせていただきました。
その中で、OpenShiftの基本を知るための手軽に試せる環境はないか、とのコメントもありましたので、今回はローカルマシン上で利用できるOpenShiftであるCRC (CodeReady Containers)を紹介したいと思います。多少導入までに時間がかかりますがとても手軽に試せますので、ご興味がある方は是非試していただければと思います。
※Windows環境にもインストール可能ですが、安定性悪いようですのでご注意ください。
OpenShiftとCRCの違い
CRCには、OpenShiftと異なる点がいくつかあるのですが、主なものは以下の4点です。
シングルノード(controle planeとworkerが同居)
machine-config, monitoring Operatorが無効化されている
ドメインは *.crc.testing固定
内部IPアドレスは変更不可
ということで、CRCはあくまで勉強用としての利用にとどまります。
以下は関連リンクになります。
公式サイト:https://access.redhat.com/documentation/ja-jp/red_hat_codeready_containers/1.35
参考サイト:https://rheb.hatenablog.com/entry/codeready-containers
インストール説明動画:https://developers.redhat.com/openshift/local-openshift-macos
事前準備
CRCのインストールには、以下のアカウントとハードウェアが必要になります。
Red Hat開発者プログラムアカウント
以下のハードウェア要件が満たせる環境
4コア
9GB RAM
34GB空き容量
ダウンロード
CRCのダウンロードはこちらからできます。
https://console.redhat.com/openshift/downloads
RedHatのアカウントが必要なので先に(https://access.redhat.com/から)アカウントの登録をしてサイトにログインします。
サイトにログイン後、crc (CodeReady Containers) のダウンロードをします。
VMイメージくらいのデータサイズがあるのでストレージの空き容量に気をつけましょう。ダウンロード完了までしばらくかかります。
併せて、最下部にある「Pull secret」(後でインストール時に使用します)もダウンロードしておきます。
インストール
crcのダンロードが完了したら、インストーラーを実行しガイドに従いインストール処理を進めます。
※解凍が必要な場合は解凍します
参考情報:https://access.redhat.com/documentation/ja-jp/red_hat_codeready_containers/1.35/html/getting_started_guide/installation_gsg
インストールが完了したら、ターミナルから「crc」コマンドが使えることを確認します。
❯ crc version
CodeReady Containers version: 1.37.0+3876d27d
OpenShift version: 4.9.10 (bundle installed at /Applications/CodeReady Containers.app/Contents/Resources/crc_hyperkit_4.9.10.crcbundle)
CRCのセットアップ(OpenShift環境構築)
crcコマンドを使って環境の構築をします。
crcダウンロード時に併せてダウンロードした「Pull secret」ファイルの準備をしておきます。
参考情報:https://access.redhat.com/documentation/ja-jp/red_hat_codeready_containers/1.35/html/getting_started_guide/using-codeready-containers_gsg
まず次のコマンドでOpenShift環境のセットアップをします。VMの構築などを行っているためそれなりに時間を要します。
❯ crc setup
上記コマンドの実行が正常に終了したら、次のコマンドを実行してOpenShiftが使用できるようにします。
実行時にダウンロードした「Pull secret」ファイルの設置場所を指定します。
※少し時間かかります。
❯ crc start -p /path/to/pull-secret.txt
INFO Checking if running as non-root
INFO Checking if crc-admin-helper executable is cached
INFO Checking for obsolete admin-helper executable
...
Started the OpenShift cluster.
The server is accessible via web console at:
https://console-openshift-console.apps-crc.testing
Log in as administrator:
Username: kubeadmin
Password: XXXXX-XXXXX-XXXXX-XXXXX
Log in as user:
Username: developer
Password: developer
Use the 'oc' command line interface:
$ eval $(crc oc-env)
$ oc login -u developer https://api.crc.testing:6443
無事実行が完了すれば「oc」コマンドから各種操作ができるようになります。
正常に動作しているかは次のコマンドで確認できます。
❯ crc status
CRC VM: Running
OpenShift: Running (v4.9.10)
Disk Usage: 18.2GB of 32.74GB (Inside the CRC VM)
Cache Usage: 12.64GB
Cache Directory: /Users/kawairyo/.crc/cache
次の記述を「.bash_profile」などに書き込んでおくと、以降「oc」コマンドが実行できるようになります。
eval $(crc oc-env)
#podmanも使用する場合
#eval $(crc podman-env)
OpenShiftの操作
Podが上手く起動できるかなど確認するため、簡単なOpenShiftの操作を行ってみます。
まずはOpenShiftにアクセスできるようにログインします。
❯ eval $(crc oc-env) # .bash_profile 側で処理している場合はこの実行は不要
#非特権アカウントでログイン
❯ oc login -u developer https://api.crc.testing:6443
#接続先クラスターの確認
❯ oc version
Client Version: 4.9.10
Kubernetes Version: v1.22.3+ffbb954
まず、作業環境としてプロジェクトを作成します。
❯ oc new-project demo
次に、アプリケーションのデプロイをします。
❯ oc new-app rails-postgresql-example
コンテナのデプロイ状況は次のコマンドで確かめます。
❯ oc status
#詳細な状況の確認
❯ oc logs -f buildconfig/rails-postgresql-example
デプロイしたPodやリソースの確認は次のコマンドで確認できます。
#全リソースを確認
❯ oc get all
#Podだけ一覧したい場合
❯ oc get pods
ブラウザでも確認できます。FQDNを確認する場合は次のコマンドで確認できます。
「HOST/PORT」の内容が外部からアクセス可能なFQDNです。この場合はこのURLとなります。http://rails-postgresql-example-demo.apps-crc.testing
❯ oc get routes
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
rails-postgresql-example rails-postgresql-example-demo.apps-crc.testing rails-postgresql-example <all> None
確認が完了したのでデプロイしたものを削除します。
※自動でラベルが設定されているため同じラベルのリソースを一括削除します
❯ oc delete all -l app=rails-postgresql-example
プロジェクトを削除します。
❯ oc delete project demo
CRC その他の操作
CRCの停止
❯ crc stop
CRCの環境削除・クリーンアップ
#削除
❯ crc delete
#全削除
❯ crc cleanup
CRCのデバッグ
crc status --log-level debug
以上でCodeReady Containersの導入手順の説明は終わりです。手軽に楽しめるので色々遊んでみてください。
__________________________________
【ご案内】
ITシステム開発やITインフラ運用の効率化、高速化、品質向上、その他、情シス部門の働き方改革など、IT自動化導入がもたらすメリットは様々ございます。
IT業務の自動化にご興味・ご関心ございましたら、まずは一度、IT自動化の専門家リアルグローブ・オートメーティッド(RGA)にご相談ください!
お問合せは以下の窓口までお願いいたします。
【お問い合わせ窓口】
代表窓口:info@rg-automated.jp
URL: https://rg-automated.jp