0%

雑感

  • 気がついたら8月も終盤・・・

8/26

kanikoを使ったイメージのビルド

実行したら、ワーカーが1台OOMしてえらいことになりました。
幸いなことに、前回の全滅事件で、できるだけresourceのrequestを設定していたので
いくつかのコンテナが移動したあと、メモリ不足で移動がpendingされて停止しました。

しかし、PostgreSQLが突然死したことで次回起動時にリカバリ処理が走るのですが、
リカバリ処理中にヘルスチェックが失敗してコンテナがシャットダウンされてしまうという
事態が発生しました。(一部用語で腹筋)
これについて対応しようとすると副作用がキツイのでどうしたものか・・・

ちなみに

kanikoのジョブに resourceが抜けていたので走ってはいけないノードで走ってしまった。
・・・なお、走ってはいけないノード とは全てのノードである。

1
Warning  FailedScheduling  36s   default-scheduler  0/4 nodes are available: 4 Insufficient memory.

正直、このメモリ量だと3.5GB * 3ノードより5.25GB * 2 ノードの方が良いのではないか疑惑ある

zabbixのアラート

mastodonアラートが死んでいたので修正。

メルカリ

出品していたものが大体売れたので大満足。これでバイクのバッテリ注文できる。

ThinkCentre一台売却

ご購入ありがとうございました。

8/27

財団のfavicon

コピるだけなので直す。nginxのキャッシュ削除忘れない

8/31

メモリ増設。

ついに64GBに。しかし苦労した。
マザーボードは ASRock X370 Gaming K4
メモリは Corsair Vengeanse LPX (Red)

今日踏んだ事故(ハードウェア)
・BIOSバージョン P5.30
・メモリ4枚だと起動しない
・メモリ3枚なら起動する
・メモリの速度をDDR4-1866にするが起動しない
・BIOSバージョンUP P5.30 -> 5.40
・やっぱり起動しない
・メモリを2枚にして起動させて、XMP Profileを有効にする
・メモリのCAS Latency の設定が 15-15-15-36 というあり得ない値になっていたので、 16-18-18-36に変更

→DDR4-1866だと起動しないがDDR4-2666だと起動する(意味不明)

今日の事故(ソフトウェア)

・全ノードdrainして復帰後、1ノード復帰させたらメモリが足りてしまうせいで全部のコンテナがその1ノードにスケジュールされた

・k8sの全ノードが FS-Cache: Duplicate cookie を吐いてNFSマウントできない
→ NFSサーバーのIPアドレスがなぜか消えていた
→ netctlで設定してたがなぜか有効にならない
→ 仕方ないので systemd-networkd にお願いしたら上手く行くように。
→ 復活。 FS-Cache のログを追ってしまって無駄に時間を費やしてしまった。

9/1

アコスタ見に行った

かわいい。東方コスの人は相変わらず少ない。
にしても暑くて死にそうだった。

ThinkCentre一台売却

ご購入ありがとうございました。二台目は財団のサーバーになったことのある由緒正しい子なので
ちょっと強いです。メモリが8GBになっていたりとか。

TODO

k8sに移動したことによって壊れている単純なジョブの修正

  • バックアップ
  • テストインスタンスバックアップ
  • misskeyインスタンスバックアップ
  • 財団バックアップ
  • 統計情報取得(DB部分)
  • sidekiq統計取得
  • 週次メンテナンスジョブ
  • 月次メンテナンスジョブ

k8sの仕組みでオートデプロイ再構築

  • fastladder
  • writefreely
  • misskey
  • テストインスタンス
  • 本番インスタンス

writefreely への文書コピー

本当にコピー

職務経歴書

  • 外枠(プロジェクト名と日付)
  • フォーマット統一
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • プロジェクトの中身 (2011より前)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 気がついたら8月も中盤・・・

8/19

jetson nano を雑用PCに

jetson nanoでは既にzabbixが動いているが、メモリが有り余っているので雑用のPCとしても
動いて貰う事にした。AI系の機能使えてないんだけれどもまぁ・・・
その代わり、ディスプレイに接続してあげることに。
・・・VNCだと遅い(VinoとTigerVNCをテストした)

8/20

続・jetson nanoをPCに

xrdpを試すことに・・・したのは良いが、なんとこれ、Unity(Window Manager)だと動かないらしい。
xfce4を入れれば動く。ということだったので入れることに。
・・・こっちのが軽くて良いのでは? RDPにしたおかげで反応もよくなったし、これでしばらくいくことにする。
メモリ使用量も特に問題無さそう。(Chrome立ち上げた状態で残2GBくらい)

Mastodonのブロック一覧

https://odakyu.app/@ars42525/102650460415082220
/about/blocks でブロック一覧が表示される模様。
master追従時注意。

8/21

Mastodonブロック一覧

Glitchにはまだ来てないみたい。

favicon対応

dockerイメージに /public/override ディレクトリを追加。
あとはここにPVをマウントして、起動時のコマンドでfaviconを上書きして起動。っていう
イマイチな手法。シンボリックリンクとかにした方がいいかなぁ・・・

rolling update

Deploymentのstrategyがrollingupdateな状態で、
Deploymentの dockerイメージのタグを変えてapplyしたときに走る処理のことだった。
しかし、Mastodonではdb:migrateが必要なので(misskeyだといらない)
事前にjobとして実行するようにした。しかしよく考えたらこれは別に自動でやってしまっても良いような。。。
コンテナを走らせると言うことはそのバージョンで実行したいんだから、migrateなしで
落ちました。って全く嬉しくない・・・よね

8/22

財団自動アップデート

db:migrateするジョブ、それをwaitする。
各deploymentのdockerコンテナのタグを書き換えてapplyする。
なんというか、面倒なスクリプトを書いた。
にしても、アップデートの完了タイミングはk8sがserviceのつなぎ先を変えた
タイミングなので、厳密には判定できていないけれどもまぁよしとする。

電気通信事業者になることを前提に、メンテが48時間という大嘘になっているのが
なかなかお茶目。

TODO

k8sに移動したことによって壊れている単純なジョブの修正

  • バックアップ
  • テストインスタンスバックアップ
  • misskeyインスタンスバックアップ
  • 財団バックアップ
  • 統計情報取得(DB部分)
  • sidekiq統計取得
  • 週次メンテナンスジョブ
  • 月次メンテナンスジョブ

k8sの仕組みでオートデプロイ再構築

  • fastladder
  • writefreely
  • misskey
  • テストインスタンス
  • 本番インスタンス

writefreely への文書コピー

本当にコピー

職務経歴書

  • 外枠(プロジェクト名と日付)
  • フォーマット統一
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • プロジェクトの中身 (2011より前)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 気がついたら8月も中盤・・・

8/12

  • k8sへの移行をせこせこやっている

8/14

  • だいたい移行完了した。
  • k8sにfluentdを入れてログを転送しはじめた

8/15

朝起きたらfluentdが死んでいた。

  • dockerイメージがalpineベースのdeprecatedなやつだったせい
  • systemd絡みのエラーを吐き続けていたのでsystemd-journalをdisableに

OOM障害発生

  • ノードの1台でOOMが発生して、応答不能に
  • podがリスケジュールされ(スプリットブレイン的な事も起きつつ)
  • 他のノードに負荷が寄ってさらに死亡

Mastodonでぼやいてたら、resourcesを指定すればメモリ不足になった場合に
podのデプロイがpendingされるとのこと。containersに以下のような形で書いておけば良い

1
2
3
resources:
requests:
memory: "500M"

requests と limits があり、requestはスケジューラに希望を伝えるだけで制限しない。
limitsはdockerコンテナに制限が適用される。

では、どうやってrequestする容量を設定するのか・・・ 方法が浮かばないので、とりあえず
各ノードにsshして、docker stats することで当たりを付けていく作戦を採りました。

deployment公開

Mastodonのdeployment公開。
https://github.com/yakumo-saki/k8s-mastodon-deployment

Nokia Sleep 譲渡

使わなくなっていたので譲渡した。

HTC VIVE売却

正直、装着が面倒だった。Oculas Questとかの方向性になって欲しい。

8/18

OpenVPN終端

なんというか偶然 Raspberry Pi 3 が手に入ったのでOpenVPNの終端をやらせることにした。
これで、サーバーセグメントに一台雑用ができる何かが手に入った。
さらに、サーバーのメモリが512MBほど解放されました。

TODO

雑用Windowsの破棄

Jetson nano のデスクトップを有効にして、使えるようにする。

writefreely への文書コピー

本当にコピー

職務経歴書

  • 外枠(プロジェクト名と日付)
  • フォーマット統一
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • プロジェクトの中身 (2011より前)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 日報書けるほどの出力が出なくなったので週報に切り替える。

Done

mornin plus導入

朝起きれるように・・・ これ、1個でカーテン片側しか開けられないのね。
無理矢理ぎみに両方開けるようにしているけれども、びもー感ちょっとある。
左右どちらかにしか動けない、開閉それぞれ何秒動かすかという設定しかないので、
カーテンの端っこに設置して動作時間を長めにすると全空け可能っちゃ可能。でも引っかかる。

kubernetes

[失敗] NFSバックエンドでmariadbのpodがlock failure的なエラーでコケた為 iSCSIバックエンドに

https://github.com/kubernetes-incubator/external-storage/tree/master/iscsi/targetd

導入手順が古いのか何なのか、上手く動かせなかった。認証があるとなんかのファイルが必要だけどそれがない。
っていうエラーだった記憶。 github上にissueがあって、しかも放置されているような状態なので諦めた。
このプロジェクト自体が割と放置なのかもしれない。

GlusterFS導入

ついにディスク容量効率を捨てて分散ストレージに手を出すことに。
GlusterFSは3台がミニマムなので、この際えいやとk8sのワーカーノードを3台に。

https://github.com/gluster/gluster-kubernetes
・・・ここからがまた色々と・・・

作業覚書

master(ストレージノードにはしない)
worker1~3(ストレージノード)

  • Debian 9 の場合、apt install glusterfs-client
  • その他、モジュールのロードも必要なので /etc/modules.d/ に書いておく
  • GlusterFSに供給するディスクを新規にVMにアタッチしておく。とりあえず MBRで。パーティションは不要。
  • 上記githubリポジトリをmasterでcloneしておく。

GO

GOの前に、 gk-deploy スクリプトを修正する必要がある。 スクリプト内の -show-all というオプションが
削除されているので、スクリプト内から削除する。(1箇所だったはず)
https://github.com/gluster/gluster-kubernetes/issues/582

gk-deploy -gv --admin-key <パスワード的なの> --user-key <パスワード的なの> で実行。

あとは祈るだけ。まおーはこれで色々ハマって3日くらい費やしました。
やり直しは、 gk-deploy --abort -gv --admin-key <パスワード的なの> --user-key <パスワード的なの>
で可能だが、heketiがディスクを確保するところまで言ってしまった場合( /dev/sdb がどうの・・・みたいなの)
ディスクにLVM情報が書き込まれてしまうので、すべてのストレージノードのディスクを初期化しなおす必要がある。
正直実行前にVMのスナップショットを取っておくことをおすすめします(すべてのストレージノードで)
なお、スナップショットを戻す前に、上記 abortを実行してk8s上のpodとかserviceは消しておくこと。

で、storage classのyamlと complete 的な表示が出たらとりあえずおめでとう!

storageclass

表示されたstorageclassのサンプルに以下の修正をした。

  • heketiのpodのIPアドレスが指定されているが、heketi のservice ip に変更。(しないとheketi podが落ちた時に繋がらなくなる)
  • userkey が指定されているが、 adminkeyでないとprovisioningに失敗したのでuser: admin , password: adminkey (gk-deployに指定したやつ)に変更
  • allowVolumeExpansion: true を追加

で、storageclassを登録。 登録後に

1
kubectl patch storageclass glusterfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

を実行して、defaultにしておく。
とりあえずこれで使えるようにはなった。

失敗記録

  • 初回デプロイなのに gk-deploy-g をつけ忘れた。→中途半端な状態になる
  • gk-deploy -v があるのにスクリプトに echo を挟みまくった→無駄な努力
  • heketi-copy-job みたいな名前のjobが ContainerCreationで止まった。→glusterfsをmountできてない。glusterfs-client入れ忘れ
  • complete!したのにpvcがpending… なぜかコントロールプレーンからheketi(Pod, Service)へのアクセスがufwで遮断されていた

8/9

ufwの設定不足の件

よく考えたら、dmesgにBLOCKのログが出るのだからそこを見ながら裏付けを取って
ポート開放していけば良いことに気がついた。
抜けていたのは、 8285/udp 8472/udp の二つ。これはflannelのポートとvxlanのポートだった。
10.244.0.0/16 から control-planeへのアクセスは全許可とした。(多分、53のDNSだけあれば良さそうな気がするが・・・)
これで、UFW有効な状態で動作できるようになった。

8/10

朝起きると、全ノードが応答を停止していた。
コンソールを見ると、OOM Killerが発動しているようだ。
とりあえず、メモリを2GB -> 4GB にして再起動したものの、GlusterFSのpodが起動しない。
起動中にOOMが発生してしまう。8GBにしても同じ状況になったため、手詰まり。
諦めてノードを全台再構築することにした。と同時に、うちのメモリ量では分散ストレージは無理と判断して、
NFSを再度試すことにする。

worker再構築

なんとなく、カーネルのバージョンの問題ありそうだなぁという事で(根拠まったくなし)
※ 昔、CentOS5でdockerを使うとkernel panicが起きまくった経験があった
Debian10でやってみることにした。 といっても、kubeadmを入れて kubeadm join するだけなので
別に9 (stretch) でも 10 (buster) でも変わらない・・・はずだった。

nfsのprovisionerを入れてテストpvcを作ってみると成功しない。おかしい。
nfs-provisionerのpodを見てみると・・・ containercreating で止まっている。
kubectl get pod --all-namespaces してみると、flannelのpodがworker上で
動いている所だけErrorになって落ちている。
問題は Debian 10 では iptablesがiptables-nft という新しいものに変わっているらしい。
update-alternatives --config iptables して、 iptables-legacy を選択すればおっけー

前の環境のゴミ掃除

GlusterFSの時に作ったpvcとpvが残ってしまっているので、地道に削除した。
pvcを削除する際に、 kubectl delete pvc/pvcname --force --grace-period=0 しても
消えてくれなくて困ったが、 kubectl edit pvc/pvcname して、 finalizer: を削除することで
消せた。 editは削除中でもOK。反映されると即消える。
finalizerは、pre-deleteのフックらしく、pvcが誤って消されてデータロストするのを防いでいるらしい。

8/11

今日の学び

  • mysqldump –all-databases にはユーザー情報は含まれない

NFSバージョン

ver 3までは色々と複雑な実装だったが、ver 4以降は割とスッキリしてるっぽい。
NFSを供給する為にOpenMediaVaultを使用していたが、色々とこの用途には無駄なものが多いのと
なんとなくArch Linuxのサーバーを一台持っておきたかったのでArch Linuxで再構築した。
(最初、btrfsで組んだらGRUBが上手く設定できなくてハマったが)
で、NFSを設定して、k8sのワーカーからマウントを試してみたら、なんとver 4.2で繋がった。
OMVのときは毎度Ver3にしかならなかったのに。。
速度に関しても、DBのダンプを取り込んだ範囲では実用の範囲内っぽい。(早いとは言わない)

writefreely k8s 移行

もう3回くらいやってるのでさすがに余裕。DB移行すればOK

fastladder k8s 移行

mysqlで運用しているので、それを移行すればOK。
ただし、 mysqldump ではユーザーのバックアップが取れないので、ユーザーだけは再作成した。
(正確にはパスワードが別ものになっていた?ような感じ)

graylog k8s 移行

作業中。なにやらあちこちにファイルばらまいてるような感じ。
・・・というより、journalの権限エラーが直らなくてつらい。その他いろいろありそう。
正直、elasticsearchにダイレクト取込で良いのではないかと思い始めてきた。
(それならkibanaかgrafana + grafana Lokiを動かすことになるけども)

k8sワーカーノード No.3

やはり3台のワーカーを用意することにした。2台だと1台を止めるときに負荷が寄りすぎる。
3台あれば、1台止めてもなんとかなるだろう。という感じ。
SSDの台数が3台なのでそれに合わせているとも言う。

TODO

k8sへの移行

  • elasticHQ
  • writefreely
  • fastladder
  • mastodonテストインスタンス
  • misskey

writefreely への文書コピー

職務経歴書

  • 外枠(プロジェクト名と日付)
  • フォーマット統一
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • プロジェクトの中身 (2011より前)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 温度も湿度もやばい・・・これは人間が暮らせる状況では・・・
  • にしても8月に入ってしまった

Done

WG2600HP

ACアダプタがなかったので別途買う羽目になったけれども、本体だけであれば 12V 1.5A(NECの前の機種のACアダプタ)でも普通に動く。
12V 2.5Aのアダプタは、ルーター一体型ONUのACアダプタだったりするようだ(メルカリで購入した)。
ジャックは、 EIAJ 4 のセンタープラス。

kubernetes (クラスタ作成)

しばらく書いてなかった分まとめて。 サーバーのメモリが足りないのでdockerイメージビルドサーバーを止めたり、あちこちからメモリを
削ったりしてなんとか 2GB * 3台 を確保。
とりあえず kubeadm を使って 1マスター、2ワーカーでクラスタを作成。

kubernetes (ストレージ)

・・・とここまで来てストレージをどうするか悩む。 というかどうすれば良いかわからなかった。
まず https://kubernetes.io/docs/concepts/storage/storage-classes/ のProvisioner一覧から選ぶ事にしようと思った。
有償のものは除外 (StorageOSは十分な容量が無償で使えるので除外せず)、Internal provisioner がチェックじゃないものを除外。
クラウドを除外。 これで残るのは StorageOS / Glusterfs / ScaleIO / Ceph (FS or RBD) のいずれか。
だがしかし、メモリ量の問題で、分散ストレージは動かせない。ScaleIOは clusterhq.com がアクセス不可( rook になったらしい )
で、結局VMを1台立てて、NFSをバックエンドにすることにした。minioを使ってS3をバックエンドにするのも考えたが、HTTPより
ファイル共有用のNFSの方が性能がいいだろうと考えた。
しかし、NFSを素で使ってしまうと、1コンテナにつき1 NFS共有が必要になってしまい、面倒くさい of 面倒くさい。
(Persistent VolumeをPodのyamlに書くことになってしまい、k8sらしくないという問題も。)

結論としては、NFSをバックエンドにして、External Provisioner として nfs-client を使うことにした。
https://qiita.com/teruq/items/17609eecc29b70e2cbe7
https://github.com/kubernetes-incubator/external-storage
これにより、nfs-clientがStorageClass (SC) として提供され、PersistentVolumeClaim(PVC) によりDynamic Provisioningされる。
ただ、この手順でStorageClassを作成しても、なぜかdefaultフラグが立たなかったために(kubectl get sc で確認できる)
以下のコマンドでdefaultに設定している。

1
kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

NFSサーバーは、管理が容易なようにOpenMediaVaultを使用している。後々容量を拡張しやすいように、LVMとした。(プラグイン入れた)
(普段はLVM苦手なのであまり使わないようにしているのだが・・・) ファイルシステムはXFS。
OMVで共有フォルダを作る際、アクセス制限をだれでも書込に設定しておかないとNFSに書込できないので注意。(allsquashしているので)

kubernetes (ダッシュボード)

手順通り入れても動かなくて割と参った。設定が NodePort なのでserviceが動いているノードのIPにアクセスしないとアクセスできない。
(これ、LoadBalanceにしたらmasterのIPでいけるのでは)
そして、アクセスしてみると権限不足的なエラーがどっさりと表示された。
https://github.com/kubernetes/dashboard/issues/2326#issuecomment-402701165
これを流すと上手く表示できるようになった。
・・・と思ったら今みると表示出来ない。うわぁ。。

TODO

k8sへの移行

  • elasticHQ
  • writefreely
  • fastladder
  • mastodonテストインスタンス
  • misskey

職務経歴書

  • 外枠(プロジェクト名と日付)
  • フォーマット統一
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • プロジェクトの中身 (2011より前)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 湿度高すぎてつらい

Done

カーテン

小さな窓にカーテンがなかったのでそこからの日差しで目が覚めていた。
カーテンのこうかはぜつだいだ

TODO

職務経歴書

  • 外枠(プロジェクト名と日付)
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 湿度高すぎてつらい

Done

城内ネットワーク大不調

相変わらずたまに不調になる。 諦めて新しいルーターを確保することにした。
WG2600HPがお安く買えたので、届き次第入れ替えることにする。

TODO

職務経歴書

  • 外枠(プロジェクト名と日付)
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 湿度高すぎてつらい

Done

writefreelyの自動ビルド・自動アップデート

もうテンプレート化してるので簡単。

城内ネットワーク大不調

不定期に唐突にネットワーク接続不可。ってなってしまう状態だった。
最初はRTX1200の故障を疑って、ERlite-3に入れ替えようとしていたけどふときづいたら、
最近、OpenWrt化したAPがあったなーと思って設定間違いを疑ってみたらビンゴだった。
https://openwrt.org/docs/guide-user/network/wifi/dumbap

firewallとdnsmasqの停止をしていなかっただけなんだけれども、それをしたら一気に
快適になった。 なんでぇ!? 有線にまで影響するようなサムシングじゃないはずなのに。

TODO

職務経歴書

  • 外枠(プロジェクト名と日付)
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 雨降るっていうわりに降らなかった。

Done

お洗濯

雨が続いてたから・・・

writefreely のバックアップ

mysqldumpするだけ。簡単。
JenkinsのPipelineで sshGet する際にワイルドカードを使いたかったのに
書き方がよくわからなかったのが解決した。

1
sshGet remote: remote, from: "/backup/myhost", into: 'p:\\backups\\', filterRegex: /\.gz$/, override: true

ただし、上の例でいう myhost がintoのディレクトリに作られてしまう p:¥backups¥myhost¥*.gz になってしまうのは解決できなかった。

writefreelyの自動ビルド

とりあえずjenkinsのjobは作った。が、ビルドホストが2GBでは足りないようで・・・
仕方ないのでzram-configを入れたら見事にsoft lockup。 今回おかしいのは、HWEカーネルに変えてもまだsoft lockupする。
とりあえずの対策として、 512MB メモリ追加。 あと HWE-edge(5.0.0カーネル)に変更してみた。
・・・が、それでもなんか不安定なので、おとなしくzramを削除。

TODO

職務経歴書

  • 外枠(プロジェクト名と日付)
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 雨降るっていうわりに降らなかった。
  • 選挙いってきた。
  • オリジン弁当の弁当をひさしぶりに食べた。ご飯で攻めてくるの、嫌いじゃない。

Done

財団大不調

なんか重い。トゥートしても自分のTLに流れてこない。
結果、streamingが落ちてました。 Master自動追従してるのが悪いという前提ですが、
原因は下記。 恐らく、次のバージョン 2.9.3rc1に含まれると思います。(glitch、本家問わず)

落ちた理由その1

.env.productionに REDIS_PASSWORD= (パスワードは空) が指定されている場合に、
redisへの接続に失敗するようです。
※ サーバーはパスワード不要と言っているのにパスワードが指定されている旨のエラーが表示される

1
streaming_1  | node_redis: Warning: Redis server does not require a password, but a password was supplied.

解決策は簡単で、 REDIS_PASSWORD= をコメントアウトして下さい。(先頭に # を追加)

落ちた理由その2

https://github.com/glitch-soc/mastodon/commit/be053560e98dc9b702ee347518994e0b07914fae
このコミットとそれに続くコミットで、streamingとwebのデフォルトのLISTEN IPが127.0.0.1(ローカルのみ)になりそうです。
リバースプロクシが別ホストにいるのであれば、.env.production に BIND=0.0.0.0 を追加しておくと幸せになれます。
公式の docker-compose.yml の command: が変更されていますが、 .env.productionにセットしてしまえば
今の所 docker-compose.yml は変更なしでいけます。

※ streamingだけでなく、webも変わるのですが、 webは元々 docker-compose.yml で 0.0.0.0 をリッスンするように
オプションがついているので問題ないと思われます。
https://github.com/glitch-soc/mastodon/commit/c8a47595fb4a54af6a50a82bf0dbae4950586264
ここで BINDという環境変数を見るようになっているので、もしかするとBINDだけでいけるのかもしれません。
bundle exec rails s -p 3000 -b '0.0.0.0'" というcommandが指定されているので、恐らくこの設定は無視なのかなぁ・・・
どっちが強いのかなぁ・・・と言ったところです。

writefreely試す

とりあえず動かせた。 リポジトリに入ってるdocker-compose.ymlが微妙に罠になってるような。
そんな気が致しました。 とりあえず導入記事書いた。
https://qiita.com/yakumo/items/f187dc1d1e61c633cd8b

これで動いてるので、ここのblogの記事をそのままコピペして並行稼働させることにする。
(やっぱり記事がmarkdownで残ってるのは本当に安心できる。)

全VMのfstabを修正

設定完了。

  • noatimeつける
  • discardつける (TRIM)

noatime,discard, を追加。

  • 10.1.0.50
  • 192.168.10.20
  • 192.168.10.120
  • 192.168.10.130
  • 192.168.10.140
  • 192.168.10.200
  • 192.168.10.201
  • 192.168.10.241
  • Vultr

Bitwarden -> LastPassに戻した

LastPass Free でも機能制限が問題ないレベルなため。
Bitwarden、フォームに自動入力(本当に自動的に入力)してくれないのがつらかった。
でも正直、LastPassのUIに慣れてるから。っていう部分が大きい。

TODO

職務経歴書

  • 外枠(プロジェクト名と日付)
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 雨降るっていうわりに降らなかった。

Done

無線LANルーター

朝からというか、昨日の夜から10分に1度くらい30秒くらいの切断が発生するようになっていた。
特に何もしていないので恐らく故障と踏んで、予備機のWSR-1166DHPを出してきた。
これがまぁ・・・ なんか起動しない。というか起動しているがIPアドレスはわからないわ、
無線LAN吹かないわでなんだこれ・・・状態。
仕方ないので、中を開けてシリアル接続して色々として復旧。 国コードもJPになってるし、良いんでないかな。
昔に触ったときは異様にCPU音頭が高かった記憶があったが、それもまったくなくなってる。かんぺき。

ぞく・fluentd

Debian 10 Buster用のtd-agentのパッケージがでない。
そのせいでbusterにしたVMだけログを飛ばせないという状態になってる。つら。
もちろん、gemで入れればいいのは知ってるけれども・・・

writefreely試す

dockerでproduction動かすのは非推奨。っていうだけあってなかなか一筋縄ではいかない感じ。
keysとかtemplatesとかどこから読んでるのやらやら。。。

TODO

全VMのfstabを修正

  • noatimeつける
  • discardつける (TRIM)

noatime,discard, を追加。

  • 10.1.0.50
  • 192.168.10.20
  • 192.168.10.120
  • 192.168.10.130
  • 192.168.10.140
  • 192.168.10.200
  • 192.168.10.201
  • 192.168.10.241

職務経歴書

  • 外枠(プロジェクト名と日付)
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 雨はいやん

Done

fluentd

まとめて扱っていたつもりがなんか全然ログが飛んでいない。1日考えたけど失敗してるので
諦めて切り戻しした。

local_only の変更

目玉絵文字を末尾につけると、ローカル限定になる。というのがmastodon glitch-edition の仕様だが
割とたびたびしばしばローカル限定になっていない。という事件が起きている。
ソースコード的には、 status.rbmarked_local_only? の正規表現による。
で、あまりにもアレなので、もう目玉が文中にあったら全部ローカルでいいでしょ。という変更。
さすがにアップストリームに返せないので、ついに独自フォークになってしまった。
と思ったが見事に想定通りに動かないのでこりゃだめだー

TODO

writefreely試す

mdで同じように出るならこれでよくない?

全VMのfstabを修正

  • noatimeつける
  • discardつける (TRIM)

職務経歴書

  • 外枠(プロジェクト名と日付)
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 雨はいやん

Done

misskey

良い感じに動いている。結局デッキモードで使っている。
文字サイズが小さくなったり大きくなったりされるのがちと辛い。

お部屋の片付け

結構がんばった。

明日ははやいので

はやくねる

TODO

writefreely試す

mdで同じように出るならこれでよくない?

職務経歴書

  • 外枠(プロジェクト名と日付)
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 相変わらず気圧低下しててつらい

Done

Misskey

サーバーのメモリが大分空いたのでついにMisskeyを立ち上げた。このために
ドメインまで取ったのにしくじりまくって辛かった。
振り替えれば簡単な事だったんだけれども。。

Misskeyセットアップしくじりメモ
・検索がコケる
default.ymlの urlが間違えているとエラーになる

Misskeyしくじりメモ2
・検索するとエラーログがでる
elasticsearchを設定後、一度つぶやいておく必要がある

fluentd

各ホストにfluentdを立ち上げて、バッファリング、バッファ後に
Graylogホストに立ち上げたfluentdにログを転送。そこからgraylogに取り込む
形に変更した。これは、fluentdの設定を一箇所にまとめる為の変更。
後々、graylogから直接elasticsearchに投げ込んでも良いかなと思っているが、
ログ検索に支障がでるので、結局kibanaいれるんでしょ・・・?
となると、graylogの方が話早くない?(ログのローテートやってくれるし)
という感じになっている。

grafana

試しに入れてみた。 graylogだとGroup by相当の事ができなかったりするので。
一度挫折しているが、Graylogを触ってなんとなく少し分かった気がするので
もう一度挑戦する。

TODO

職務経歴書

  • 外枠(プロジェクト名と日付)
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ

雑感

  • 相変わらず気圧低下しててつらい

Done

ここのblog

RSSが404になっていた。以前は生成されていたのに。
d.yakumo.devに変更した影響かと思ったら、RSSは別途プラグインで生成せよ。っていう感じだったので
プラグインを導入した。 (netlifyはちゃんとプラグインに追従してくれるんだろうか)
にしても、改行がそのままいけるのは楽だ。

TODO

職務経歴書

  • 外枠(プロジェクト名と日付)
  • プロジェクトの中身 (2018)
  • プロジェクトの中身 (2017)
  • プロジェクトの中身 (2016)
  • プロジェクトの中身 (2015)
  • プロジェクトの中身 (2014)
  • プロジェクトの中身 (2013)
  • プロジェクトの中身 (2012)
  • プロジェクトの中身 (2011)
  • 自己PR

進捗ありません!

痩せる

  • プールに行って泳ぐ