minikubeを利用9-minikubeでqemu使う
2023年はGKEから派生して、ローカルmacの中で minikube使い始めた。 先月までのminikubeのクラスタは、hyperkitの中で独自のlinuxが動いて、dockerコンテナとしてkubernetesのコントロールプレーンが動いてた。 2024年6月ぐらいからhyperkitが非推奨になったので、脱却して qemuを使い始める 。 今年の下期にm4のmacmini仕入れて使いたいから、qemuで練習始めたる。 minikubeのドライバ指定と、qemu2用のサービス指定 最初にminikubeアンインストールしてhyperkitの入ってた領域も潰した。 もう1回minikubeインストールしてqemuを仮想マシン指定して使い始める。 minikubeのサイトに指定の方法が書いてある。 qemu | minikube minikube.sigs.k8s.io 名前はqemuってあるけど、実際はqemu2をドライバに指定する。 前に一回やってみた けど深くは調べずにあきらめた。 nari@gvis-mac script % minikube config set driver qemu2 よー見たら、socket_vmnetってのを使わなアカンらしい。 え、これrootで動かさなあかんのか。 そういえば、ubuntu24をqemuでbridgeネットワーク使って動かすときには、特権いるみたいなこと書いてるところあったっけ。 ログ捨てたけど、これやっとかんとディスクのマウントがうまくいかんかったし、「トンネリングにいるで」ってある。 とりあえずbrewでインストールやっとく。 1 2 brew install socket_vmnet brew tap homebrew/services せっかくスクリプト化してんのにパスワード打たなアカンのかぁ。 この時点でhyperkitのほうがええなぁ。 クラスタ作り替えのスクリプト 普段はクラスタのバージョンあげるためのスクリプトを作って用意してる。 このへん で手動でやってることをまとめた処理。 それを少しいじって、qemuでのクラスタを用意する。 処理の後半でpv/configmap/serviceの定義もやってる。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 ## ------------------------------------------------------------------------- ## Script Name : 300_minikubeClusterRecreate.sh ## Created by : T.Naritomi ## on : 2023.08.26 ## Updated by : 2024.06.23 ## on : ## Parameters : ## Return Code : 0=Normal End ## Comments : change driver hyperkit -> qemu2 ## ------------------------------------------------------------------------- ## ---define---------------------------------------------------------------- EXEC_HOME=/Users/nari/Documents/personal/script # Execute Home directory MINK_HOME=/Users/nari/Documents/personal/minikube # minikube Home directory LOG_FILE=/Users/nari/Documents/personal/log/300_minikube.log # Log file NEWEST_VER=`minikube config defaults kubernetes-version | head -1 | awk '{ print $2}'` GVIS_CPU=4 GVIS_MEM=6000 GVIS_DSK=90GB ⭐️50GBにしてたのを、qcow2でどうなるかやってみたかったから容量増やした GVIS_DRV=qemu2 ⭐️書き換えた ## ---detail---------------------------------------------------------------- echo '---newest version---' echo ${NEWEST_VER} read -p "--- minikube Data save ready ? ---(y/N):" yn case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac read -p "--- minikube Recreate cluster ready ? ---(y/N):" yn case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac echo '---Recreate start---' rm -f ${LOG_FILE} echo ${LOG_FILE} minikube delete --purge --all ⭐️クラスタ完全削除 ## add socket_vmnet because use qemu2 HOMEBREW=$(which brew) && sudo ${HOMEBREW} services restart socket_vmnet ⭐️sudoせなアカン残念な行、再実行することあるからrestart指定 minikube config set cpus ${GVIS_CPU} minikube config set memory ${GVIS_MEM} minikube config set disk-size ${GVIS_DSK} minikube config set driver ${GVIS_DRV} echo -------- `date +%F_%T` -------- >> ${LOG_FILE} minikube config view >> ${LOG_FILE} minikube delete >> ${LOG_FILE} minikube start --kubernetes-version ${NEWEST_VER} \ --driver=${GVIS_DRV} \ --network socket_vmnet >> ${LOG_FILE} ## --mount --mount-string ${MINK_HOME}/:/minikubeMac >> ${LOG_FILE} ⭐️マウントしたらクラスタ落ちることあるからやめとく cat ${LOG_FILE} sleep 20 ⭐️kubernetesクラスタが安定するまでちょっと一息、こっから下のapplyしてる箇所で永続化領域作ったり他の定義も作ってもらいましょ kubectl config get-contexts kubectl get pod -n kube-system kubectl apply -f ${MINK_HOME}/gvis-PersistentVol-mariadb1011.yaml kubectl apply -f ${MINK_HOME}/gvis-PersistentVol-mariadb1011conf.yaml kubectl apply -f ${MINK_HOME}/gvis-PersistentVol-sv_django-ssl_certs.yaml kubectl apply -f ${MINK_HOME}/gvis-PersistentVol-sv_django-uwsgi-nginx.yaml kubectl apply -f ${MINK_HOME}/gvis-PersistentVol-ubun.yaml kubectl apply -f ${MINK_HOME}/mariadb11-txt-configmap.yaml kubectl apply -f ${MINK_HOME}/sv-django-service.yaml kubectl apply -f ${MINK_HOME}/sv-https-portal-service.yaml kubectl apply -f ${MINK_HOME}/sv-mariadb1011-service.yaml echo -------- `date +%F_%T` -------- >> ${LOG_FILE} minikube dashboard & sleep 300 ⭐️何度かやって必要って思った ls -lh ~/.minikube/machines/minikube ⭐️目で見て確認 ## minikube cp ${MINK_HOME}/nariDockerDat/gvis-pv-ubun.tar.gz /data/ ⭐️ここでコピー処理するとクラスタ停止してまう exit $? qemuでminikube発進 マシンを作ってる途中のファイルを確認してみる。 ...