unix/linuxは1番目のプロセスが起動してから、ツリー構造でいっぱい処理が起動してく。花火がパーっと上がる感じ。
その1つ1つを追いかけるのはけっこうたいへん。
見落としそうにもなるし。
なるべく直観的に、なるべく素早く状況をつかむためのスクリプト。
sshしたらほぼ必ず結果見る。
sshしたコマンドラインでonlchkって入力すると、サービスが動いているかどうかを教えてくれて、そのバージョンも拾う。
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
|
nari@nafslinux-ubu22:/gvis/script/proc$ onlchk
... linux CHECK END Description: Ubuntu 22.04.1 LTS
... httpd CHECK END Server version: Apache/2.4.52 (Ubuntu)
... smb CHECK END Version 4.15.9-Ubuntu
... docker CHECK END Docker version 20.10.17, build 100c701
=== Google STATUS===
...rtx1210-status >
...rtx1210-status Current status is disabled.
...Google -status
...Google -status jelly-fslinux us-east1-b e2-standard-8 192.168.100.218 xx.xx.xx.xx RUNNING
=== SSH Tunnel STATUS===
nafslinux.intra.gavann-it.com:43306:gcp-gvis-dklinux.intra.gavann-it.com:3306
nafslinux.intra.gavann-it.com:50022:gcp-gvis-dklinux.intra.gavann-it.com:20022
nafslinux.intra.gavann-it.com:53389:gcp-gvis-dklinux.intra.gavann-it.com:23389
nafslinux.intra.gavann-it.com:63389:gcp-gvis-dklinux.intra.gavann-it.com:33389
=== Docker Container STATUS===
docker-cl_red8-1: redhat:8gvis Up 2 hours
docker-cl_red9-1: redhat:9gvis Up 2 hours
docker-cl_ubu22-1: ubu:22gvis Up 2 hours
docker-sv_django-1: sv_django:4 Up 2 hours
docker-sv_https-portal-1: steveltn/https-portal:1 Up 2 hours
docker-sv_mariadb-1: mariadb:10.5.7 Up 2 hours
docker-sv_php74-1: docker_sv_php74 Up 2 hours
docker-sv_web118-1: nginx:1.18.0-alpine Up 2 hours
svldap-admin: osixia/phpldapadmin:latest Up 2 hours
svldap-server: osixia/openldap:latest Up 2 hours
nari@nafslinux-ubu22:/gvis/script/proc$
|
自分にとってはローカルlinuxは母艦みたいなもんで、その役割状態が今どうなってるのかがわかるようになってて欲しい。
大昔にhp-uxで作ったものがベース。
業務で作ったものを持ち出すわけにはいかなかったので、構成を思い出しながら自分用にsolarisで最初は作った。
その後linuxに移植してからプロセス確認以外の機能を追加して今まで使ってる。
OS変えたり、バージョン上げたりすると、コマンドのオプションとか、awkで表示させるフィールド番号とか、少しずつ微調整が必要。
チェック対象はlstって引数渡すと表示してくれる。
それぞれのサービスが生きていると判断できるためのプロセス名を、別ファイルで定義する。
1
2
3
4
5
6
7
8
9
10
|
nari@nafslinux-ubu22:/gvis/script/proc$ onlchk lst
### Online Check Target List
LINUX
HTTPD
SMB
DOCKER
nari@nafslinux-ubu22:/gvis/script/proc$
|
dockerコンテナ使う前はいっぱい書いてた。
コンテナのおかげでグッと減ってくれてる。
onlchkの本体#
chkって処理を呼び出してサービス状態を表示させてから、別処理で作ってるGoogle cloud接続状態表示・sshトンネル状態・起動コンテナ一覧を表示させてる。
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
|
nari@nafslinux-ubu22:/gvis/script/proc$ cat onlchk
#!/bin/sh
## -------------------------------------------------------------------------
## Script Name :
## Created by : T.Naritomi
## on : 2007.12.24
## Updated by : 2014.04.05
## on :
## Parameters :
## Return Code : 0=Normal End
## Comments :
## -------------------------------------------------------------------------
## ---detail----------------------------------------------------------------
#--- Common Variables -----------------------------------------
LANG=C
SC_NAME=`/bin/basename $0` # Script Name
SC_HOME=`/usr/bin/dirname $0` # Script Home directory
#--- Local Variables ------------------------------------------
CONF=$SC_HOME/$SC_NAME.conf
RC=0
#--- Parameter Check ------------------------------------------
case $1 in
"lst")
echo ""
echo "### Online Check Target List"
echo ""
cat $CONF | grep '@(1)' | cut -b 6- | tr [a-z] [A-Z]
echo ""
exit 0
;;
*)
if [ "$1" ]; then
echo ""
echo "usase : $0 [lst]"
echo ""
exit 1
fi
;;
esac
#--- Process Check --------------------------------------------
RC=0
cat $CONF | grep '@(1)' | cut -b 6- | \
while read TARGET; do
##echo "sc_home=" $SC_HOME
$SC_HOME/chk $TARGET
done
#--- Google Status -------------------------------------------
echo === Google STATUS===
cat /gvis/script/gcp/TunnelStatusRes.txt
#--- SSH Tunnel status ---------------------------------------
echo === SSH Tunnel STATUS===
ssh -V
ps -ef | grep ssh | grep gvis | awk '{print $29 "\n" $31 "\n" $33 "\n" $35 }'
#--- DockerContainer Check ------------------------------------
echo === Docker Container STATUS===
docker ps --format "{{.Names}}: {{.Image}} {{.Status}}" | sort
exit 0
nari@nafslinux-ubu22:/gvis/script/proc$
|
onlchkから呼ばれるchk#
こんな感じ。
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
|
nari@nafslinux-ubu22:/gvis/script/proc$ cat chk
#!/bin/sh
## -------------------------------------------------------------------------
## Script Name :
## Created by : T.Naritomi
## on : 2007.12.20
## Updated by :
## on :
## Parameters :
## Return Code : 0=Normal End
## Comments :
## -------------------------------------------------------------------------
## ---detail----------------------------------------------------------------
LANG=C
SC_NAME=`/bin/basename $0` # Script Name
SC_HOME=`/usr/bin/dirname $0` # Script Home directory
CONF=${SC_HOME}/${1}_chk.conf
#TARGET=`echo $1 | tr [a-z] [A-Z]`
TARGET=$1
#--- Config File Check ----------------------------------------
if [ ! -f $CONF ]; then
echo ""
echo "$CONF not found ... or invalid option [ $1 ]"
echo ""
exit 1
fi
#--- Parameter Check ------------------------------------------
case $2 in
"lst")
echo ""
echo "### $TARGET Check Process List"
echo ""
cat $CONF | grep '@(1)' | cut -b 6-
echo ""
exit 0
;;
*)
if [ "$2" ]; then
echo ""
echo "usase : $0 [lst]"
echo ""
exit 1
fi
;;
esac
#--- Process Check --------------------------------------------
RC=0
cat $CONF | grep '@(1)' | cut -b 6- | awk '{ print $1}' | \
while read PROCESS; do
PS_RC=`ps aux | awk ' {print $11,$12} ' | grep "$PROCESS" | grep -v grep | wc -l`
if [ $PS_RC -eq 0 ]; then
echo "### ENVIRON[`hostname`] : $TARGET $PROCESS" \
"PROCESS_NOT_FOUND" ;
fi
done
#--- EXIT Status Check ----------------------------------------
VER=`tail -1 $CONF`
echo "... $TARGET CHECK END " `${VER} | head -1`
exit
nari@nafslinux-ubu22:/gvis/script/proc$
|
unixはps -efって書いてたけどlinuxはps auxって書いてる。
unix/linuxでps -efwwって書いたらプロセス名が省略されずに表示される。
jenkinsとかjava使うサービスの引数見たいときに使う(ヒープの確保量とかね)。
状態確認のスクリプトで使うときに長い名前表示は必要ないから淡白にしといていい。
linuxがちゃんと稼働しているかどうかのプロセス確認#
昔はinitとsshdとかを確認してた。
そういえばxinetdなんてのもあったな。
メモリ貧乏な時代に、ポートにリクエストがあったら初めてデーモン起動するって動き方してたっけ。intel solarisに突っ込んだとき書いたはず。
ubuntu22としてはsystemd/sshd/cronあたりを確認する。
定義ファイルに候補を書いといて、チェック対象に@(1)って書いておく。
最終行にはそのサービスのバージョンが拾えるコマンドラインを書く。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
nari@nafslinux-ubu22:/gvis/script/proc$ cat linux_chk.conf
#=======================#
# (1) : Check Process #
# other : No Check #
#=======================#
@(0) init
@(1) systemd
@(0) usb-storage
@(0) automount
@(1) sshd
@(0) xinetd
@(1) cron
lsb_release -d
nari@nafslinux-ubu22:/gvis/script/proc$
|
プロセスチェック対象を確認。
1
2
3
4
5
6
7
8
9
|
nari@nafslinux-ubu22:/gvis/script/proc$ chk linux lst
### linux Check Process List
systemd
sshd
cron
nari@nafslinux-ubu22:/gvis/script/proc$
|
実際にプロセスチェックさせてたとこ。
1
2
3
|
nari@nafslinux-ubu22:/gvis/script/proc$ chk linux
... linux CHECK END Description: Ubuntu 22.04.1 LTS
nari@nafslinux-ubu22:/gvis/script/proc$
|
もしもプロセスが動いてなかったら、PROCESS_NOT_FOUNDが戻る。
sambaならsmbdとnmbd、apacheならapache2をプロセス確認させるように書いとく。
dockerの場合#
1つだけプロセスチェックしてる。
シンプルでええなぁ。
1
2
3
4
5
6
7
|
nari@nafslinux-ubu22:/gvis/script/proc$ chk docker lst
### docker Check Process List
dockerd
nari@nafslinux-ubu22:/gvis/script/proc$
|
dockerコンテナ停止してプロセス停止したとき#
いったんコンテナ停止してみる。
コンテナ停止は普通に停止してから、普段使ってないoracleとかpostgresqlとか入った全定義でのdocker-compose-ALL.ymlを使って停止させる。
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
|
nari@nafslinux-ubu22:/docker$ cat ./dockerStop.sh
#!/bin/sh
## -------------------------------------------------------------------------
## Script Name :dockerStop.sh
## Created by : T.Naritomi
## on : 2019.08.07
## Updated by :
## on :
## Parameters :
## Return Code : 0=Normal End
## Comments :
## -------------------------------------------------------------------------
## ---detail----------------------------------------------------------------
DOCKER_ROOT=/docker
cd ${DOCKER_ROOT}
/usr/local/bin/docker-compose stop
cp -p docker-compose-ALL.yml docker-compose.yml
/usr/local/bin/docker-compose stop
exit
nari@nafslinux-ubu22:/docker$
nari@nafslinux-ubu22:/docker$ sh ./dockerStop.sh
[+] Running 10/10
? Container docker-cl_red8-1 Stopped 10.5s
? Container docker-sv_https-portal-1 Stopp... 3.7s
? Container docker-sv_web118-1 Stopped 0.6s
? Container docker-cl_red9-1 Stopped 10.4s
? Container docker-cl_ubu22-1 Stopped 0.6s
? Container docker-sv_php74-1 Stopped 0.2s
? Container svldap-admin Stopped 0.6s
? Container svldap-server Stopped 0.2s
? Container docker-sv_django-1 Stopped 10.2s
? Container docker-sv_mariadb-1 Stopped 1.0s
[+] Running 10/0
? Container docker-sv_web118-1 Stopped 0.0s
? Container docker-cl_red8-1 Stopped 0.0s
? Container docker-cl_ubu22-1 Stopped 0.0s
? Container docker-sv_https-portal-1 Stopp... 0.0s
? Container docker-cl_red9-1 Stopped 0.0s
? Container svldap-admin Stopped 0.0s
? Container docker-sv_php74-1 Stopped 0.0s
? Container svldap-server Stopped 0.0s
? Container docker-sv_django-1 Stopped 0.0s
? Container docker-sv_mariadb-1 Stopped 0.0s
nari@nafslinux-ubu22:/docker$
|
このときにonlchkしてみるとコンテナは全停止してるので1つも見えない。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
nari@nafslinux-ubu22:/docker$ onlchk
... linux CHECK END Description: Ubuntu 22.04.1 LTS
... httpd CHECK END Server version: Apache/2.4.52 (Ubuntu)
... smb CHECK END Version 4.15.9-Ubuntu
... docker CHECK END Docker version 20.10.17, build 100c701
=== Google STATUS===
...rtx1210-status >
...rtx1210-status Current status is disabled.
...Google -status
...Google -status jelly-fslinux us-east1-b e2-standard-8 192.168.100.218 104.196.198.226 TERMINATED
=== SSH Tunnel STATUS===
OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
=== Docker Container STATUS===
nari@nafslinux-ubu22:/docker$
|
次はdocker本体停止する。こっちはsystemctl使うからrootで動かす。
そういえばnkfなんてのもまだ入ってたな。もういらんかも。
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
|
root@nafslinux-ubu22:/gvis/script# cat 301_dockerStop.sh
## -------------------------------------------------------------------------
## Script Name :
## Created by : T.Naritomi
## on : 2018.11.23
## Updated by :
## on :
## Parameters :
## Return Code : 0=Normal End
## Comments :
## -------------------------------------------------------------------------
## ---detail----------------------------------------------------------------
###LANG=C
EXEC_HOME=/gvis/script # Execute Home directory
LOG_OUTPUTDIR=/gvis/log/300_docker.log
echo ${LOG_OUTPUTDIR}
echo -n `date +%F_%T_` >> ${LOG_OUTPUTDIR}
systemctl stop docker docker.socket
systemctl status docker | grep 'Active' | nkf -s >> ${LOG_OUTPUTDIR}
echo dockerStop | nkf -s >> ${LOG_OUTPUTDIR}
exit $?
## ---example---------------------------------------------------------------
##
## -------------------------------------------------------------------------
root@nafslinux-ubu22:/gvis/script# sh ./301_dockerStop.sh
/gvis/log/300_docker.log
root@nafslinux-ubu22:/gvis/script#
|
停止させたときのエコーバック。
1
2
3
4
5
6
|
root@nafslinux-ubu22:/gvis/script# tail -4 /gvis/log/300_docker.log
2022-08-13_06:03:47_ Active: active (running) since Sat 2022-08-13 06:03:47 JST; 9ms ago
dockerStart
2022-08-13_06:14:00_ Active: inactive (dead) since Sat 2022-08-13 06:14:00 JST; 5ms ago
dockerStop
root@nafslinux-ubu22:/gvis/script#
|
ここでonlchkしたらdockerのプロセスあらへん、って答えが戻る。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
nari@nafslinux-ubu22:/gvis/script/proc$ onlchk
... linux CHECK END Description: Ubuntu 22.04.1 LTS
... httpd CHECK END Server version: Apache/2.4.52 (Ubuntu)
... smb CHECK END Version 4.15.9-Ubuntu
### ENVIRON[nafslinux-ubu22] : docker dockerd PROCESS_NOT_FOUND
... docker CHECK END Docker version 20.10.17, build 100c701
=== Google STATUS===
...rtx1210-status >
...rtx1210-status Current status is disabled.
...Google -status
...Google -status jelly-fslinux us-east1-b e2-standard-8 192.168.100.218 104.196.198.226 TERMINATED
=== SSH Tunnel STATUS===
OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
=== Docker Container STATUS===
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
nari@nafslinux-ubu22:/gvis/script/proc$
|
プロセス確認は監視にも使える#
運用チックな使い方の1つ。
onlchkを定期的に起動させて、プロセス停止の文言が戻ってたらメールさせる。
高価な監視ソフトウェアがなくても、たとえばcrontabで定義しといたらいい。
1
2
3
4
|
nari@nafslinux-ubu22:/gvis/script$ sudo crontab -l | grep 803_CHKonlchkStat.sh
[sudo] nari のパスワード:
06,16,26,36,46,56 6-21 * * * /bin/sh /gvis/script/803_CHKonlchkStat.sh > /dev/null
nari@nafslinux-ubu22:/gvis/script$
|
さっき停止させたdockerの場合、こんなメールが来る。
1
2
|
---onlchk result ---
### ENVIRON[nafslinux-ubu22] : docker dockerd PROCESS_NOT_FOUND
|
803_CHKonlchkStat.shにはこう書いてる。
昔はsendmail使ってたのが、今は別でpostfixの設定してから使えるようにした。
LANG=Cをコメントにしてるのは、本文に日本語入っててもメールできるから。
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
|
nari@nafslinux-ubu22:/gvis/script$ cat 803_CHKonlchkStat.sh
## -------------------------------------------------------------------------
## Script Name :
## Created by : T.Naritomi
## on : 2014.04.05
## Updated by :
## on :
## Parameters :
## Return Code : 0=Normal End
## Comments :
## -------------------------------------------------------------------------
## ---detail----------------------------------------------------------------
###LANG=C
EXEC_HOME=/gvis/script # Execute Home directory
MAILMSG=${EXEC_HOME}/`basename $0`-report.txt # report
MAIL_TO="xxxx@gavann-it.com"
MAIL_TITLE="auto)alertReport-onlchk-naFSlinux-Home"
rm -f $MAILMSG
# Report mail make--r--------------------------------------------#
echo "" >> $MAILMSG
echo "---onlchk result ---" >> $MAILMSG
${EXEC_HOME}/proc/onlchk | grep 'PROCESS_NOT_FOUND' >> $MAILMSG
RES=`cat $MAILMSG | grep 'PROCESS_NOT_FOUND' | wc -l`
if [ $RES -ne 0 ]; then
cat $MAILMSG | /usr/bin/mail -a "Content-Type: text/plain; charset=UTF-8" -s $MAIL_TITLE $MAIL_TO
echo E-mail.
fi
exit $?
nari@nafslinux-ubu22:/gvis/script$
|
履歴みたいな使い方#
onlchkを定期起動させて、メールで結果をレポートさせてる。
普段apt updateでバージョンを上げてくけど、「いつからこのバージョンやったかなぁ」とか考えることがたまにある。
メールでのレポートを検索すると、一番古いメールでは6月15日がdockerは20.10.17になってた。
1
2
3
4
5
|
---onlchk result ---
... linux CHECK END Description: Ubuntu 22.04.1 LTS
... httpd CHECK END Server version: Apache/2.4.52 (Ubuntu)
... smb CHECK END Version 4.15.9-Ubuntu
... docker CHECK END Docker version 20.10.17, build 100c701
|
6月14日のレポート見たら、dockerは20.10.16になってるから、この日の日中か15日の朝にバージョン上げてるのがわかる。
1
2
3
4
5
|
---onlchk result ---
... linux CHECK END Description: Ubuntu 22.04 LTS
... httpd CHECK END Server version: Apache/2.4.52 (Ubuntu)
... smb CHECK END Version 4.15.5-Ubuntu
... docker CHECK END Docker version 20.10.16, build aa7e414
|
あ、sambaもマイナーバージョンが5から9に上がってるし、ubuntu本体も22.04から22.04.1に上がってた。
一度は考えたjenkins#
crontabでのスクリプト起動だけじゃなくて、jenkinsにも定期起動の機能がある。
jenkinsは直列の処理だけじゃなくて、並列処理が作れる。
GUI定義じゃなくてテキストを書く必要あるけど、ジョブネットみたいなことができるから、systemwalkerとかjp1なくても業務処理扱える。
jenkinsは本来はCIサーバとして、webとdbのコンテナを動的に作ってgitからソースとか取ってきてなんてことを並列稼働させて自動テストなんかに使う。
一回だけonlchk定期起動とかやってみたけど、javaが動くコンテナはもっさり、ゆっくり動いた。
コンテナで基盤的な処理を動かすのは、dockerで障害出た時ちゃんとレポートとかできないから、やっぱりやめた。
運用チックな処理は、ミドルウェアとか使わずOS機能だけで実現したほうがええ。
macでminikube使い始めた#
minikubeはkubernetesのええ勉強になる。
kubectlのコマンドラインの練習ができるから、作ってくれた人はエラいなぁって思う。
自分はそんなんいちいち覚えたくないけど、こうしたら使えるっていうふうに思い出せるように運用スクリプト作った。
何となくやけど、minikube使ってる人の記事見たら、kubectlをkって名前のエイリアス定義して見える人がいた。
打鍵を素早く終わらせるためにやってるんやろけど、いちいち長いコマンドライン打つのは自分はイヤ。
バージョンやらpodの状態とかだけじゃなくて、ポートフォワードの状態とかも見たい。
kubectlが1.27のときのmac向けonlchkスクリプトはこんな感じ。
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
|
## -------------------------------------------------------------------------
## Script Name : onlchk (for mac minikube)
## Created by : T.Naritomi
## on : 2023.07.27
## Updated by :
## on :
## Parameters :
## Return Code : 0=Normal End
## Comments :
## -------------------------------------------------------------------------
## ---detail----------------------------------------------------------------
echo '-------minikube status -------'
minikube status | tail -5
echo '-------minikube check -------'
minikube update-check
echo '----- minikube verCheck ------'
minikube config defaults kubernetes-version | head -3
echo '-------kubectl version -------'
kubectl version --output=yaml | egrep 'clientVersion|serverVersion|gitVersion'
echo '-------kubectl status -------'
kubectl get po,svc
echo '-------kubectl PV -------'
kubectl get pv | awk '{ print $1,$2,$3,$5} '
echo '-------kubectl forward -------'
ps -efww | grep kubectl | grep forward | awk '{ print $9,$10,$11,$12,$13 }'
exit $?
|
kubernetesクラスタとが1.27のときに使うと、こんな出力が出る。
kubectl versionは2つ出てるけど、1つ目はサーバ側で2つ目はクライアント側。
クライアント側だけっていうオプション(–clinent)はあったけど、サーバ側っていうのが見つけられんかった。
minikube dashboardでもブラウザ見たら状態はわかるけどイマイチやねんなぁ。
特に自分が見たいものを素早く見たいからこういうのを作る。
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
|
nari@gvis-mac ~ % onlchk
-------minikube status -------
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
-------minikube check -------
CurrentVersion: v1.31.1
LatestVersion: v1.31.1
----- minikube verCheck ------
* v1.27.3
* v1.27.2
* v1.27.1
-------kubectl version -------
clientVersion:
gitVersion: v1.27.4
serverVersion:
gitVersion: v1.27.3
-------kubectl status -------
NAME READY STATUS RESTARTS AGE
pod/cl-ubun22-78cf4cff6-pz7dk 1/1 Running 0 30m
pod/sv-django-685d8b8c78-8vghz 1/1 Running 0 30m
pod/sv-https-portal-6dd4f47ccb-44cvg 1/1 Running 0 29m
pod/sv-mariadb1011-7685f55777-q6s2t 1/1 Running 0 30m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6d7h
service/sv-django ClusterIP 10.108.42.23 <none> 38080/TCP 5d10h
service/sv-https-portal ClusterIP 10.97.128.229 <none> 30080/TCP,30443/TCP 5d10h
service/sv-mariadb1011 ClusterIP 10.108.18.160 <none> 13306/TCP 5d10h
-------kubectl PV -------
NAME CAPACITY ACCESS RECLAIM
gvis-pv-django-sslcerts 1Gi RWO Bound
gvis-pv-django-uwsgi-nginx 1Gi RWO Bound
gvis-pv-mariadb1011 20Gi RWO Bound
gvis-pv-mariadb1011conf 1Gi RWO Bound
gvis-pv-ubun22 10Gi RWO Bound
-------kubectl forward -------
port-forward --address 0.0.0.0 sv-mariadb1011-7685f55777-q6s2t 13306:3306
port-forward --address 0.0.0.0 cl-ubun22-78cf4cff6-pz7dk 33389:3389
port-forward --address 0.0.0.0 sv-django-685d8b8c78-8vghz 38080:8080
port-forward --address 0.0.0.0 sv-https-portal-6dd4f47ccb-44cvg 30443:443
nari@gvis-mac ~ %
|
ポートフォワードの状態があると、「開けてるポートどれやったっけ」がすぐに見れる。
永続化領域のPVもBoundになってるよなってのがわかる。
minikubeとかパッケージはbrew使って入れてて、brewで更新をときどきやってると、minikubeそのものもkuberctlもバージョンがコソっと上がってくる。
ときどき見落とすけど、minikube config defaults kubernetes-versionとかの結果を見ると、「あ、v1.27.3出てるやん!」とかして発見できる。
リリース予定どっかで見たんやけど、1.27が6月に出てるのにminikubeに反映されるのは翌月やったなぁ。
1.28は2023年のお盆の頃、ということはminikubeに反映されるのは彼岸の少し前ってことで、阪神ジャンプステークスの頃かいな。
brewでバージョン上がってたり、実行結果のminikube verCheckの先頭のほうに新しいの発見したら、minikube deleteしてクラスタ作り直せしたろ。
macでmicrok8s使い始めた#
minikubeはintelアーキテクチャでないと動かん。
M4のmacに切り替えてからmicrok8s使い始めた。
状態確認のスクリプトも書き換えた。2024年の年末に作ったけど、ここに書くの忘れてた。
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
|
root@kubearm:/microk8s/script# cat onlchk
## -------------------------------------------------------------------------
## Script Name : onlchk (for ubuntu24 microk8s)
## Created by : T.Naritomi
## on : 2023.07.27
## Updated by : 2024.11.29
## on :
## Parameters :
## Return Code : 0=Normal End
## Comments : work on arm64 in utm
## -------------------------------------------------------------------------
## ---detail----------------------------------------------------------------
echo '----- cluster status ------'
microk8s status --wait-ready | head -5
echo '------ cluster node ------'
cat /etc/os-release | grep PRETTY_NAME
df -h | grep -v tmpfs | grep -v common
echo '----- recent cluster ver -----'
## multipass exec microk8s-vm -- sudo snap info microk8s | grep classic | head -3
## multipass exec microk8s-vm -- sudo snap info microk8s | egrep -v 'installed|beta|edge|candidate' | grep classic | sort -r | head -3
## snap info microk8s | egrep 'stable|installed|stable' | grep classic | grep -v 'tracking' | sort -r | head -4
snap info microk8s | egrep -v 'beta|edge|candidate' | grep classic | sort -r | head -4
echo '------- images in ctr -------'
## multipass exec microk8s-vm -- sudo microk8s.ctr images ls | egrep 'save|maria|https' | awk '{print $1,$4,$5}' | grep -v '@' | sort
microk8s.ctr images ls | grep save | egrep 'save|maria|https' | awk '{print $1,$4,$5}' | grep -v '@' | sort
echo '-------kubectl version -------'
microk8s kubectl version --output=yaml | egrep 'clientVersion|serverVersion|gitVersion'
echo '----kubectl po/svc/configmap status ----'
microk8s kubectl get po,svc,configmap
echo '-------kubectl PV -------'
microk8s kubectl get pv | awk '{ print $1,$2,$3,$5} '
echo '-------kubectl forward -------'
ps -efww | grep kubectl | grep forward | grep -v wrapper | awk '{ print $9,$10,$11,$12,$13 }' | sort
exit $?
root@kubearm:/microk8s/script#
|
使ったらこうなる。
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
|
root@kubearm:~# onlchk
----- cluster status ------
microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none
addons:
------ cluster node ------
PRETTY_NAME="Ubuntu 24.04.3 LTS"
Filesystem Size Used Avail Use% Mounted on
efivarfs 256K 37K 220K 15% /sys/firmware/efi/efivars
/dev/mapper/ubuntu--vg-ubuntu--lv 60G 41G 17G 72% /
/dev/vda2 2.0G 67M 1.8G 4% /boot
/dev/vda1 1.1G 6.4M 1.1G 1% /boot/efi
share 461G 406G 56G 89% /microk8s
----- recent cluster ver -----
latest/stable: v1.34.1 2025-10-14 (8496) 160MB classic
installed: v1.34.1 (8472) 160MB classic
1.34/stable: v1.34.1 2025-10-13 (8497) 160MB classic
1.33/stable: v1.33.5 2025-10-13 (8509) 155MB classic
------- images in ctr -------
docker.io/library/save-django:gvis-saved 1.4 GiB
docker.io/library/save-xrdpubu:gvis-saved 6.7 GiB
-------kubectl version -------
clientVersion:
gitVersion: v1.34.1
serverVersion:
gitVersion: v1.34.1
----kubectl po/svc/configmap status ----
NAME READY STATUS RESTARTS AGE
pod/cl-ubun 1/1 Running 3 (4m48s ago) 3d1h
pod/sv-django 1/1 Running 3 (4m48s ago) 3d1h
pod/sv-https-portal 1/1 Running 7 (3m21s ago) 3d1h
pod/sv-mariadb 1/1 Running 3 (4m48s ago) 3d1h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 158d
service/sv-django ClusterIP 10.152.183.244 <none> 38080/TCP 158d
service/sv-https-portal ClusterIP 10.152.183.229 <none> 30080/TCP,30443/TCP 158d
service/sv-mariadb ClusterIP 10.152.183.179 <none> 13306/TCP 158d
NAME DATA AGE
configmap/kube-root-ca.crt 1 158d
configmap/sv-mariadb-txt 5 158d
-------kubectl PV -------
NAME CAPACITY ACCESS RECLAIM
gvis-pv-django-sslcerts 1Gi RWO Bound
gvis-pv-django-uwsgi-nginx 1Gi RWO Bound
gvis-pv-mariadb 20Gi RWO Bound
gvis-pv-mariadbconf 5Gi RWO Bound
gvis-pv-ubun 10Gi RWO Bound
pvc-0682501b-65b6-4ee2-9a59-6c32f3ef51fa 30Gi RWX Bound
-------kubectl forward -------
root@kubearm:~#
|