2024年10月20日日曜日

Ubuntu 24.04上のDockerにgitlabをインストールする

1. Dockerのインストール(SNAP版)
※dockerをインストールしていない場合は、以下のコマンドでインストールします。
sudo addgroup --system docker

sudo adduser $USER docker

sudo snap install docker
テスト実行
docker run hello-world

2. gitlabのインストール
※gitlabのデータを保持するディレクトリ。適宜変更してください
export GITLAB_HOME=/mnt/usbhdd/gitlab

ホストのIPアドレスが192.168.1.111で、ポートを443->30443, 80->30080, 22->30020に変更した場合の実行例
docker run --detach \
   --hostname 192.168.1.111 \
   --env GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.1.111'" \
   --publish 30443:443 --publish 30080:80 --publish 30022:22 \
   --name gitlab \
   --restart always \
   --volume $GITLAB_HOME/config:/etc/gitlab \
   --volume $GITLAB_HOME/logs:/var/log/gitlab \
   --volume $GITLAB_HOME/data:/var/opt/gitlab \
   --shm-size 256m \
   gitlab/gitlab-ee:17.4.2-ee.0

初回起動はかなり時間がかかります。以下のコマンドで初回ログイン時のrootユーザのパスワードを表示します。
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
24Hでパスワードは無効になるので、それまでにログインしてパスワードを変更しておきます。

2024年10月19日土曜日

Kubernetesで使用されていないPVCを一覧表示する

Kubernetesで使用されていないPVCを一覧表示するには、以下のコマンドを実行します。Name, Namespace, Used Byフィールドが表示されます。
kubectl describe -A pvc | grep -E "^Name:.*|^Namespace:.*|^Used By:.*" | sed -e 's/^.*: *//' | awk '{printf("%s ", $1);} NR%3==0 {printf("\n");}' | grep '<none>'

2024年10月18日金曜日

KubernetesでPostgreSQLの共有メモリを増やす

KubernetesでPostgreSQLの共有メモリを増やすには以下の手順を実行します。

1. 現在の設定の確認
kubectl exec --stdin --tty ※ポッド名 --container ※コンテナ名 -- /usr/local/bin/psql -U postgres
クライアントから確認
show shared_buffers;

2. 設定変更
PVに割り当てられたディレクトリからpostgresql.confを変更
■変更前
shared_buffers = 128MB                  # min 128kB
                                        # (change requires restart)
■変更後
shared_buffers = 256MB                  # min 128kB
                                        # (change requires restart)

Documentationでは1GB以上のRAMがあればshared_buffersに対する妥当な初期値はシステムメモリの25%。
https://www.postgresql.jp/document/16/html/runtime-config-resource.html

3. 再起動して変更を反映
kubectl rollout restart deployment ※デプロイメント名

4. 再度設定確認

2024年10月17日木曜日

KubernetesでPostgreSQLをアップグレードする方法

KubernetesでPostgreSQLをアップグレードする場合、以下の順序でバージョンアップを行います。

1. 現バージョンでバックアップを取得
kubectl exec --stdin ※ポッド名 --container ※コンテナ名 -- /usr/local/bin/pg_dumpall -U postgres > dumpall.sql

2. バージョンアップ後に使用するPV/PVCを作成

3. deploymentなどで使用するPostgreSQLのイメージを新しいものに変更し、PVCもあたらしいものを参照するようにymlを更新。kubectl applyで反映。

4. 新バージョンでデータをインポート
cat dumpall.sql | kubectl exec --stdin ※ポッド名 --container ※コンテナ名 -- /usr/local/bin/psql -U postgres

5. 動作確認後、古いバージョンのPV/PVCを削除

2024年10月16日水曜日

Kubernetesでポッド内のコンテナのマウント名とパスを一覧表示する

Kubernetesでポッド内のコンテナのマウント名とパスを一覧表示するには、以下のコマンドを実行します

1.ポッド一覧を取得
kubectl get pods

2.ポッドのコンテナ内のマウント名とパスを一覧表示
kubectl get pod ※1で取得したポッド名 -o jsonpath='{range .spec.containers[*]}{.name}{"\n"}{range .volumeMounts[*]}{"- "}{.name}{":"}{.mountPath}{"\n"}{end}{end}'

2024年10月15日火曜日

Kubernetesでポッド内のコンテナ名とイメージ名を一覧表示する

Kubernetesでポッド内のコンテナ名とイメージ名を一覧表示するには、以下のコマンドを実行します
1.ポッド一覧を取得
kubectl get pods

2.コンテナ名とイメージ名を一覧表示
kubectl get pod ※1で取得したポッド名 -o jsonpath='{range .spec.containers[*]}{.name}{":"}{.image}{"\n"}{end}'