Centos7にMinishift3.11をインストールする

Centos7.8上にMinishiftを導入したのでそのメモ。
ベアメタル環境にCentos7を入れKVM環境を構築しています。
１つのVMとしてCentos7.8を導入し、そこにMinishiftを導入します。Nested環境となります。

以下の方々の記事を参考にしています。
https://haruka-note.hateblo.jp/entry/20190807_nestedkvm
https://qiita.com/daihiraoka/items/f04ce27d4ddaff1734e0
https://qiita.com/d_studio/items/61002fefde9f3b8bc439

１）KVMでのNest環境設定

前提：ベアメタル環境上で設定を行います。

設定：

/etc/modprobe.d/kvm.conf を作成。
上記kvm.confファイルに

「options kvm_intel nested=1」

を記述し保存。Nested KVMを有効化する。

（一度再起動し）catなどで以下を確認。

cat /sys/module/kvm_intel/parameters/nested

結果「１」となることを確認する。


次に同じくベアメタルサーバー上にて、仮想マシンの設定を追加。
以下のコマンドを実行し編集状態に。

virsh edit (変更対象のVM名)

-----------------
<cpu>
(中略)
<feature policy='require' name='vmx'/>
(中略)
</cpu>
-----------------

保存後、変更対象のVMを一旦終了してから起動。
正常に起動したことで確認。


２）Minishiftの導入

もしWidnowsシステムが入っていないなら（楽なので）導入しておく。

yum group install "GNOME Desktop"
(導入後reboot)

Dockerの導入

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install docker-ce

libvirtとqemu-kvmを追加

yum install libvirt qemu-kvm -y

minishiftインストール

curl -L https://github.com/dhiltgen/docker-machine-kvm/releases/download/v0.10.0/docker-machine-driver-kvm-centos7 > /usr/local/bin/docker-machine-driver-kvm
chmod +x /usr/local/bin/docker-machine-driver-kvm

Minishiftの起動
minishift start --openshift-version v3.11.0 --iso-url centos --cpus 4 \
--memory 12GB --disk-size 60GB

ことのき、仮想サーバーにメモリー割り当てが少ないとErrorとなり起動しなかったため、メモリー割り当てを追加した。

さらに「Could not set oc CLI context for 'minishift' profile: Error during setting 'minishift' as active profile: The specified path to the kube config '/Users/xxxxx/.minishift/machines/minishift_kubeconfig' does not exist」
とエラー表示に遭遇。

以下のを投入し、再び起動することで正常に起動（するはず）

------------------
minishift delete -f
minishift start --profile minishift
------------------

正常に終了すると一連の起動メッセージの終わりの方でポータルログインのためのURLと、アカウント情報が表示されるのでメモ。

--------------

The server is accessible via web console at:
https://192.168.XX.XX:8443/console

--------------

ログインIDは以下の通り。パスワードは何でもよいと・・・

--------------

You are logged in as:
    User:     developer
    Password: <any value>

--------------

管理権限でのアクセスの場合は、

oc login -u system:admin

にてアクセスします。

環境変数定義を行います。以下３つを入力します。
eval $(minishift oc-env)
eval $(minishift docker-env)
source <(oc completion bash)


確認コマンド：
minishift oc-env

結果：
export PATH="/root/.minishift/cache/oc/v3.11.0/linux:$PATH"

確認コマンド：
ls -1 /root/.minishift/cache/oc/v3.11.0/linux

結果：
oc

確認コマンド：
minishift docker-env

結果：
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.XX.XX:2376"
export DOCKER_CERT_PATH="/root/.minishift/certs"

環境情報の確認；
確認コマンド：
 minishift docker-env

結果：
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.XX.XX:2376"
export DOCKER_CERT_PATH="/root/.minishift/certs"

ブラウザログインのための情報の確認；
確認コマンド；
oc login -u developer

結果：

-------------------

Logged into "https://192.168.XX.XXX:8443" as "developer" using existing credentials.

You have one project on this server: "myproject"

Using project "myproject".

-------------------

この情報を元にブラウザでアクセス可能に。
IPはMinishiftが稼働している仮想サーバー自身のIPではないので注意。

Minishift停止する場合、以下のコマンドを実行する。

minishift stop

余談：
導入終わって3.11であることに気づき本タイトルを修正。。
次にCodeReady(4.2相当)を入れることにする。