ギャバンITサービス
お菓子の家が作れるシステムエンジニアです

minikubeを利用6-クラスタのバージョンアップ

前回まで でdjangoアプリの色合い変更まで作ったので、その続き。 2023年6月にはkubernetesのバージョンは1.27が出てたけど、minikubeで使えるクラスタは1.26やった。 7月3週目ぐらいにbrewの更新見てたら1.27が使えるようになってた。 kubernetesの親バージョンリリースがあったら、minikubeには1ヶ月後にリリースがあるんかなぁ。 その後、何回かminikubeのバージョン上げた。 2024年5月中にminikube v1.33.1、Docker 26.0.2 で Kubernetes v1.30.0 2024年4月末にminikube v1.33.0、Docker 26.0.1 で Kubernetes v1.30.0 2023年11月にminikube v1.32.0、Docker 24.0.7 で Kubernetes v1.28.3 2023年8月にminikube v1.31.2、Docker 24.0.4 で Kubernetes v1.28.0-rc.1 brewで見てると定期的なアップデートがある minikubeが使えるkubernetesのバージョンはコマンドラインで確認できる。 brewでkubectlやminikubeのバージョンが上がったのを見たので、もしかしてバージョンあげれるかもって使えるバージョンの確認やってみた。 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 nari@gvis-mac script % minikube config defaults kubernetes-version | more * v1.27.3 * v1.27.2 * v1.27.1 * v1.27.0 * v1.27.0-rc.1 * v1.27.0-rc.0 * v1.27.0-beta.0 * v1.27.0-alpha.3 * v1.27.0-alpha.2 * v1.27.0-alpha.1 * v1.26.6 * v1.26.5 * v1.26.4 * v1.26.3 * v1.26.2 * v1.26.1 * v1.26.0 * v1.26.0-rc.1 * v1.26.0-rc.0 * v1.26.0-beta.0 * v1.26.0-alpha.3 * v1.26.0-alpha.2 * v1.26.0-alpha.1 * v1.25.11 :(中略) これ発見したときのkubectlのバージョンはこんな感じ。 ...

 ⭐️

minikubeを利用5-Djangoの見え方変えた

前回まで で運用スクリプトまで作ったので、その続き。 DjangoのPodを動かすために追加した箇所をメモ。 Djangoの画面見え方を変更 GCE ubuntu22 linuxでは青色基調。 local ubuntu22 linuxでは緑色で見せてる。 macの中のminikubeではグレーにした。 他にもDjango特有の更新したのでそのメモ。 DjangoのPod向け定義 データベース接続先がsettings.pyってファイルに書いてある。 docker-composeで起動する直前に、他にもいくつのかのファイルを上書きコピーしてる。 あとは、見た目の色を変えるためにcssの定義を1セット用意してそれぞれをDjangoのPodが動いてるhyperkitの中で上書きコピーする。 settings.pyを追加で用意(settings-gvis-mac.py) cssファイルにグレーの定義を入れたもの(static/admin/CommonSilverフォルダとその中のgvis.css) settings.pyとcssファイルをDjangoのフォルダにコピーするスクリプト(minikubeCopy.sh) settings.pyの新規作成 ホスト名定義はGV_CONST_HOSTってところに書いてるので、DjangoのPod用に作成。 あとはALLOWED_HOSTSもPodのホスト名のsv-djangoを追記。 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 # ローカルデータベース GV_CONST_HOST = 'gvis-mac.intra.gavann-it.com' GV_CONST_HOST_LCL_HTTP = "http://" + GV_CONST_HOST GV_CONST_HOST_LCL_HTTPS = "https://" + GV_CONST_HOST GV_CONST_DOCKER_HTTPS_PORT = "30443" GV_CONST_DOCKER_HTTP_PORT = "38080" GV_CONST_DBENVNAME = "nariDB_1st" GV_CONST_DBUSERNAME = "nari" GV_CONST_DBPASSWD = "XXXXXXXXX" GV_CONST_DBPORT = "13306" ####################################################################### ALLOWED_HOSTS = [GV_CONST_HOST,'localhost','sv-django'] # Database # https://docs.djangoproject.com/en/3.1/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': GV_CONST_DBENVNAME, # 実際に作ってあるDB名を設定する 'USER': GV_CONST_DBUSERNAME, 'PASSWORD': GV_CONST_DBPASSWD, 'HOST': GV_CONST_HOST, 'PORT': GV_CONST_DBPORT, 'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", }, } } cssファイルにグレーの定義 cssにはボタンの基本的な色設定とか入ってる。 ...

 ⭐️

minikubeを利用4-運用スクリプト作った

前回まで でmariadbとDjangoのPod作ったので、その続き。 運用スクリプト作った 起動と停止ぐらい手入力でもええかもしれんけど、やっぱり作っといたほうが楽やし。 Podに対する処理はそれぞれ作ってある。例として1つずつ置いとく。 minikubeの停止 内容はこんな感じ。 10秒もかからない。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ## ------------------------------------------------------------------------- ## Script Name : 301_minikubeStop.sh ## Created by : T.Naritomi ## on : 2023.06.08 ## Updated by : ## on : ## Parameters : ## Return Code : 0=Normal End ## Comments : ## ------------------------------------------------------------------------- ## ---detail---------------------------------------------------------------- ###LANG=C EXEC_HOME=/Users/nari/Documents/personal/script # Execute Home directory LOG_FILE=/Users/nari/Documents/personal/log/300_minikube.log # Log file KB_HOME=/Users/nari/Documents/personal/minikube echo ${LOG_FILE} echo -------- `date +%F_%T_` -------- >> ${LOG_FILE} minikube stop >> ${LOG_FILE} minikube status exit $? minikubeの起動 内容はこんな感じ。 Mac側のフォルダをhypberkit側にマウントさせてて、その後でPodを全部作り直させてる。 ...

 ⭐️

minikubeを利用3-DjangoのPod作る

前回 はmariadbのPod作ったので、続きでDjangoのPod作る。 目標 今回は「*」のついたところのうち、DjangoとhttpsのPodを作ってく。 *mariadb 3306 ->13306 *Django 8080 ->38080 *https 80,443->30080,30443 *d1 Django用永続化領域 1GiB *d2 mariadb用永続化領域 20GiB 内容はこんな感じ。 アプリのPod(Django) http(8080)で普通に公開するんじゃなく、kubernetesのサービス(38080)を定義してminikubeの親ホスト名でも公開できるようにする。 Djangoのpv/pvc 必要領域は小さくていい。 1GiBもあれば十分。 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 kind: PersistentVolume apiVersion: v1 metadata: name: gvis-pv-django-uwsgi-nginx # PVの名前 labels: type: local spec: storageClassName: manual # PVCと一致させる必要がある capacity: storage: 1Gi accessModes: - ReadWriteOnce # 一つのノードからread/writeでマウントできるモード hostPath: path: "/data/gvis-pv-django-uwsgi-nginx" --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gvis-pv-django-uwsgi-nginx-claim # PVCの名前 spec: # storageClassName=manualのPVを探してマウントする storageClassName: manual accessModes: - ReadWriteOnce resources: requests: storage: 1Gi # PVが持っている容量のうち1GiBを使用する Djangoのdeployment 内容はこんな感じ。 ...

 ⭐️

minikubeを利用2-mariadbのPod作る

Google Cloudのlinuxとローカルlinuxで、それぞれmariadbとdjangoのコンテナ動かしてる。 ローカルlinuxでdjangoの開発しといて、Google Cloudで本利用し、mariadbの永続化領域(pv)をGoogleDrive経由でtar.gzファイルをローカルlinuxに持ってきてる。 これをmacで動かしはじめたminikubeでも構成作れるかやってみる。 kubectlのコマンドライン練習と、マニフェスト作成の練習ね。 目標 前回 はmacにminikube入れてhyperkitの中で動くコンテナをPodに見立てて、xrdpできるPodが常時稼働できるようにした。 今回も最初に目標設定。 イメージ湧かせましょ。 右端のGoogleからローカルlinuxへのコピーこんな感じ。 GCE ubuntu22のxrdpコンテナは、ローカルlinuxにssh経由のポートフォワードさせて、httpsひっかけたDjangoコンテナを使ってる。 Djangoは8080ポートで公開して、それをhttpsで拾わせて30443で公開しxrdpコンテナにローカル端末からrdpしてブラウザ経由で利用。 mariadbの永続化領域がpvにあるから、それをときどきlocal ubuntu22にtar.gzにしてvmdkに持ってくる。 local ubuntu22のxrdpコンテナは、ローカルやから普通にrdp開くし、djangoの開発とかモジュール更新もほぼここで維持。 dockerイメージはここで管理しておいて、mac向けにdocker saveするからmacではそれをdocker loadする。 mac(gvis-mac.intra.gavann-it.com)ではdocker buildせずdocker loadしてイメージを維持し、local ubuntu22のvmdkに置いてあるmariadbの永続化領域をhyperkitの/dataにコピーさせて使う。 hyperkitの/dataへはminikube sshしてwindows側からteraterm経由でコピーするか、--mount-string /Users/nari/Documents/personal/minikube/:/minikubeMacってminikube起動時に指定してマウントポイントを経由してmacからコピーする。 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 +-mac(gvis-mac)----------------+ | +-minikube-------+ | | | | | | +----------------+ | | +-hyperkit-----------------+ | | | +-container-+ | | | | | kubernetes| | | +-local ubuntu22 linux--------+ +-GCE ubuntu22 linux----------+ | | +-----------+ +-/data-+ | | | +-docker---------+ +-vmdk-+ | | +-docker---------+ +--pv--+ | | | +-container-+ | | | | | | +-container-+ | | data | | | | +-container-+ | | data | | | | | *Django | | *d1 | | | | | | Django | | | d1 | | | | | Django | | | d1 | | | | +-----------+ +-------+ | | | | +-----------+ | +------+ | | | +-----------+ | +------+ | | | +-container-+ | | | | | | +-container-+ | | | | | | +-container-+ | | | | | | | *mariadb | | *d2 | | | | | | mariadb | | | d2 | | | | | mariadb | | | d2 | | | | +-----------+ +-------+ | | | | +-----------+ | +------+ | | | +-----------+ | +------+ | | | +-container-+ | | | | | | +-container-+ | | | | | | +-container-+ | | | | | | | xrdp-ubu22| | d3 | | | <- | | | xrdp-ubu22| | | d3 | | <- | | | xrdp-ubu22| | | d3 | | | | +-----------+ +-------+ | | <- | | +-----------+ | +------+ | <- | | +-----------+ | +------+ | | | | | <- | | | | <- | | +-container-+ | | | | +-------+ | | | | | | | | | gitlab | | | | | | mini | | | | | | | | | +-----------+ | | | | +-container-+ | kube | | | | | +-container-+ | | | | +-container-+ | | | | | *https | | Mac | | | | | | https | | | | | | https | | | | | +-----------+ +-------+ | | | | +-----------+ | | | | +-----------+ | | | +--------------------------+ | | +----------------+ | | +----------------+ | +------------------------------+ +-----------------------------+ +-----------------------------+ 今回は「*」のついたところを作って、kubernetesのサービスのマニフェストも用意した。 ...

 ⭐️