MacにMinishiftをインストールする
はじめに
手軽にOpenshiftを実行できるminishiftをMacにインストールしてみました。
インストール中に詰まったポイントも合わせて紹介します。
環境
macOS Big Sur 11.6.6
minishift 1.34.3
VirtualBox 6.1.26
インストール手順
minishiftは仮想マシンとしてインストールすることができますが,macOSではhyperkitを使う方法と,VirtualBoxを使用する方法があります。詳細はminishiftの公式ドキュメントを参照してください。
今回はVirtualBox上の仮想マシンとしてインストールしてみます。
インストールの手順は以下です。
- VirtualBoxをインストールする
- minishiftのインストーラをこちらからダウンロード
- インストーラの実行
VirtualBoxをインストールする
brewを使うことで以下のコマンドで簡単にインストールできます。
brew cask install minishift
minishiftのインストーラのダウンロード
上で紹介したリンクから,minishift-1.34.3-darwin-amd64.tgzをダウンロードします。
ダウンロードしたファイルを展開しその中の,minishiftというバイナリファイルを適当なディレクトリに置きます。今回は~/Applications/minishift/というディレクトリを作成し,そこに配置しました。
インストーラの実行
インストーラを配置したディレクトリに移動し,以下のコマンドを実行するだけです。
./minishift start --vm-driver virtualbox
インストールがうまく行くとVirtualBox上にminishiftの仮想マシンが作成されて,自動的に起動されます。
ログ
❯ ./minishift start --vm-driver virtualbox
-- Starting profile 'minishift'
-- Check if deprecated options are used ... OK
-- Checking if https://github.com is reachable ... OK
-- Checking if requested OpenShift version 'v3.11.0' is valid ... OK
-- Checking if requested OpenShift version 'v3.11.0' is supported ... OK
-- Checking if requested hypervisor 'virtualbox' is supported on this platform ... OK
-- Checking if VirtualBox is installed ... OK
-- Checking the ISO URL ... OK
-- Downloading OpenShift binary 'oc' version 'v3.11.0'
53.27 MiB / 53.27 MiB [==============================================================================================================================================] 100.00% 0s-- Downloading OpenShift v3.11.0 checksums ... OK
-- Checking if provided oc flags are supported ... OK
-- Starting the OpenShift cluster using 'virtualbox' hypervisor ...
-- Minishift VM will be configured with ...
Memory: 4 GB
vCPUs : 2
Disk size: 20 GB
Downloading ISO 'https://github.com/minishift/minishift-centos-iso/releases/download/v1.17.0/minishift-centos7.iso'
375.00 MiB / 375.00 MiB [============================================================================================================================================] 100.00% 0s
-- Starting Minishift VM ........................ OK
-- Checking for IP address ... OK
-- Checking for nameservers ... OK
-- Checking if external host is reachable from the Minishift VM ...
Pinging 8.8.8.8 ... OK
-- Checking HTTP connectivity from the VM ...
Retrieving http://minishift.io/index.html ... OK
-- Checking if persistent storage volume is mounted ... OK
-- Checking available disk space ... 1% used OK
-- Writing current configuration for static assignment of IP address ... OK
Importing 'openshift/origin-control-plane:v3.11.0' . CACHE MISS
Importing 'openshift/origin-docker-registry:v3.11.0' . CACHE MISS
Importing 'openshift/origin-haproxy-router:v3.11.0' . CACHE MISS
-- OpenShift cluster will be configured with ...
Version: v3.11.0
-- Pulling the OpenShift Container Image ............. OK
-- Copying oc binary from the OpenShift container image to VM ... OK
-- Starting OpenShift cluster .............................................................
Getting a Docker client ...
Checking if image openshift/origin-control-plane:v3.11.0 is available ...
Pulling image openshift/origin-cli:v3.11.0
E0527 16:01:35.276713 2562 helper.go:173] Reading docker config from /home/docker/.docker/config.json failed: open /home/docker/.docker/config.json: no such file or directory, will attempt to pull image docker.io/openshift/origin-cli:v3.11.0 anonymously
Image pull complete
Pulling image openshift/origin-node:v3.11.0
E0527 16:01:38.514982 2562 helper.go:173] Reading docker config from /home/docker/.docker/config.json failed: open /home/docker/.docker/config.json: no such file or directory, will attempt to pull image docker.io/openshift/origin-node:v3.11.0 anonymously
Pulled 5/6 layers, 85% complete
Pulled 6/6 layers, 100% complete
Extracting
Image pull complete
Checking type of volume mount ...
Determining server IP ...
Using public hostname IP 192.168.99.100 as the host IP
Checking if OpenShift is already running ...
Checking for supported Docker version (=>1.22) ...
Checking if insecured registry is configured properly in Docker ...
Checking if required ports are available ...
Checking if OpenShift client is configured properly ...
Checking if image openshift/origin-control-plane:v3.11.0 is available ...
Starting OpenShift using openshift/origin-control-plane:v3.11.0 ...
I0527 16:01:52.836027 2562 config.go:40] Running "create-master-config"
I0527 16:01:54.937045 2562 config.go:46] Running "create-node-config"
I0527 16:01:55.755186 2562 flags.go:30] Running "create-kubelet-flags"
I0527 16:01:56.053252 2562 run_kubelet.go:49] Running "start-kubelet"
I0527 16:01:56.197776 2562 run_self_hosted.go:181] Waiting for the kube-apiserver to be ready ...
I0527 16:02:39.207825 2562 interface.go:26] Installing "kube-proxy" ...
I0527 16:02:39.208440 2562 interface.go:26] Installing "kube-dns" ...
I0527 16:02:39.208446 2562 interface.go:26] Installing "openshift-service-cert-signer-operator" ...
I0527 16:02:39.208451 2562 interface.go:26] Installing "openshift-apiserver" ...
I0527 16:02:39.208471 2562 apply_template.go:81] Installing "openshift-apiserver"
I0527 16:02:39.209350 2562 apply_template.go:81] Installing "kube-proxy"
I0527 16:02:39.210082 2562 apply_template.go:81] Installing "kube-dns"
I0527 16:02:39.210182 2562 apply_template.go:81] Installing "openshift-service-cert-signer-operator"
I0527 16:02:42.144399 2562 interface.go:41] Finished installing "kube-proxy" "kube-dns" "openshift-service-cert-signer-operator" "openshift-apiserver"
I0527 16:05:06.248964 2562 run_self_hosted.go:242] openshift-apiserver available
I0527 16:05:06.249523 2562 interface.go:26] Installing "openshift-controller-manager" ...
I0527 16:05:06.249536 2562 apply_template.go:81] Installing "openshift-controller-manager"
I0527 16:05:08.605464 2562 interface.go:41] Finished installing "openshift-controller-manager"
Adding default OAuthClient redirect URIs ...
Adding registry ...
Adding router ...
Adding persistent-volumes ...
Adding centos-imagestreams ...
Adding sample-templates ...
Adding web-console ...
I0527 16:05:08.619839 2562 interface.go:26] Installing "openshift-image-registry" ...
I0527 16:05:08.619845 2562 interface.go:26] Installing "openshift-router" ...
I0527 16:05:08.619849 2562 interface.go:26] Installing "persistent-volumes" ...
I0527 16:05:08.619854 2562 interface.go:26] Installing "centos-imagestreams" ...
I0527 16:05:08.619858 2562 interface.go:26] Installing "sample-templates" ...
I0527 16:05:08.619862 2562 interface.go:26] Installing "openshift-web-console-operator" ...
I0527 16:05:08.620046 2562 apply_template.go:81] Installing "openshift-web-console-operator"
W0527 16:05:08.620864 2562 create_secret.go:78] Error reading $HOME/.docker/config.json: open /home/docker/.docker/config.json: no such file or directory, imagestream import credentials will not be setup
I0527 16:05:08.620882 2562 apply_list.go:67] Installing "centos-imagestreams"
I0527 16:05:08.620969 2562 interface.go:26] Installing "sample-templates/nodejs quickstart" ...
I0527 16:05:08.620974 2562 interface.go:26] Installing "sample-templates/rails quickstart" ...
I0527 16:05:08.620978 2562 interface.go:26] Installing "sample-templates/mariadb" ...
I0527 16:05:08.620981 2562 interface.go:26] Installing "sample-templates/mysql" ...
I0527 16:05:08.620984 2562 interface.go:26] Installing "sample-templates/cakephp quickstart" ...
I0527 16:05:08.620988 2562 interface.go:26] Installing "sample-templates/dancer quickstart" ...
I0527 16:05:08.620991 2562 interface.go:26] Installing "sample-templates/django quickstart" ...
I0527 16:05:08.620994 2562 interface.go:26] Installing "sample-templates/jenkins pipeline ephemeral" ...
I0527 16:05:08.620998 2562 interface.go:26] Installing "sample-templates/sample pipeline" ...
I0527 16:05:08.621001 2562 interface.go:26] Installing "sample-templates/mongodb" ...
I0527 16:05:08.621004 2562 interface.go:26] Installing "sample-templates/postgresql" ...
I0527 16:05:08.621048 2562 apply_list.go:67] Installing "sample-templates/postgresql"
I0527 16:05:08.621129 2562 apply_list.go:67] Installing "sample-templates/nodejs quickstart"
I0527 16:05:08.621190 2562 apply_list.go:67] Installing "sample-templates/rails quickstart"
I0527 16:05:08.621250 2562 apply_list.go:67] Installing "sample-templates/mariadb"
I0527 16:05:08.621346 2562 apply_list.go:67] Installing "sample-templates/mysql"
I0527 16:05:08.621406 2562 apply_list.go:67] Installing "sample-templates/cakephp quickstart"
I0527 16:05:08.621462 2562 apply_list.go:67] Installing "sample-templates/dancer quickstart"
I0527 16:05:08.621560 2562 apply_list.go:67] Installing "sample-templates/django quickstart"
I0527 16:05:08.621616 2562 apply_list.go:67] Installing "sample-templates/jenkins pipeline ephemeral"
I0527 16:05:08.621670 2562 apply_list.go:67] Installing "sample-templates/sample pipeline"
I0527 16:05:08.621728 2562 apply_list.go:67] Installing "sample-templates/mongodb"
I0527 16:05:18.062326 2562 interface.go:41] Finished installing "sample-templates/nodejs quickstart" "sample-templates/rails quickstart" "sample-templates/mariadb" "sample-templates/mysql" "sample-templates/cakephp quickstart" "sample-templates/dancer quickstart" "sample-templates/django quickstart" "sample-templates/jenkins pipeline ephemeral" "sample-templates/sample pipeline" "sample-templates/mongodb" "sample-templates/postgresql"
I0527 16:06:06.346048 2562 interface.go:41] Finished installing "openshift-image-registry" "openshift-router" "persistent-volumes" "centos-imagestreams" "sample-templates" "openshift-web-console-operator"
Login to server ...
Creating initial project "myproject" ...
Server Information ...
OpenShift server started.
The server is accessible via web console at:
https://192.168.99.100:8443/console
You are logged in as:
User: developer
Password: <any value>
To login as administrator:
oc login -u system:admin
-- Exporting of OpenShift images is occuring in background process with pid 2680.
minishiftへのアクセス
ログの最後に表示されているULIへブラウザからアクセスすることでminisfhitへログインできます。
Userはdeveloper,Passwordは初期状態では設定されていないので,自分の好きなpasswordを入力します。
以下の画面が表示されてログイン成功です。
インストールは以上で完了です。
以下はインストール中に詰まったポイントを紹介します。
minishiftの実行に失敗する
以下のようなエラーになりインストールに失敗しました。
❯ ./minishift start --vm-driver virtualbox
-- Starting profile 'minishift'
省略
Error starting the VM: Error creating the VM. Error creating machine: Error in driver during machine creation: Error setting up host only network on machine start: /usr/local/bin/VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.99.1 --netmask 255.255.255.0 failed:
VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp
どうもVirtualBoxのバージョンが原因のようで,初めは最新バージョン(6.1.34)を使用していたのですが,6.1.24に落とすことで解決しました。(こちらのページを参考にしました。)
また,minishiftのインストールをやり直す際には,ホームディレクトリに作成されている.minishiftのディレクトリを一旦削除する必要があります。
rm -rf ~/.minishift
おわりに
正式なOpenshiftを個人の環境にインストールするのはかなり大変ですが,minishiftなら手軽にインストールできてお手軽に試す分にはよさそうです。
参考リンクまとめ
Minishift Releases: https://github.com/minishift/minishift/releases
Minishift公式ドキュメント: https://docs.okd.io/3.11/minishift/getting-started/index.html
Discussion