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

リダイレクトとパイプ

これも忘れそうなのでメモ。 標準入力から標準出力と標準エラー出力 リダイレクトで使うのは、標準入出力。 イメージ湧かせてみる。 stdin/stdout/stderrには0/1/2ってファイルディスクリプタがついてる。 キーボードが標準入力で、 画面出力が標準出力と標準エラー出力。 1 2 3 4 5 6 +------------+ +----------+ +-----------+ +---------+ -> | 1 - stdout | | keyboard | -> | 0 - stdin | -> | command | +------------+ +----------+ +-----------+ | | +------------+ +---------+ -> | 2 - stderr | +------------+ ゼロから入力されて、1と2に出力される。 ...

 ⭐️

minikubeを利用7-細かい不具合

朝起動して昼頃まで放置したり、時々xrdpのpodへ繋いでPodのデータベースをdjangoアプリ越しに見つけた細かい不具合がある。 なんでかわからんけどエラーになってたり、こうなったらええなぁってことをメモ。 まだkubernetesの理解は深くないから、何年かしたら自力解決できるかもしれん。 ポートフォワードでエラー出る たまにポートフォワードができてないときある(dbつながらんとか)。 httpsのポートフォワードがたまに勝手にエラーになって止まってる(djangoアプリを拾ってるhttpsのpodにつながらんとか)。 1 2 E0829 07:23:36.624039 3267 portforward.go:409] an error occurred forwarding 30443 -> 443: error forwarding port 443 to pod e3445d2af9dd86a800da92e7608887459fafbd9ccfc13db409acbef081a79769, uid : exit status 1: 2023/08/28 22:23:36 socat[11858] E write(5, 0x1109000, 24): Broken pipe error: lost connection to pod なんでBroken pipeになるんやろな。 いきなり表示されるし、まったく発生せんときもある。 minikube特有のポートフォワード使わずに、ingressってのを学んで使ったらええんかなぁ。 できたらええなと思うこと hyperkitの永続化領域(/data)を直接macで開けんからvscodeでdjangoのソースを修正しながら動作確認できん 👉ローカルlinuxのdocker環境はsambaで共有してて、macからvscodeでいじってる。 hyperkitはubuntuでもredhatでもないし、samba入れる方法がわからん(どっかに書いてるんかなぁ) 👉aptとかdnfあらへんし、gcc入ってたらmakeできるかもっと思ったけど、gccも入ってへん。そもそもkubernetesのバージョン上げるためにクラスタ作り直したらhyperkitも吹っ飛ぶから毎回設定することになる。そんなんやってられへん。 コントロールプレーンをdockerコンテナで動かしてるんやから、hyperkitやなくてノードもコンテナで動かしてくれたらええのに 👉軽いlinuxをコンテナとして動かしたら、kubernetesのワーカーノードにしたとき性能劣化しまくるんかなぁ virtualboxとかvmware fusionとか動きが重たいvm使うのイヤ。 秋から来年にかけて m3のmacmini出てくれるかもしれん って記事があった。 今のintel-macとはオサラバして別のアプローチやってみるかなぁ。 今年にm2出てたのに、もう次の出すんやなぁ。 m2のmac miniは売値高いんやけど、メモリ少ないねん。 後でメモリ追加できんらしいし、やっかいやなぁ。 ...

docker-composeよ、さらば(dockerでV2利用)

docker-composeが非推奨になってEOLになってるの忘れてた。 代わりにdocker compose使えってか。 時間かかるかなぁって構えてたけど、あっさり終わった。 さらば、docker-compose。 もうバージョン上げることもない。 何が変わったんやろ GAっていう言い方で解説されてる方がいた。 作者さんありがとう。 Docker Compose V2(Version 2) GA のまとめ #docker-compose - Qiita qiita.com そういえば、今年の春頃、何気にaptしてたらdockerのバージョンが20から23に上がってたことあったな。 なんでか知らんけどコンテナの名前が勝手に変わってた。 作者さんのサイトによると、 コマンドラインが、V1はdocker-composeで次のV2はdocker compose コンテナ名の命名規則が Compose V1 の「_」(アンスコ)から、Compose V2 は「-」(ハイフン)に変わる V1のdocker-compose.ymlファイルは、V2用にcompose.ymlに変更する必要あるけど、今はdocker-compose.ymlでも受け付ける 英文やけど、違いの解説もあった。 Migrate to Compose v2 | Docker Docs docs.docker.com --scaleとか--compatibilityの差があるでって書いてあるけど、使ってへんし関係なさそうやな。 自分の場合は運用シェル作って使ってるから、シェル本来の機能が使えるようにするだけでええ。 変更対処 春頃にコンテナの名前が変わったなって気づいたとき、dockerにcomposeの機能がくっついたのは知らんかった。 バージョン番号が23やったかと思ったら今は24みたい。 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 nari@nafslinux-ubu22:/docker$ docker version Client: Docker Engine - Community Version: 24.0.5 API version: 1.43 Go version: go1.20.6 Git commit: ced0996 Built: Fri Jul 21 20:35:18 2023 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 24.0.5 API version: 1.43 (minimum version 1.12) Go version: go1.20.6 Git commit: a61e2b4 Built: Fri Jul 21 20:35:18 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.22 GitCommit: 8165feabfdfe38c65b599c4993d227328c231fca runc: Version: 1.1.8 GitCommit: v1.1.8-0-g82f18fe docker-init: Version: 0.19.0 GitCommit: de40ad0 nari@nafslinux-ubu22:/docker$ docker composeにもバージョンがある。 ...

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にはボタンの基本的な色設定とか入ってる。 ...

 ⭐️