はじめに
OpenShift
Red Hat社が提供するコンテナオーケストレーションプラットフォームです。
アップストリーム版のKubernetesに対して、エンタープライズ向けの便利機能がいくつか付いたものと理解していいと思います。例えば、様々なクラウド上にクラスタを構築できたり、Operatorの導入がすぐに行えたり、CI/CDとの連携が楽だったり、GUIやCUIの機能が豊富だったり…
詳しくは、以下の記事も参照ください。
Red Hat CodeReady Containers (CRC)
テストや検証目的に、OpenShift 4のクラスタを、ローカルに構築するツールです。
プロダクション環境のように多くのリソースを用意できないけど、OpenShiftで試したいことがあるといった時に使えそうです。
minishiftとの違いは?
手軽にOpenShiftを触りたいと思い、少し調べると、minishift
やCDK
という単語がよく出てきます。これは、OpenShift 3 のクラスタをローカルに構築するためのツールだそうです。
OpenShiftは、3 と 4 では使われているOSSの構成もかなり違うようなので、せっかくなら新しい方を使ってみようと思うわけです。
使ってみる
実際に使ってみます。とはいえ、この公式ブログに沿って、コマンドを打てばすぐできます。
これでOpenShift4試せそう
Red Hat OpenShift 4 on your laptop: Introducing Red Hat CodeReady Containershttps://t.co/8GipCE9wcv— n i s h i p y (@iamnishipy) April 4, 2020
前提条件
前提条件は、公式ドキュメントにも書いてあります。
https://code-ready.github.io/crc/
ハードウェア要件については、以下の通り。
- 4 virtual CPUs (vCPUs)
- 8 GB of memory
- 35 GB of storage space
また、ローカル環境のOSによって、対応するバージョンや、使用するハイパーバイザーの種類が違うようです。
ダウンロード、インストール
以下のサイトからダウンロードできます。ダウンロードには、Red Hatアカウントが必要です。
「MacOS: Download」ボタンをクリックして、ダウンロードします。またクラスタ構築時に、Pull Secret
の値が必要そうなので、どこかに控えておきます。
そして、ダウンロードしてきたファイルを解凍し、PATH
を通します。これで、crcコマンドが使えるようになります。
1 2 3 4 5 |
$ tar xvf crc-macos-amd64.tar.xz $ mv crc-macos-1.12.0-amd64/crc /usr/local/bin/ $ crc version crc version: 1.8.0+0a318dc OpenShift version: 4.3.8 (embedded in binary) |
クラスタ開始
まず下記コマンドで、ホスト側の設定を行います。出力は、環境によって違うと思いますが、最後にSetup is complete,...
と表示されれば準備OKです。
1 2 3 4 5 6 7 8 9 10 |
$ crc setup INFO Checking if oc binary is cached INFO Checking if podman remote binary is cached INFO Checking if CRC bundle is cached in '$HOME/.crc' INFO Checking if running as non-root INFO Checking if HyperKit is installed INFO Checking if crc-driver-hyperkit is installed INFO Checking file permissions for /etc/resolver/testing INFO Checking file permissions for /etc/hosts Setup is complete, you can now run 'crc start' to start the OpenShift cluster |
あとは、crc start
とすれば、クラスタが開始されます。Pull Secretの値を聞かれた場合は、ダウンロードページで取得した値を入れましょう。しばらく待つと、下記のようにクラスタへのログイン情報も出力されるはずです。この間、HyperKitによりCPU使用率が急上昇し、私のMacbookは無事、熱々の鉄板と化しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ crc start INFO Checking if oc binary is cached INFO Checking if podman remote binary is cached INFO Checking if running as non-root INFO Checking if HyperKit is installed INFO Checking if crc-driver-hyperkit is installed INFO Checking file permissions for /etc/resolver/testing INFO Checking file permissions for /etc/hosts INFO Starting CodeReady Containers VM for OpenShift 4.3.8... INFO Verifying validity of the cluster certificates ... INFO Network restart not needed INFO Check internal and public DNS query ... INFO Check DNS query from host ... INFO Starting OpenShift cluster ... [waiting 3m] INFO INFO To access the cluster, first set up your environment by following 'crc oc-env' instructions INFO Then you can access it by running 'oc login -u developer -p developer https://api.crc.testing:6443' INFO To login as an admin, run 'oc login -u kubeadmin -p ********************* https://api.crc.testing:6443' INFO INFO You can now run 'crc console' and use these credentials to access the OpenShift web console Started the OpenShift cluster WARN The cluster might report a degraded or error state. This is expected since several operators have been disabled to lower the resource usage. For more information, please consult the documentation |
CUIで使ってみる
crc start
コマンドの出力通りに操作してみます。crc oc-env
と打って指示に従うと、CRCに同梱されているocコマンドが使えます。
1 2 3 4 5 6 |
$ crc oc-env export PATH="/Users/username/.crc/bin:$PATH" # Run this command to configure your shell: # eval $(crc oc-env) $ eval $(crc oc-env) |
せっかくなので、もう少し触ってみます。
* ログイン
クラスタと同時に作成されるスーパーユーザーkubeadmin
でログインしてみます。
1 2 3 4 5 6 7 8 9 10 11 |
$ oc login -u kubeadmin -p ****************** https://api.crc.testing:6443 Login successful. You have access to 54 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default". $ oc version Client Version: 4.3.10-202003280552-6a90d0a Server Version: 4.3.8 Kubernetes Version: v1.16.2 |
- プロジェクト作成
OpenShiftでは、Project単位でオブジェクトを論理的に分割します。プロジェクトを作成すると、Namespace + α が作成されます。詳しくは別の機会に。
1 2 3 4 5 6 7 8 9 10 |
$ oc new-project first-app Now using project "first-app" on server "https://api.crc.testing:6443". You can add applications to this project with the 'new-app' command. For example, try: oc new-app django-psql-example to build a new example application in Python. Or use kubectl to deploy a simple Kubernetes application: kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node |
- ノード構成確認
MasterとWorkerが相乗りの1ノード構成になっているようですね。
1 2 3 |
$ oc get node NAME STATUS ROLES AGE VERSION crc-45nsk-master-0 Ready master,worker 24d v1.16.2 |
GUIで利用
Webコンソールへアクセスも、crc start
コマンドの出力通りに操作すれば簡単です。
1 2 |
$ crc console Opening the OpenShift Web Console in the default browser... |
ブラウザが自動で開いて、kubeadmin
でログインすると、ダッシュボードが表示されます。CUIでカタカタやるより達成感ありますね。
[Home]-[Project]とクリックしていけば、先ほどCUIで作ったfirst-app
プロジェクトも表示されると思います。
クラスタの停止と削除
クラスタを使わなくなったら、以下のコマンドで停止と削除ができます。
1 2 |
$ crc stop $ crc delete |
さいごに
OpenShiftはRed Hat製品なので、何かしら契約しないと使えないと思っていましたが、今回のようにCRCを使うと、手軽に試すことができます。WindowsやLinuxにも対応しているようなので、みなさんも楽しいOpenShiftライフをお過ごしください!
以上.
コメント