オオアオ・・・
問題文を現時点では正確に再確認できないので、雑です。
次の問題について記述します。
- [nao] Redmine に絵文字を入力できない
- [kob] Jenkins にアクセスできない
[nao] Redmine に絵文字を入力できない
1. 絵文字を入力できないらしいので、実際に Project の説明などに絵文字をぶち込んでみたところ、本当に Redmine が Internal Server Error を吐き出してきます。
2. (問題文に書いてあったような気もしますが) top とかで見てみると Redmine が Docker で動いていそうなので、雑にパスを見つけます。 → /opt/redmine
にありました
3. /opt/redmine
の中身を見てみると Docker Compose を使っていそうだったので、とりあえず docker compose logs
でログを見ます。
4. なんか utf8
がなんだとか言ってるので文字コードが悪いんだろうなぁ、とちょっと思ってみます。4 bytes 文字を扱うには utf8
ではなく utf8mb4
でないといけないので、なんか変換したらいいんだろうなぁ、と思い付きます。
(思い出すシリーズ: EPGStation が Mirakurun の更新で破壊されるやつ)github.com
5. とりあえず /opt/redmine
の中にあるファイルにおいて、データベースの文字コードを指定しているっぽいものを軒並み utf8
から utf8mb4
に変えていきます。
6. 5. をやっても直らなかったのでよく調べてみると既存のテーブルの文字コードはそれだけでは変わらないみたいというのが分かります。さらにググるといい感じに文字コードを変換する SQL を生成するためのスクリプトが出てくるのでそのまま使います。
zappy.hatenablog.jp7. 絵文字が入りました。よかった〜
[kob] Jenkins にアクセスできない
1. 本当にアクセスできないのか雑に SSH でプロキシして繋ごうとするとアクセスを拒否されます。
2. Kubernetes で動いているらしいので kubectl get pods -A
すると Jenkins の本体っぽい pod が CrashLoopBackOff
状態 になっています。
3. kubectl logs
でログを見てみると、特にエラーを出さずに即死しています。
4. この辺でなんとなく OOM なんかなぁと思って worker ノードで sudo dmesg
を叩くとやはり OOM で㊙️されています。
5. Jenkins の deployment 用 YAML ファイルを覗いてしばらく逆立ちしていると、Jenkins を稼働させる Java の最小メモリ割り当てが 4 GB になっていることに気づきます。なんかデカすぎるかもなぁと思い当たります。
6. worker ノードが持っている RAM 容量を見返すとやはり明らかにでかすぎるので、いい感じに小さくします。
7. kubectl apply
を叩いて解決です。よかった〜