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

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のサービスのマニフェストも用意した。 ...

 ⭐️

minikubeを利用1-基本設定からxrdp動くPodまで

本利用しているのとは別枠で試験利用してたGCPの300ドルお試し期間が終わった。 kubernetesの環境をローカルで作ってもう少しできないかなって考えたら、minikubeって選択肢があることに気づいた。 ubuntuのvmにdocker環境作って動かしてるけど、intelのmacでコンテナ仮想化ってどうやるんやろ。 勉強のためにやってみた。 目標 まずは目標設定。 イメージ湧かせましょ。 コンテナ仮想化ってのは、そもそもdockerとかcontainerdとか使う。 自分が本利用してるGCPでは、主にubuntuにdocker入れて使ってる。 普段使いのドキュメントやgitもここで維持。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +-GCE ubuntu22 linux----------+ | +-docker---------+ +--pv--+ | | | +-container-+ | | data | | | | | Django | | | d1 | | | | +-----------+ | +------+ | | | +-container-+ | | | | | | | mariadb | | | d2 | | | | +-----------+ | +------+ | | | +-container-+ | | | | | | | xrdp-ubu22| | | d3 | | | | +-----------+ | +------+ | | | +-container-+ | | | | | gitlab | | | | | +-----------+ | | | +----------------+ | +-----------------------------+ 永続化領域のバックアップが楽にできるよう、GCEでVMホスト動かして、そのバックアップをローカルlinuxに持ってきたら即座に同じ処理が動いてる。 pv(persistent volume)をgoogle cloudからtar.gzでgoogle drive経由で抜き出して、ローカルlinuxでコピーを利用運用している。 ...

 ⭐️