学習環境としてOpenShift Localをインストールする
はじめに
OpenShiftの学習者向けに、OpenShift Localのインストール手順と基本的なツールの使い方を説明します。OpenShift Localは開発者向けの環境ではありますが、kubeadminというアカウントでログインをすることで管理者権限が必要なコマンドも操作できることを示します。
OpenShift Localとは
Red Hat OpenShift Localは、無償で使うことができるシングルノードのOpenShiftです。開発者がデスクトップにインストールして開発やテスト用途に使うことが想定されています。この記事では、OpenShift Local 2.43を使ってOpenShiftをインストールします。詳細は以下のドキュメントを参照してください。
OpenShift Localは、通常のOpenShift Container Platformよりも軽量になっているため起動時間が比較的早いです。OpenShift Localは、筆者のノートPC上では 約3分で起動 します(マシンスペックは後述)。OpenShiftの持ち運びができて、必要なときにサクッと起動できるので、デモや調査目的に気軽に使えてとても便利です。
OpenShift Container Platformとの違い
OpenShift Localは本番環境では使えませんし、アップグレードもできません。詳細は以下のドキュメントで確認してください。
OpenShift Localのインストール
OpenShift Localのインストールはとても簡単です。インストールのための最小システム要件の詳細は、以下のドキュメントを参照してください。
最小システム要件
CPUは、AMD64、インテル64、Appleシリコンをサポートします。OpenShift Localを動作させるためのハードウェアリソースは以下になります。
物理 CPU コア 4 個
空きメモリー 10.5 GB
ストレージ領域の 35 GB
OSは、Windows、MacOS、Linuxをサポートします。ただし、Windowsの場合は、Microsoft Windows Home Edition ではインストールできません。ノートPC上への導入を検討されている方は注意してください。
筆者のPC環境
参考までに、この記事を書くにあたり使用した筆者のノートPCのスペックは以下になります。
Fedora Linux 41 (Workstation Edition)
Lenovo ThinkPad X1 Carbon Gen 11
Intel Core i7-1370P
メモリ64GB
ディスク1TB (外付けSSD)
ちなみに、筆者はこのノートPCを普段はWindowsマシンとして使っています。Linuxを使いたい場合は、Fedora Linux 41をインストール済みの極小SSDをUSBの口に指してそこからOSをブートしてLinuxマシンとして使っています。
以後のインストール手順は、Fedora 41上で確認済みです。CoreOSやRHELでも同様の手順でインストールできるはずです。
インストール手順
(1) まずインストールに必要なファイルを以下のサイトからダウンロードします。https://docs.redhat.com/ja/documentation/red_hat_openshift_local/2.43/html/getting_started_guide/index

[Download OpenShift Local] ボタンを押してcrc-linux-amd64.tar.xzという名前のファイルをダウンロードします。
[Download pull secret] ボタンを押してpull-secret.txtという名前のテキストファイルをダウンロードします。
(2) ターミナルを開いて以下のコマンドを実行し、crcコマンドが使えるように準備します。
$ cd ~/Downloads
$ tar xvf crc-linux-amd64.tar.xz
$ mkdir -p ~/bin
$ cp ~/Downloads/crc-linux-*-amd64/crc ~/bin
$ export PATH=$PATH:$HOME/bin
$ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
$ source ~/.bashrc
crc versionコマンドを実行して、crcが使えることを確認しましょう。
$ crc version
CRC version: 2.43.0+268795
OpenShift version: 4.17.1
MicroShift version: 4.17.1
(3) crc setupコマンドを使ってインストールを開始します。インストールの後半で5GB以上のサイズのファイルをネットからダウンロードします。
$ crc setup
CRC is constantly improving and we would like to know more about usage (more details at https://developers.redhat.com/article/tool-data-collection)
Your preference can be changed manually if desired using 'crc config set consent-telemetry <yes/no>'
Would you like to contribute anonymous usage statistics? [y/N]: y
Thanks for helping us! You can disable telemetry with the command 'crc config set consent-telemetry no'.
<略>
INFO Downloading bundle: /home/student/.crc/cache/crc_libvirt_4.17.1_amd64.crcbundle...
5.04 GiB / 5.04 GiB [------------------------------------------------------] 100.00% 1.83 MiB/s
INFO Uncompressing /home/student/.crc/cache/crc_libvirt_4.17.1_amd64.crcbundle
crc.qcow2: 18.27 GiB / 18.27 GiB [---------------------------------------------------] 100.00%
oc: 158.70 MiB / 158.70 MiB [--------------------------------------------------------] 100.00%
Your system is correctly setup for using CRC. Use 'crc start' to start the instance
crcコマンドの使い方
crcコマンド一覧
OpenShift Localの操作は、crcコマンドを使います。crc helpコマンドによってcrcコマンドの一覧を表示します。
$ crc help
Available Commands:
bundle Manage CRC bundles
cleanup Undo config changes
completion Generate the autocompletion script for the specified shell
config Modify crc configuration
console Open the OpenShift Web Console in the default browser
delete Delete the instance
help Help about any command
ip Get IP address of the running OpenShift cluster
oc-env Add the 'oc' executable to PATH
podman-env Setup podman environment
setup Set up prerequisites for using CRC
start Start the instance
status Display status of the OpenShift cluster
stop Stop the instance
version Print version information
インスタンスの起動
crc startコマンドでOpenShift Localの仮想マシンを起動します。crc startを実行すると、初回だけPull Secretを入力するように促されますので、インストールのステップ(1)でダウンロード済みのpull-secret.txtの内容を貼り付けます。
$ crc start
INFO Using bundle path /home/student/.crc/cache/crc_libvirt_4.17.1_amd64.crcbundle
<略>
CRC requires a pull secret to download content from Red Hat.
You can copy it from the Pull Secret section of https://console.redhat.com/openshift/create/local.
? Please enter the pull secret ****************************************************************
INFO Creating CRC VM for OpenShift 4.17.1...
crc startコマンドの最後で、以下のように、コンソールのURLとログイン情報が表示されます。これでOpenShiftを利用できる準備が整いました。
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: XXXXXXXXX
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
OpenShift Localを起動すると、仮想マシンマネージャー上でcrcという名前の仮想マシンが起動していることが確認できます。

crc statusコマンドによって、OpenShift Localのバージョン、メモリ、ディスクの使用状況を調べることができます。
$ crc status
CRC VM: Running
OpenShift: Running (v4.17.1)
RAM Usage: 6.218GB of 10.95GB
Disk Usage: 22.01GB of 32.68GB (Inside the CRC VM)
Cache Usage: 25.24GB
Cache Directory: /home/student/.crc/cache
インスタンスの停止
crc stopコマンドでOpenShift Localの仮想マシンを停止します。コマンド実行後、仮想マシンマネージャー上でcrcという名前の仮想マシンが停止していることが確認できます。
$ crc stop
INFO Stopping kubelet and all containers...
INFO Stopping the instance, this may take a few minutes...
Stopped the instance

インスタンスの削除
OpenShiftの仮想マシンを削除するにはcrc deleteを使います。
$ crc delete
Do you want to delete the instance? [y/N]: y
Deleted the instance
OpenShift Localを完全にアンインストールするコマンドはありません。
~/.crc以下には、以下のようにキャッシュされているファイルが存在しています。これらのファイルを手で削除する必要があります。
$ du -h ~/.crc
8.0K /home/student/.crc/bin/podman
4.0K /home/student/.crc/bin/oc
17M /home/student/.crc/bin
19G /home/student/.crc/cache/crc_libvirt_4.17.1_amd64
24G /home/student/.crc/cache
24G /home/student/.crc
インスタンスの設定
OpenShift Localの初期設定では、CPUは4、メモリは10.5G使うように設定されていますが、環境に合わせてこれらを設定変更することができます。
crc configコマンドで現在のCPU、メモリの設定値の確認ができます。
crc config get cpus
Configuration property 'cpus' is not set. Default value '4' is used
$ crc config get memory
Configuration property 'memory' is not set. Default value '10752' is used
crc config setコマンドで現在の設定値の変更ができます。crc config viewコマンドで、現在の設定値の確認ができます。設定値の変更は次回の起動から反映されます。
$ crc config set cpus 6
Changes to configuration property 'cpus' are only applied when the CRC instance is started.
If you already have a running CRC instance, then for this configuration change to take effect, stop the CRC instance with 'crc stop' and restart it with 'crc start'.
$ crc config set memory 21504
Changes to configuration property 'memory' are only applied when the CRC instance is started.
If you already have a running CRC instance, then for this configuration change to take effect, stop the CRC instance with 'crc stop' and restart it with 'crc start'.
$ crc config view
- consent-telemetry : yes
- cpus : 6
- memory : 21504
Webコンソールの使い方
Webコンソールの起動
crc consoleコマンドによって、Webブラウザーが起動し、OpenShift Webコンソールが開きます。
$ crc console
Opening the OpenShift Web Console in the default browser...
既存のブラウザ セッションで開いています。
Webコンソールに管理者としてログイン
管理コンソールにkubeadminというユーザー名でログインしてみましょう。kubadminのパスワードは、oc startコマンドの完了時に表示されたものを使います。

注意
OpenShift Container Platformインストーラーは、kubeadminという初期管理者アカウントを作成します。OpenShift Localもこの点では同じです。このkubeadminというアカウントはcluster-adminというクラスターの全権限をもったアカウントです。kubeadminは一時的なアカウントです。普通の運用では、インストール後にkubeadminを使って本当の管理者アカウントを作成し、管理作業はそのアカウントで実施するようにします。kubeadminは本当の管理者アカウントを作成したあとは削除します。
ログインが成功するとOpenShiftの管理コンソールが開きます。OpenShift Localではモニタリングの機能が含まれていないので、CPU使用率のようなリソースの使用状況のグラフやアラート機能は使用できません。

TIPS
OpenShift Localのモニタリング機能を有効にするには、
$ crc config set enable-cluster-monitoring true
を設定します。
Webコンソールに開発者としてログイン
OpenShift Localに管理者としてログインするには、developerというユーザー名でログインします。パスワードもdeveloperです。
CLIコマンドの使い方
ocコマンドの準備
ocコマンドは、OpenShiftクラスターにアクセスするCLIです。
OpenShift Localでは、以下のコマンドでocコマンドが使えるようになります
$ crc oc-env
export PATH="/home/student/.crc/bin/oc:$PATH"
# Run this command to configure your shell:
# eval $(crc oc-env)
このコマンドがやっていることは、ocコマンド~/.crc/bin/oc を一時的にPATHに通しているだけです。
ocコマンドで管理者としてログイン
oc loginコマンドを使ってOpenShiftクラスターにkubeadminでログインします。kubeadminのパスワードはcrc startコマンドのログに出力されます。
$ oc login -u kubeadmin -p XXXXXXXX https://api.crc.testing:6443
Login successful.
You have access to 65 projects, the list has been suppressed. You can list all projects with 'oc projects'
Using project "default".
$ oc whoami
kubeadmin
TIPS
crc console --credentialsコマンドを使えば、ocコマンドを使ったログイン方法を教えてくれます。
$ crc console --credentials
To login as a regular user, run 'oc login -u developer -p developer https://api.crc.testing:6443'.
To login as an admin, run 'oc login -u kubeadmin -p XXXXXXXX
https://api.crc.testing:6443'
管理者向け機能確認
ここはOpenShift Localの内部に興味の管理者の方のみ読んでください。以下のコマンドはkubeadminでログインが必要になります。
Clusterversionを調べる
oc get clusterversionコマンドでOpenShiftのバージョンを調べることができます。
$ oc get clusterversion
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS
version 4.17.1 True False 26d Cluster version is 4.17.1
Cluster Operatorを調べる
OpenShiftの内部サービスは、Cluster Operatorと呼ばれるもので管理されています。oc get coコマンドを実行すると、各Operatorのバージョンや状態がわかります。AVAILABLEの列がすべてTrueになっていることを確認します。
$ oc get co
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE
authentication 4.17.1 True False False 13m
config-operator 4.17.1 True False False 26d
console 4.17.1 True False False 13m
control-plane-machine-set 4.17.1 True False False 26d
dns 4.17.1 True False False 13m
etcd 4.17.1 True False False 26d
image-registry 4.17.1 True False False 32m
ingress 4.17.1 True False False 26d
kube-apiserver 4.17.1 True False False 26d
kube-controller-manager 4.17.1 True False False 26d
kube-scheduler 4.17.1 True False False 26d
kube-storage-version-migrator 4.17.1 True False False 32m
machine-api 4.17.1 True False False 26d
machine-approver 4.17.1 True False False 26d
machine-config 4.17.1 True False False 26d
marketplace 4.17.1 True False False 26d
network 4.17.1 True False False 26d
openshift-apiserver 4.17.1 True False False 13m
openshift-controller-manager 4.17.1 True False False 13m
openshift-samples 4.17.1 True False False 26d
operator-lifecycle-manager 4.17.1 True False False 26d
operator-lifecycle-manager-catalog 4.17.1 True False False 26d
operator-lifecycle-manager-packageserver 4.17.1 True False False 14m
service-ca 4.17.1 True False False 26d
Nodeの状態を調べる
oc get nodeコマンドで、OpenShift Localはシングルノードであること、ステータスがReadyであることを確認します。
$ oc get node
NAME STATUS ROLES AGE VERSION
crc Ready control-plane,master,worker 26d v1.30.4
oc get adm node-logsコマンドでノードのログを見ることができます。ここではkubeletのログを覗いてみます。
$ oc adm node-logs crc --unit kubelet | tail -5
Nov 16 10:02:39.473751 crc kubenswrapper[4221]: I1116 10:02:39.473438 4221 kubelet_getters.go:218] "Pod status updated" pod="openshift-etcd/etcd-crc" status="Running"
Nov 16 10:02:39.474409 crc kubenswrapper[4221]: I1116 10:02:39.473786 4221 kubelet_getters.go:218] "Pod status updated" pod="openshift-kube-controller-manager/kube-controller-manager-crc" status="Running"
Nov 16 10:02:39.474409 crc kubenswrapper[4221]: I1116 10:02:39.473812 4221 kubelet_getters.go:218] "Pod status updated" pod="openshift-machine-config-operator/kube-rbac-proxy-crio-crc" status="Running"
Nov 16 10:02:39.474409 crc kubenswrapper[4221]: I1116 10:02:39.473849 4221 kubelet_getters.go:218] "Pod status updated" pod="openshift-kube-scheduler/openshift-kube-scheduler-crc" status="Running"
Nov 16 10:02:39.474409 crc kubenswrapper[4221]: I1116 10:02:39.473864 4221 kubelet_getters.go:218] "Pod status updated" pod="openshift-kube-apiserver/kube-apiserver-crc" status="Running"
モニタリングを有効にしてみる
crc config setでモニタリングを有効にすることができます。モニタリングを有効にすることで、メトリックスを収集し、それらの値をもとにグラフ表示をしたりアラートを出したりすることができます。
$ crc config set enable-cluster-monitoring true
Successfully configured enable-cluster-monitoring to true

oc adm top nodeコマンドを使えば、メトリックスから得たリソースの使用状況を表示することができます。
$ oc adm top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
crc 869m 14% 10097Mi 49%
モニタリングを有効にしてOpenShift Localを再起動してみたところ、起動時間が10分になりました(モニタリング無効のときは3分)。開発者の方は、モニタリング機能をデフォルトのfalseのままにしておいた方が快適だと思います。
おわりに
OpenShift Localのインストール手順とよく使うコマンドを紹介しました。OpenShift Localは、開発者が使う環境というのが想定されてはいますが、kubeadminのアカウントが用意されているので、管理者がOpenShiftの学習用に使うのにも適していると思います。kubeadminでいろいろ試した結果、クラスターが壊れてしまったとしても、crc delete; crc setupをすればよいので気軽に実験ができますね。